क्या C # सीखना पहली भाषा के रूप में एक गलती है? [बन्द है]


26

मुझे पता है कि यहाँ भी ऐसे ही सवाल हैं, जो मैंने पढ़े हैं, लेकिन मैंने हाल ही में जोएल स्पोल्स्की की यह पोस्ट पढ़ी है:

मैं एक उज्ज्वल व्यक्ति को कैसे प्रोग्रामिंग अनुभव के साथ सिखा सकता हूं, कैसे प्रोग्राम करूं?

और यह मुझे मेरे सीखने के तरीके के बारे में सोचने लगा और क्या यह लंबे समय में वास्तव में हानिकारक हो सकता है।

मैंने विभिन्न भाषाओं के साथ दबोचा है, लेकिन C # मेरा पहला गंभीर विषय है, मैंने "हेड फर्स्ट C #" पढ़ा है और कुछ प्रोजेक्ट बनाए हैं। लेकिन ऊपर दिए गए पोस्ट को पढ़ने के बाद मुझे यह थोड़ा निराशाजनक लगा कि मैं इसके बारे में गलत हो सकता हूं, जाहिर है कि मैं जोएल की राय का सम्मान करता हूं जिसने मुझे थोड़ा सा फेंक दिया है।

मैंने "कोड" पढ़ना शुरू कर दिया है क्योंकि पढ़ने की सूची में सिफारिश की गई है और मुझे यह बहुत मुश्किल लग रहा है, हालांकि यह सुखद है। मुझे ऐसा लग रहा है कि यह विजुअल स्टूडियो में मेरे "नॉबिश हैकिंग के बारे में" चमक को ले गया है।

तो अब मैं अनिश्चित हूं कि मुझे क्या रास्ता अपनाना चाहिए? क्या मुझे एक कदम वापस लेना चाहिए और जोएल की सलाह का पालन करना चाहिए और पढ़ना शुरू करना चाहिए?

मुझे लगता है कि मेरा मुख्य उद्देश्य सिर्फ एक अच्छा प्रोग्रामर बनना है, बाकी सभी की तरह, लेकिन मैं एक .NET भाषा सीखकर बुरे व्यवहार में नहीं आना चाहता जब कोई व्यक्ति जो मेरी इज्जत करता है वह सोचता है कि यह हानिकारक है।

विचार?


4
सीएस सीखना कठिन तरीका हो सकता है, लेकिन केवल अगर आपके पास एक अच्छा शिक्षक है।
नौकरी

5
C # मेरी पहली भाषा नहीं थी VB.net थी और मैं आपको बता सकता हूं कि यह नहीं है कि आप उस मामले को कैसे शुरू करते हैं। मुझे लगता है कि सी # एक शानदार शुरुआती भाषा होगी, हमेशा याद रखें कि हमेशा खुद से पूछें कि चीजों को उसी तरह से क्यों किया जाता है जैसे वे हैं।
डैनियल लिटिल

23
सं। विज्ञान की थ्योरी सीखने के लिए पहली भाषा के रूप में कोई भी भाषा अच्छी है। दी, इसे अपना करियर बनाने के लिए, कुछ भाषाएँ दूसरों से बेहतर हैं, लेकिन सीखने के उद्देश्यों के लिए, कुछ भी अच्छा है। कुछ बेहतरीन प्रोग्रामर जिन्हें मैं जानता हूं कि एक C64, Apple II या TI-99 / 4A पर BASIC के साथ शुरू हुआ था। यह उनके दिमाग को नहीं घुमाता था, लेकिन उन्हें अगली भाषा और फिर अगले पर आग्रह करता था।
जेसी सी। स्लीकर

5
इसके अलावा, यह इस बात पर निर्भर करता है कि आप उस ज्ञान के साथ क्या करने की योजना बना रहे हैं। C # जहां मैं काम करता हूं, वहां दिन-प्रतिदिन व्यावसायिक समस्याओं का समाधान करता हूं। मैंने सी को 2 दशकों में बॉर्डरिंग में नहीं देखा है और मुझे लगता है कि जब मुझे करना है तो मुझे लगता है।
जेसी सी। स्लाइसर

19
कुछ सीखना कभी गलती नहीं है। यह हमेशा सीखने की तुलना में बहुत बेहतर है ।
तर्क

जवाबों:


80

मैंने विभिन्न भाषाओं के साथ काम किया है, लेकिन C # मेरा पहला गंभीर विषय है, मैंने "Head First C #" पढ़ा है और कुछ प्रोजेक्ट बनाए हैं। लेकिन ऊपर दिए गए पोस्ट को पढ़ने के बाद मुझे यह थोड़ा निराशाजनक लगा कि मैं इसके बारे में गलत हो सकता हूं, जाहिर है कि मैं जोएल की राय का सम्मान करता हूं जिसने मुझे थोड़ा सा फेंक दिया है।

मैं जोएल की राय का भी सम्मान करता हूं, लेकिन वे सिर्फ यही हैं: राय । सी # को एक प्रारंभिक भाषा के रूप में उपयोग करने में कुछ भी गलत नहीं है।

सबसे बड़ी सलाह मैं आपको दे सकता हूं, या कोई भी प्रोग्रामिंग कर रहा है (भले ही वे वेनिला सी में शुरू कर रहे हों!) स्थिर नहीं रहना है और धार्मिक नहीं होना है । मुझे परवाह नहीं है कि आप जिस प्रोग्रामिंग भाषा के साथ शुरू कर रहे हैं, या वह भाषा कितनी शुद्ध या धार्मिक है - इस दिन और उम्र में आप केवल प्रोग्रामिंग की दुनिया में नहीं बैठ सकते।

उदाहरण के लिए, मैंने एक किशोर होने पर PHP3 के साथ प्रोग्रामिंग शुरू की थी। मैंने कुछ छोटे वेब ऐप और इसके साथ कुछ वेब साइट्स बनाईं; मैंने सोचा था कि मैं एक जीनियस प्रोग्रामर था और मैं PHP3 के साथ कुछ भी कर सकता था , और उन लोगों पर भड़क गया जो सभी एएसपी या बेसिक के बारे में थे। लड़का, क्या मैं गलत था

जब तक मैंने अपने क्षितिज का विस्तार करना और अन्य प्रोग्रामिंग भाषाओं और अवधारणाओं का अध्ययन करना शुरू नहीं किया, तब तक मैं एक डेवलपर के रूप में वास्तव में खिलना शुरू नहीं किया। हाई स्कूल के दौरान मैंने कुछ RealBASIC सीखा, और फिर बाद में Visual Basic। बिजनेस स्कूल के बाद, जब मैं एक पेशेवर डेवलपर बन गया, तो मैंने बयाना में C # और जावास्क्रिप्ट सीखना शुरू कर दिया।

अब, मुझे यहाँ गलत न समझें - मैं इस बात की वकालत नहीं कर रहा हूँ कि आप जैक ऑफ ऑल ट्रेड्स बनने की कोशिश करें। दिल से, और व्यापार में, मैं अभी भी एक PHP प्रोग्रामर हूं। PHP मेरी रोटी और मक्खन है, और मैं इसे अंदर और बाहर जानता हूं। हालाँकि, मेरे PHP कौशल वे नहीं थे जो वे बस PHP कर रहे थे। यहाँ कुछ अति महत्वपूर्ण अवधारणाएँ हैं जो मैंने प्रोफेशनली काम करने के बावजूद PHP से नहीं समझीं।

  • जावास्क्रिप्ट: क्लोजर
  • jQuery (हाँ, अलग): DOM और Ajax
  • Visual Basic: ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग
  • C #: जेनरिक और क्लोजर
  • रूबी (रेल पर): एमवीसी डिजाइन की शक्ति

मैं इस साइट पर कई अन्य लोगों के साथ-साथ कई दिनों तक जा सकता था। भले ही मैं एक PHP प्रोग्रामर हूं, मैं इन सभी अन्य अद्भुत अवधारणाओं को अपने साथ काम में लाने में सक्षम था जो मैं हर दिन करता हूं।

मेरी बात क्या है? C # सीखें। C # का मास्टर बनें - आपके पास एक लंबा, सफल करियर होगा और आप शायद कुछ अद्भुत चीजों को पूरा करेंगे। लेकिन अपने आप को कबूतर-छेद मत करो। यात्रा, और अन्य भाषाओं और वातावरण और अवधारणाओं का स्वाद लें।


+1: @toleero - C # या Java से सीखना शुरू करने के लिए पूरी तरह से ठीक है। जोएल और पॉल ग्राहम बीटिंग द एडवर्स डेवलपर्स के उस बिंदु पर पहुंचने की कोशिश कर रहे थे जो उनकी चुनी हुई भाषाओं के साथ स्थिर था क्योंकि यह बहुत आम है।
जस्टिन शील्ड

ऑब्जेक्टिव-सी, वैसे भी एमवीसी सिखाता है, लेकिन यह कम पारंपरिक है।
मोशे

4
+1। मेरी राय में, आप वास्तव में एक महान डेवलपर और अपनी मुख्य भाषा के स्वामी नहीं हो सकते हैं, बिना सीखे और अन्य भाषाओं के साथ खेले बिना। अपने ज्ञान का विस्तार करने के लिए और अपनी मुख्य भाषा के मजबूत पक्षों की सराहना करने का यह सबसे अच्छा तरीका है।
निकलैस एच

3
+1। इस कुंजी को दूर ले जाने वाले शब्द हैं जो उसने बोल्ड के लिए चुने। जावा और सी #, या यहां तक ​​कि सी कुछ सीखना बहुत आसान है और अपने जीवन के 10 साल कोड को उस तरह से बिताना है जिस तरह से आपके पास हमेशा होता है। अपने आप को पुश करें, हर साल एक नई भाषा सीखें। आपके द्वारा की जाने वाली चीजों पर सवाल करें, एक बेहतर तरीका खोजने की कोशिश करें। और सबसे महत्वपूर्ण, प्रोग्रामर और स्टैकऑवरफ्लो पर शामिल रहना।
एंड्रयू टी फिनेल

आप इन सभी उदाहरणों को C # में कर सकते हैं। DOM / ajax: C # xml & ajax लाइब्रेरी। वस्तु के उन्मुख? चेक। MVC? Asp.net mvc ढांचा।
कारा

21

जब कोई मेरी राय का सम्मान करता है तो वह सोचता है कि यह हानिकारक है।

यह मुझे रिचर्ड फेनमैन से जुड़ी एक कहानी की याद दिलाता है। कैलटेक के एक छात्र ने प्रख्यात ब्रह्मांड विज्ञानी माइकल टर्नर से पूछा कि उनका "पूर्वाग्रह" किस प्रकार के कण के पक्ष में था, जिसमें एक अभ्यर्थी के रूप में डार्क मैटर शामिल था, और फेनमैन ने तड़क कर कहा "आप उनके पूर्वाग्रह को क्यों जानना चाहते हैं ? अपना खुद का फॉर्म?" ... अधिकारियों पर ध्यान न दें, अपने लिए सोचें। "

प्रोग्रामर जीवन के सभी क्षेत्रों से आते हैं। जावा को आज कई हाई स्कूलों और कॉलेजों में पढ़ाया जाता है, फिर भी इसका आविष्कार तब नहीं हुआ, जब जोएल स्पोल्स्की स्कूल में था। जब कोई अच्छा प्रोग्रामर बनने की बात आती है तो "एक सच्चा रास्ता" नहीं होता है। निश्चित रूप से कुछ क्लासिक्स जैसे एसआईसीपी हैं जो अधिकांश प्रोग्रामर कुछ बिंदु पर ठोकर खाते हैं, लेकिन कोई कठिन और तेज मानक नहीं है। मुख्य बात यह है कि कहीं से शुरू करें, और निर्माण अवधारणाओं पर ध्यान दें। एक महान प्रोग्रामर ने एक बार कुछ ऐसा कहा:

खराब प्रोग्रामर कोड पर ध्यान केंद्रित करते हैं, अच्छे प्रोग्रामर एल्गोरिदम पर ध्यान केंद्रित करते हैं।

मुझे लगता है कि C # के साथ शुरू करने के लिए एक अच्छी भाषा है, लेकिन मैं आपको Visual Studio से सावधान रहने की चेतावनी देता हूं। यह एक जबरदस्त आईडीई है, लेकिन यदि आप एक को खींचते हैं DropDownListऔर एक GridViewको बांधते हैं ObjectDataSourceऔर एक Buttonनियंत्रण का उपयोग करते हुए एक DropDownListआधारित खोज करते हैं, तो अधिकांश काम आईडीई द्वारा किया जाता है और आप वास्तव में प्रोग्रामिंग नहीं कर रहे हैं। आईडीई उपकरणों का लाभ उठाएं, लेकिन हमेशा अवधारणाओं का निर्माण करने और ज्ञान विकसित करने का प्रयास करें।


कमाल का जवाब।
यासिर

3
पहले आप कहते हैं कि "अच्छे प्रोग्रामर एल्गोरिदम पर ध्यान केंद्रित करते हैं" तो आप कहते हैं "काम आईडीई द्वारा किया जाता है और आप वास्तव में प्रोग्रामिंग नहीं कर रहे हैं"। यह किसका है? मैं एक कार्यक्रम लिख सकता हूं, कार्य प्रवाह को सही कर सकता हूं और "कार्यान्वयन विवरण" के बारे में परवाह नहीं करता हूं जैसे कि ग्रिड व्यू और ड्रॉपडाउन (यह मानकर कि मैं सही लोगों को चुनने के लिए पर्याप्त जानता हूं, और उन्हें सही तरीके से कैसे लागू किया जाए)। शेष प्रश्न के लिए +1, लेकिन IDE का उपयोग करने से आप एक अच्छे प्रोग्रामर बनने से नहीं चूकते।
WernerCD

@WernerCD - जब मैंने कहा कि "काम IDE द्वारा किया जाता है", मैं उस विशिष्ट उदाहरण का उल्लेख कर रहा था जो मैंने दिया था। यदि आप एक बच्चा लेते हैं, जिसने कभी कोई कोडिंग नहीं की है और उसे एक आईडीई में कदम से कदम निर्देश का पालन करना है, तो वह एक कामकाजी पृष्ठ बनाएगा, लेकिन वह प्रोग्रामिंग नहीं कर रहा है। मुझे लगता है कि IDE प्रोग्रामिंग काम के लिए अविश्वसनीय रूप से उपयोगी है, लेकिन एक पूर्ण नौसिखिया के रूप में, आप यह सीखना बेहतर कर रहे हैं कि आस-पास के नियंत्रण को खींचने के बजाय पुनरावृत्ति क्या है।
ब्लैकजैक

2
@ ग्राहम - क्षमा करें, लेकिन मैं असहमत हूं। वह आईटी या सॉफ्टवेयर विकास सीखने की कोशिश नहीं कर रहा है - वह प्रोग्रामिंग सीखने की कोशिश कर रहा है। आईडीई उपकरण, मेरे विचार में, वास्तव में एक सक्षम प्रोग्रामर होने के बाद आपके लिए सबसे अच्छा बचा है।
ब्लेक जेक

16
कुंजी यह है कि एक अच्छा डेवलपर जादू में विश्वास नहीं करता है । आईडीई (या किसी अन्य उपकरण) द्वारा किया गया कार्य एक सुविधा है, एक शॉर्टकट है, लेकिन समझने के लिए प्रतिस्थापन नहीं है ।
बेवन

7

मैं सिर्फ एक कनिष्ठ हूं, लेकिन असीम रूप से और अधिक अनुभवी लोगों के लिए सभी विनम्रता और सम्मान के साथ, मुझे यह स्वीकार करना होगा कि मुझे यह रवैया नहीं मिला है।

एक प्रोग्रामर ने जोएल के उत्तर के नीचे टिप्पणी की: " किसी ऐसे व्यक्ति के रूप में जिसे" प्रोग्रामर "के डेस्क पर अपना सिर पीटना पड़ा हो, जो अपने सी # क्षमताओं के लिए अत्यधिक अनुशंसित थे, लेकिन बहुत अच्छी तरह से प्रलेखित आधार वर्ग को लागू करने जैसी सरल चीजें नहीं कर सकते , खोजें c और c ++ प्रोग्राम में मेमोरी लीक " ...

लेकिन C ++ ऐप्स में मेमोरी लीक्स खोजना किसी ऐसे व्यक्ति के लिए सरल क्यों होना चाहिए जिसने कभी C ++ को जानने का दावा नहीं किया ? :) मुझे समझ नहीं आया। यह दंत चिकित्सक के कौशल की कमी के लिए एक मनोवैज्ञानिक की आलोचना करने जैसा है। मैं निश्चित रूप से एक अच्छा प्रोग्रामर नहीं हूं, लेकिन मुझे लगता है कि यह इसलिए नहीं है क्योंकि मुझे C ++ नहीं पता है - यह इसलिए है क्योंकि मैं उस ढांचे और भाषाओं को अच्छी तरह से नहीं जानता जो मैं उपयोग कर रहा हूं

"एक बहुत अच्छी तरह से प्रलेखित बेस क्लास (...) को लागू करने जैसी सरल चीजें नहीं कर सकते थे या बस अपने दम पर एक समस्या का पता लगा सकते थे या एक मध्यम गति से एक नया विचार सीख सकते थे"

ठीक है, लेकिन - सहसंबंध का मतलब करणीय नहीं है, और जो हमें यह अनुमान लगाता है कि उनकी सामान्य प्रोग्रामिंग कौशल की कमी है - जो मुझे संदेह नहीं है - उनकी भाषा की पसंद का एक परिणाम है?

या सी # का एक प्रभाव उनकी पसंद की पहली भाषा होने के नाते , उस बात के लिए?

मैं अन्य प्रशंसनीय स्पष्टीकरण देख सकता हूं (शायद सी # सिर्फ ट्रेंडी है, और इसलिए यह बहुत सारे नौसिखियों को आकर्षित करता है ... ज्यादातर लोग जिनके लिए सी # पहली भाषा है, वे बहुत लंबे समय से प्रोग्रामिंग नहीं कर रहे हैं , और यह एक बाधा से अधिक है किसी अन्य भाषा में प्रोग्रामिंग (प्रोग्रामिंग आदि) की तुलना में इसका अपना अधिकार ...)।


यह एक बढ़ई की आलोचना करने जैसा है जो केवल बिजली उपकरणों का उपयोग कर सकता है। यहां तक ​​कि कचरा एकत्र करने वाली भाषाओं में, यह जानना कि आपके चर को कितनी देर तक लटकाए रखना चाहिए, एक मौलिक कौशल है। यदि आप एक परिवर्तनशील जीवनशैली को एक स्पष्ट जीवन के साथ पहचान नहीं सकते freeहैं, जो आपको सही चेहरे पर घूर रहा है, तो आप इसे किसी भाषा में लिखे गए प्रोग्राम में कैसे पहचान सकते हैं जो इस तरह का कोई संकेत नहीं देता है?
कार्ल बेवेलफेल्ट

1
में तुम्हारी बात समझ रहा हूँ। मैं चर 'जीवन के बहुत मूल बातें (बस के बारे में के रूप में ज्यादा के रूप में मैं एक दैनिक आधार पर सी # में आवश्यकता हो सकती है: गुंजाइश, पता using, IDisposable, ईवेंट हैंडलर्स अपने श्रोताओं आदि को संदर्भित), लेकिन मैं नहीं भी गंभीरता से एक स्मृति निदान करने का प्रयास कर सकता है C ++ एप्लिकेशन में रिसाव, क्योंकि मैं सिंटैक्स से परिचित नहीं हूं! मुझे नहीं पता कि तारांकन किस लिए खड़ा है।
कोनराड मोरावस्की

5

मैं कहूंगा कि एक भाषा सीखना और उसके साथ चिपके रहना एक गलती से अधिक है कि आपको किस भाषा से शुरुआत करनी चाहिए। कुछ ऐसी भाषाएं हैं जिन्हें आप सीख सकते हैं, लेकिन यह आसान है, लेकिन कोशिश करना बेहतर है और एक सीखना शुरू करें, जिसका आप बहुत उपयोग कर रहे होंगे (स्कूल में भाषा की पसंद को पहले से ही तय कर लिया जाता है)। जब आप किसी भाषा को ठीक से सीख लेते हैं और कुछ महीनों के बाद इसे सक्रिय रूप से उपयोग करते हैं, तो आपको एक अन्य प्रोग्रामिंग भाषा के साथ थपकी देनी चाहिए और तुलना करनी चाहिए।

.NET में आपके लिए विज़ुअल बेसिक और C # के बीच स्विच करने के बाद से दो ( सॉर्ट-इन ) विभिन्न प्रोग्रामिंग भाषाओं के साथ जाना आसान है । तो आप Visual Basic सीख सकते हैं और देख सकते हैं कि अंतर क्या हैं। इस स्तर पर आपको तीन बुनियादी प्रोग्रामिंग संरचनाओं के साथ बुनियादी प्रक्रियात्मक कोडिंग के साथ कुशल होना चाहिए, यदि आप उन सभी के साथ रचनात्मक हो सकते हैं (और जानते हैं कि चर का उपयोग कैसे करें) तो आप एक शानदार प्रोग्रामर बनने के रास्ते पर हैं:

  • अनुक्रम - कोड उन चरणों के अनुक्रम में लिखा जाता है जो आपके द्वारा निर्दिष्ट तरीके से एक दूसरे का अनुसरण करते हैं, ("कूद", चरण-दर-चरण और गोटो को परिभाषित करता है)
  • सशर्त - कोड में निर्णय बिंदु हो सकते हैं, (यदि कथन, स्विच-केस स्टेटमेंट को परिभाषित करता है)
  • लूपिंग / पुनरावृत्ति - कोड खुद को कुछ निर्णय दे सकता है (जो ऊपर दोनों का विस्तार है, के लिए परिभाषित करता है-, डू-ए-लूप)

इससे कोई फर्क नहीं पड़ता है कि आपकी माध्यमिक प्रोग्रामिंग भाषा आपकी सबसे अधिक सक्रिय होगी या नहीं, बस उस प्रोग्रामिंग भाषाओं को जानना (विशेषकर यदि वे समान प्रतिमान का पालन कर रहे हैं) एक-दूसरे के समान हैं और वास्तव में एक छोटी सी बारीकियां हैं आपको यह समझने के लिए कि सॉफ्टवेयर प्रोग्रामिंग कैसे काम करती है।

उस से, वर्ष में कम से कम एक बार, एक नई प्रोग्रामिंग भाषा सीखने की कोशिश करें जो एक और प्रोग्रामिंग प्रतिमान का पालन करती है । आपको पूरी तरह से नई भाषा के साथ रहने की आवश्यकता नहीं है, लेकिन अन्य प्रतिमानों को जानने के लिए कुछ लाभ हैं। कई प्रतिमान हैं, और कुछ प्रोग्रामिंग भाषाएं कई के बीच में अंतर करती हैं (ध्यान दें कि C # वास्तव में निम्नलिखित तीन उपसमूह हैं):

सबसे महत्वपूर्ण चीजें जो आपको सीखनी चाहिए कि कई प्रोग्रामिंग भाषाएं मुहावरों के अपने सेट और एक मूल एपीआई का पालन करती हैं। इसलिए जब आप एक नई भाषा सीखते हैं, तो उन मुहावरों और एपीआई के कुओं को सीखने की कोशिश करें और सामान बनाते समय आप ठीक रहेंगे। एक अच्छा कारण यह है कि आप प्रोग्रामिंग समस्याओं को डिजाइन करने और सुलझाने में बेहतर बनेंगे। एक मुहावरे में कुछ मुहावरे, आपको कुछ जानकारी दे सकते हैं कि आपकी मुख्य समस्या को कैसे हल किया जाए।

यह भी पता है कि एक और बहुत अच्छा कारण है कि आपको अन्य प्रोग्रामिंग भाषाओं को सीखना चाहिए, मुख्य भाषा के अलावा जो आप सबसे अधिक उपयोग कर रहे हैं: रोजगार पर आपकी संभावना बहुत अधिक है।


5

आपके प्रश्न और यहाँ दिए गए कई उत्तरों का ध्यान C # पर है। से विकिपीडिया :

C # भाषा का उद्देश्य एक सरल, आधुनिक, सामान्य प्रयोजन, वस्तु-उन्मुख प्रोग्रामिंग भाषा होना है।

उस अकेले के आधार पर, यह कहना सुरक्षित है कि आप अपने मस्तिष्क को कोई दीर्घकालिक नुकसान किए बिना सी # पहली भाषा के रूप में सीख सकते हैं। मुझे नहीं लगता कि योएल पूरी भाषा की निंदा कर रहा था, हालांकि, जब उसने लिखा :

एक शॉर्टकट लेने का प्रयास करने और सीधे सीखने के लिए आप अभी सीखना चाहते हैं (जैसे C # और ASP.NET के साथ शुरू करना) बर्बाद हैं।

समस्या भाषा नहीं है, यह शॉर्टकट ले रही है। बहुत बार, लोग चरण-दर-चरण ट्यूटोरियल या "24 घंटे में सब कुछ सीखते हैं" पुस्तकों का पालन करके अपने अंतिम लक्ष्य के लिए एक त्वरित मार्ग लेने की कोशिश करते हैं। आपको स्टैक ओवरफ्लो पर बहुत अधिक समय बिताने की ज़रूरत नहीं है, इससे पहले कि आप यह ध्यान दें कि बहुत सारे प्रश्न हैं: "मैंने अपने जीवन में कभी भी कोड की एक पंक्ति नहीं लिखी है, लेकिन मैं iPhone में आ रहा हूं प्रोग्रामिंग। क्या कोई मुझे जो मैं करना चाहता हूं, ठीक करने के लिए चरण-दर-चरण निर्देश दे सकता हूं! धन्यवाद! " मैं यह नहीं कह रहा हूं कि आप उस दृष्टिकोण को ले रहे हैं, लेकिन यह कुछ ऐसा है जिसे आपको संभालना है।

यदि आप ठोस प्रोग्रामिंग कौशल विकसित करना चाहते हैं, तो आपको मौलिक कौशल सीखना शुरू करना चाहिए। यदि आप सीधे OOP और GUI अनुप्रयोगों में कूदने की कोशिश करते हैं और इस तरह, आप शायद उन बुनियादी बातों को याद करेंगे। जोएल ने जिन पुस्तकों की ओर संकेत किया वे वास्तव में बहुत अच्छी हैं। मैंने केवल सी # येलो बुक (पीडीएफ) के माध्यम से स्किम्ड किया है , लेकिन ऐसा लगता है कि यह संभवतः स्टोर में देखी जाने वाली अधिकांश सी # पुस्तकों की तुलना में प्रोग्रामिंग के लिए बेहतर परिचय है।


मैं यह बताना चाहता हूं कि वाक्यांश "C # नहीं सीखें", यह "C # और ASP.NET" है (जोर दिया गया)। मैं C # प्रोग्रामर नहीं हूं, लेकिन .NET और CLR सीखने के लिए एक अच्छा मंच है।
forivall

5

मेरे लिए, उस अन्य लेख के उस सामान ने अभिजात्य वर्गीय होने का थोड़ा सा विरोध किया। हां, मैं अक्सर गंभीर डेवलपर्स को SICP की सलाह देता हूं जो वास्तव में बेहतर होना चाहते हैं, लेकिन केवल उन लोगों के लिए जो "आदर्श" से परे जाकर गहरा जादू सीखना चाहते हैं। दरअसल, सालों से एसआईसीपी मानक एमआईटी फ्रेशमैन प्रोग्रामिंग पाठ था; लेकिन, बहुत सारे ठोस काम करने वाले प्रोग्रामरों को कभी भी उस बढ़िया लेकिन महंगी और उच्च चयन संस्था में शामिल होने का अवसर नहीं मिला।

तो क्या करते हैं मैं आपके सवाल का जवाब में सलाह देते हैं,? आपके पास जो कुछ भी है उससे शुरू करें और कुछ विशिष्ट भाषा सीखने के बजाय एक प्रोग्रामर की तरह सोचें।

यदि आपके पास C # कार्यान्वयन उपलब्ध है, ठीक है, तो मैं आपको बता सकता हूं कि यह मेरे जैसे कामकाजी कड़े के लिए पूरी तरह से ठीक भाषा है- जैसे कि जावा, जावास्क्रिप्ट, पायथन, रूबी, स्काला, स्कीम और मेरे पास कई अन्य भाषाएँ हैं वर्षों में सीखा। अंत में, मैं हाथ में विशिष्ट नौकरी के लिए सही भाषाओं और उपकरणों का चयन करने की कोशिश करता हूं, और इसका मतलब है कि भाषाओं को टोपी की तरह बदलना।

सीखने के मज़ेदार तरीकों का उपयोग करने के साथ कुछ भी गलत नहीं है, जैसे रूबी के पास व्हाट्स पॉइन्टेंट गाइड और शूज़ के माध्यम से (जैसे मैंने एक और हालिया पोस्ट में सिफारिश की है )। ऐसे खिलाफ अपने सिर की पिटाई के रूप में रहस्यमय और रहस्यमय पथ, कर रहे हैं द लिटिल स्कीमर और अनुभवी स्कीमर की राह पर SICP । कई आधुनिक विचारकों ने आपको पुराने सभी शैक्षणिक और "एंटरप्राइस" सामानों को छोड़ दिया और सीधे जावास्क्रिप्ट, JQuery और HTML5 में बदले। आरंभ करने के कई तरीके हैं ताकि बहुत अधिक समय बर्बाद न करें। बस एक उठाओ और कोडिंग प्राप्त करें!

वास्तविक रूप से, मेरा मानना ​​है कि इन दिनों कुछ काम करने वाले पेशेवर आपको पहले असेंबलर या C / C ++ सीखने के लिए पीछे भेजेंगे। सच कहूं, अगर उन्होंने ऐसा किया, तो मुझे विश्वास नहीं है कि वे आपको बहुत अधिक सेवा देंगे।

इसलिए, "आपके पास जो है, उसके साथ शुरू करें" को थोड़ा सा सजाना, मेरे पास सलाह के तीन और बिट्स हैं:

  • एक प्रोग्रामिंग भाषा चुनें जो आपको शांत लगती है और एक सीखने का दृष्टिकोण जो समझ में आता है और उन्हें अपना सब कुछ देता है। अपनी चुनी हुई भाषा में साक्षर बनें; जितना अच्छा कोड आप पढ़ सकते हैं उतना ही पढ़ें!
  • अपने कीबोर्ड पर अपने हाथों को तुरंत ले जाएं और सीखते ही कोडिंग शुरू करें। अपनी प्रोग्रामिंग पुस्तकों में सभी प्रारंभिक अभ्यास खुद से करें और उन सभी ट्यूटोरियल्स का अभ्यास करें, जिन्हें आप अपनी उंगलियों से पा सकते हैं। आपको आश्चर्य होगा कि डेमो में त्रुटियों को ठीक करने के दौरान आपको कितने कौशल प्राप्त होंगे जो काम करने वाले कोड होने चाहिए लेकिन नहीं हैं!
  • अपना अधिकांश प्रयास यह सीखने में व्यतीत करें कि कैसे अच्छे प्रोग्रामर समस्याओं के माध्यम से अपना रास्ता सोचते हैं। जटिल समस्याओं और प्रणालियों का विश्लेषण और विघटन करना सीखें, उन्हें तब तक तोड़ें जब तक आप वास्तव में उन्हें समझ नहीं लेते। फिर स्वचालित समाधानों को संश्लेषित करना और डिजाइन करना सीखें, उनका निर्माण करें ताकि वे इस ग्रह पर कुछ मनुष्यों के लिए कुछ काम आसान कर सकें।

मैंने फोरट्रान IV और QBASIC के साथ शुरुआत की और अगर उन लोगों ने मुझे बर्बाद नहीं किया, तो C # आपको नुकसान नहीं पहुंचाएगा! शुभकामनाएँ और सुनिश्चित करें कि आप सीखते समय मज़े कर रहे हैं!


आप Abelson & Sussman के मूल व्याख्यान यहां पा सकते हैं: group.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures
BlackJack

4

मुझे लगता है कि मेरी सलाह का सबसे अच्छा टुकड़ा मैंने कभी देखा है जब यह लोगों से पूछता है कि "मुझे कौन सी भाषा सीखनी चाहिए?" बस है: एक अच्छा प्रोग्रामर किसी भी भाषा में काम कर सकता है।

उस कथन के विरुद्ध तर्क दिए गए हैं, जो मुझे यकीन है, लेकिन मुद्दा यह है: पहले भाषा विशेषज्ञ के बजाय एक अच्छा प्रोग्रामर बनना सीखें। बिल्‍डर जमीन के एक-एक भूखंड पर निर्माण करने में माहिर नहीं हैं, वे अपने व्यापार के कौशल को सीखते हैं और जिस भी जमीन पर उनकी आवश्‍यकता होती है, उसे लागू करते हैं।


मैं +1 करूँगा। मोटरसाइकिल बनाने की मेरी सामान्य सादृश्यता के समान। आप असेंबली लाइन पर काम करके और किताब का पालन करके एक सभ्य मोटरसाइकिल का निर्माण कर सकते हैं, लेकिन वास्तव में भयानक बिल्डरों में हेलिकॉप्टर हैं जो बाइक के अंदर और बाहर की हिम्मत को जानते हैं, और परिणामस्वरूप आपको कुछ अद्भुत सामान मिलते हैं।
जारोद नेट्टल्स

3

कभी-कभी मुझे संदेह होता है कि पसंद की भाषाओं का हमारे व्यक्तित्वों के साथ बहुत कुछ होता है और वे जिस तरह से हमें वायर्ड करते हैं और व्यवहारिक या अकादमिक विचारों के साथ बहुत कम करते हैं, जैसा कि हम स्वीकार करते हैं।

कहा कि, नया सामान सीखना कभी भी हानिकारक नहीं है। आपको पता चल जाएगा कि जिस दिन आप एक विकसित या शायद टूटे हुए मस्तिष्क की ओर जा रहे हैं (सभी परिप्रेक्ष्य की बात मान लेते हैं) जब आपको एहसास होता है कि सब कुछ एक मैनुअल है। आप अंततः कुछ भी कर सकते हैं जो आप चाहते हैं अगर आपको कुछ प्रतिभा मिली है और वास्तव में प्रोग्रामर के पहलू के बजाय करने में दिलचस्पी है।

कम से कम पायथन और जावास्क्रिप्ट के साथ गड़बड़। यह एक निश्चित सीखने का लाभ है जो वास्तव में केवल कोड लिखने में सक्षम है और इसे तुरंत फ़ाइल I / O सुलभ कंसोल वातावरण जैसे IDLE या ब्राउज़र की तरह सैंडबॉक्स वातावरण में निष्पादित करता है। मुझे C # और Java के बारे में नापसंद है कि वे चाहते हैं कि सब कुछ कक्षाओं तक ही सीमित रहे, भले ही आप वास्तव में सिर्फ अपने साथियों या एक अति-संयोजक कंपाइलर को खुश रखने के लिए उसके चारों ओर व्यर्थ रैपर के साथ एक साधारण फ़ंक्शन लिख रहे हों। जेएस और पायथन के बारे में मुझे जो दूसरी बात पसंद है, वह यह है कि वे वास्तव में आपको अपना प्रतिमान स्थापित करने देते हैं। डेवलपर्स की बहुत सारी पसंद से थोड़ा बहुत लचीला। मुझे अभी भी यकीन नहीं है कि बुनियादी ऑपरेटरों को ओवरलोड करने के ज्ञान के बारे में क्या सोचना है लेकिन मुझे यकीन है कि मैं विकल्प की अनुमति देने के लिए पायथन से प्यार करता हूं।

सबसे नौकरी लिस्टिंग के साथ प्राथमिक भाषा चुनने के क्रूर झूठ के लिए भी मत गिरो। मध्यम जल में एक बड़ी मछली होना बेहतर है जो आप ज्यादातर भद्दे अपर्याप्त मछली के एक गिरोह के सदस्य की तरह करते हैं जो हर नौकरी-खोज को एक मिलान प्रक्रिया से अधिक लॉटरी में बदल देते हैं।


जैसा कि कोई है जो मेरे दिन के काम में अपर्याप्त मछली के उस झुंड से निकलता है, मुझे सहमत होना होगा। इस चर्चा में बहुत उपयोगी प्रतिक्रिया है; मुझे आशा है कि @toleero इसे उपयोगी पाता है और निराश नहीं होता है। मेरे दिमाग में, जब तक कि योएल एक प्रतिभाशाली व्यक्ति है, हमें कभी भी किसी के द्वारा सुसमाचार के रूप में कही गई हर बात को स्वीकार नहीं करना चाहिए । वह जिन किताबों की सिफारिश करता है, वे उपयोगी हैं। लेकिन इसलिए दिन-प्रतिदिन कोडिंग और व्यावहारिक अनुभव प्राप्त करना है। इसे मुट्ठी भर भाषाओं में कहें (C # कहें और कुछ C- जैसे - एक बेसिक, शायद, या पायथन या रूबी) और आप कम से कम उतने ही अच्छे डेवलपर बनेंगे जितने कि वहाँ से बाहर के लोग: ओ)
ओवेन ब्लैकर

3

C # काफी खिंचाव द्वारा जावा जितना बुरा नहीं है। कार्यात्मक प्रोग्रामिंग, जेनेरिक प्रोग्रामिंग, नियतात्मक विनाश और मूल्य प्रकार, ऑपरेटर ओवरलोडिंग आदि जैसी कई अवधारणाओं के लिए उनके पास बेहतर समर्थन है, इन सुविधाओं के लिए उनका समर्थन अभी भी बहुत काम का उपयोग कर सकता है, लेकिन यह जावा की तुलना में बहुत बेहतर है, भले ही यह कोई C ++ नहीं है।

दूसरी बात, मुझे लगता है कि जोएल ने जो कहा है उसे आप गलत पढ़ रहे हैं। यदि आप संकेत और पुनरावृत्ति में महारत हासिल कर सकते हैं , तो इससे कोई फर्क नहीं पड़ता कि आप अभी किस भाषा का उपयोग कर रहे हैं। सबसे महत्वपूर्ण बात यह होगी कि थोड़ा unsafeकोड का उपयोग करें , unsafe quicksortकुछ के साथ पकड़ें या फिर सामान्य सी # पर वापस जाएं।

ओह, और पढ़ने के लिए :)


2

मेरे लिए पहली भाषा उत्पादक C # थी। हालांकि मैंने स्कूल के समय में फॉक्सप्रो के साथ और कॉलेज में सी का एक सा फिड किया था। C # किसी के लिए बहुत अच्छा और बहुत अच्छा शुरुआती बिंदु है। यह प्रोग्रामिंग के सामान्य फंडामेंटल जैसे मजबूत टाइपिंग, एनकैप्सुलेशन, इनहेरिटेंस आदि का अनुसरण करता है, जो मेरा मानना ​​है कि किसी को हमेशा सीखना चाहिए, चाहे वे उनका उपयोग करें या न करें। बाद में, आप हमेशा पायथन जैसी अन्य भाषाओं की ओर रुख कर सकते हैं जो मौलिक प्रोग्रामिंग के मानकीकरण का पालन नहीं करता है।

अन्य जोड़ने का कारक जो लोग वास्तव में C # के सीखने के पहलू से नहीं जोड़ते हैं, वह किसी भी भाषा के लिए सर्वश्रेष्ठ आईडीई की उपलब्धता है जिसे मैंने देखा है। ग्रहण आईडीई अच्छा है, लेकिन एक बार जब आप विजुअल स्टूडियो का उपयोग करते हैं, तो आप Microsoft को धन्यवाद देंगे।

C # C पर बढ़ाया जा रहा है, यह सुनिश्चित करता है कि आपको पहले से अन्य भाषाओं को सीखने की आवश्यकता नहीं है। एक दशक में सभी भाषाएँ C की प्रकृति से विकसित हुई हैं, यहाँ तक कि JAVA भी।

तो, फैसला है, सी # एक महान प्रारंभिक बिंदु है जो आपको भविष्य में तेजी से अन्य भाषाओं को सीखने की क्षमता प्रदान करता है


विजुअल स्टूडियो की तुलना में मेरे लिए ग्रहण काफी बेहतर है। लेकिन मैं आपके साथ सहमत हूं - सी # एक महान भाषा होगी, खासकर अगर यह स्वामित्व नहीं था और रेडमंड के अंधेरे अधिपति को नष्ट करने वाले दुष्ट मालिकाना मानकों में बंद हो गया था
थॉमस डब्ल्यू

2

पहली भाषा के रूप में C # सीखना कोई गलती नहीं है जब तक आप जल्दी या बाद में आगे बढ़ते हैं और दूसरी भाषा सीखना शुरू करते हैं। यह कहीं अधिक महत्वपूर्ण है। इससे भी बेहतर अगर वह दूसरी भाषा C # से कुछ अलग हो (जावास्क्रिप्ट या माणिक उस संबंध में बेहतर होगा कि जावा)। हर भाषा के अपने पेशेवरों और विपक्ष हैं, और यह अंतर है जो आपको लंबे समय में एक बेहतर प्रोग्रामर बना देगा।


1

जितना मैं आपको कई भाषाओं को सीखने की सलाह देता हूं (जैसा कि अन्य लोग सुझाव देते हैं), सुनिश्चित करें कि आप कुछ (भाषा) जानते हैं जो आप बहुत अच्छी तरह से सीखते हैं ।

कई भाषाओं को जानने का जोखिम यह है कि जब आप वास्तव में किसी समस्या को हल करना चाहते हैं तो आप पूरी तरह से निराशा पैदा करने वाली भाषा नहीं सीख सकते।

फॉर-लूप निर्माण को जानना कई भाषाओं में मजेदार है लेकिन बेकार है अगर आप नहीं जानते कि उनमें से किसी में त्रुटियों को कैसे संभालना है।


1

अपने बारे में चिंता न करें कि आप C # पहले सीखने के लिए हुए हैं। यह चिंतित है कि आपका पहला कदम आपके बाएं पैर या दाएं पैर के साथ उठाया गया था। पहले एक प्रबंधित भाषा सीखने के बीच एकमात्र अंतर यह है कि आप केवल देरी कर रहे हैं जब आपको पॉइंटर्स और विस्तृत मेमोरी मैनेजमेंट सीखना है। यह वास्तव में आपके पक्ष में काम कर सकता है, क्योंकि जब सी सीखने का समय है तो केवल वही नया सामान जिसकी आपको चिंता होगी वह है स्मृति प्रबंधन- आप नियंत्रण संरचनाओं, कार्यों की अवधारणा आदि को सीखने की कोशिश कर रहे हैं। पूरी तरह से संकेत और स्मृति प्रबंधन पर ध्यान केंद्रित करने में सक्षम हो।

स्टीरियोटाइप मौजूद है क्योंकि प्रबंधित भाषा प्रोग्रामर हैं जिन्होंने उस दूसरे भाग को कभी नहीं किया और सी और सी ++ सीखे, और फिर सी और सी ++ नौकरियों के लिए आवेदन किया।

यह एक संगीत वाद्ययंत्र सीखने की तरह है- पहला एक मुश्किल है क्योंकि आप लिखित संगीत और यांत्रिकी के भौतिक यांत्रिकी को सीखने की कोशिश कर रहे हैं, जो आप चाहते हैं कि क्या करने के लिए एक उपकरण को व्यक्त करना है। आपके द्वारा सीखे गए दूसरे और बाद के साधनों के लिए आप पूरी तरह से उस उपकरण पर ध्यान केंद्रित कर सकते हैं जो उस उपकरण से अलग है जो आप पहले से जानते हैं।


1

यह नौसिखिए पर कठिन है, बिना किसी संदेह के। मैंने vb, javascript, PL / SQL, T-SQL, Uniface और थोड़ा C # कुछ नाम करने के लिए किया है।

किसी ने पहले विजुअल बेसिक का उल्लेख किया था, जहां उन्होंने ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के बारे में सीखा था, और ईमानदार होने के लिए VB.NET के पास किसी भी भाषा के सिंटैक्स को समझने में सबसे आसान है जो मैंने कभी देखा है। सबसे अच्छी विशेषता यह है कि कीवर्ड्स का वर्णन की जा रही अवधारणाओं से निकटता से किया जाता है।

जैसे फंक्शन myHandler () myButton.click को हैंडल करता है

या कक्षा मानव स्तनपायी गुण का विस्तार करता है

गंभीरता से, पठनीयता के लिए जब आप एक नौसिखिया हो तो आप सिंटैक्स को किस तरह देखना चाहेंगे?

जब आप गुणों और विधियों की तलाश कर रहे हैं (और सबस और फ़ंक्शंस के बीच भेद करना) तो वीबी में पढ़ना बहुत आसान है।

इसी तरह जब चर घोषित करते हैं

Dim myString As string - स्पष्ट है कि कौन सा प्रकार है और कौन सा उदाहरण है

C # केस सेंसिटिविटी यह बताती है कि मेरे लिए एक बुरी बुरी आदत है - क्लास और उदाहरण के लिए एक ही नाम होने से एक अपरकेस और एक लोअर होता है।

जैसे

मानव मानव

  • क्या योर की शब्दावली में गंभीरता से कुछ शब्द हैं जो आपको अपरकेस के साथ मौजूदा का उपयोग करना है?

यदि आप human.think कहते हैं, तो एक वर्ग के लिए एक उदाहरण को गलती करना आसान होगा और आपको लगता है कि आप एक नज़र में एक स्थैतिक विधि कह रहे थे। और glancing अक्सर है कि हम कोड को कैसे देखते हैं, हम नहीं करते हैं; संपादक को बताने के लिए हर एक तत्व पर माउस रखने का समय नहीं है।

C # के कुछ फायदे हो सकते हैं, लेकिन इसे शुरू करना बहुत मुश्किल है - भले ही यह टाइपिंग को बचाता है। यही कारण है कि निश्चित रूप से दोनों भाषाओं के लिए एक जगह होनी चाहिए।


मानव मानव के लिए +1। मौजूदा कोड के साथ किसी भी गहरे अनुभव के बजाय एक पुस्तक के माध्यम से सी # एक दूसरी भाषा (रोटी और मक्खन = डेल्फी) के रूप में होने के कारण, यह हमेशा मेरे मस्तिष्क में दर्द होता है। हालाँकि भाषा के कुछ भाग हैं जो मुझे वास्तव में पसंद थे, सी से केस सेंसिटिविटी को खींचना एक बड़ी गलती थी IMHO।
मैट ऑलवुड

यकीन है, क्योंकि Dim myHuman as Humanइतना बेहतर है? : D
स्क्रू टी

0

सबसे बड़ी नकारात्मक बात यह है कि मैं देख सकता हूं कि विजुअल स्टूडियो और इससे जुड़े उपकरण बहुत, बहुत अच्छे हैं - इंटेलीजेंस और कोड पूरा होने जैसी चीजें आसानी से बैसाखी बन सकती हैं। मैं आमतौर पर तर्क देता हूं कि पर्यावरण इतना अच्छा और सहायक हो सकता है कि जब आप किसी पाठ संपादक में हैक रूबी कोड को जाने की आवश्यकता हो, तो आप थोड़ा खो महसूस करते हैं। ओह, और आप आमतौर पर linq की तरह सामान भी याद करेंगे।


0

C # प्रोग्रामिंग शुरू करने के लिए पूरी तरह से ठीक है।

यह वही है जिसे मैंने शुरू करने के लिए कहा था, यहां तक ​​कि किसी और चीज में डब करने का मौका दिए बिना (जावा में हैलो वर्ल्ड के अलावा, कुछ बुनियादी लोगो सामान, और स्क्रैच में कुछ चीजें, लेकिन "गंभीर" कुछ भी नहीं)।

कुल मिलाकर, यह मुश्किल हो सकता है - बहुत सारी चीजें हैं जो सहज नहीं लगती हैं, और इसकी सीमाएं हैं, लेकिन मुझे लगता है कि यह अच्छी कोडिंग को प्रोत्साहित करती है और जब आप इसे लटकाते हैं तो बहुत अच्छा होता है। मेरा मतलब है, यह आपको अधिक शक्ति देता है और पायथन की तुलना में थोड़ा अधिक पेशेवर है (जो आमतौर पर सुझाव दिया गया है), और इससे अंतर की दुनिया बन जाएगी - C # के बाद C ++ की कोशिश करना बहुत दर्दनाक नहीं था, लेकिन अगर मैंने पायथन के साथ शुरुआत की थी, तो यह वास्तव में एक बहुत बड़ी बाधा होगी, यहां तक ​​कि सिंटैक्स स्तर पर भी।

इसके अलावा, इसमें मोनो के रूप में अच्छा क्रॉस प्लेटफॉर्म सपोर्ट है (आपमें से उन लोगों के लिए जो सोचते हैं कि मोनो कोई बड़ी बात नहीं है - यूनिटी गेम इंजन आपको इसके एक संस्करण में कोड देता है)। यह ज्यादातर चीजों के लिए भी बहुत उपयोगी है, चाहे वह गेम स्क्रिप्टिंग हो, या वेब डिजाइनिंग, या विंडोज एप्लीकेशन। बेशक, कुछ भाषाएँ कुछ पंक्तियों के लिए बेहतर होंगी, इसलिए यह इस बात पर निर्भर करेगा कि आप किस सामान्य दिशा में जाने की योजना बना रहे हैं - उदाहरण के लिए, यदि आप वेब दिशा में जा रहे हैं, तो C # (ASP.NET) निश्चित रूप से एक होगा अच्छा विचार। यदि आप खेलों में शामिल होने की योजना बना रहे हैं, तो आपको इसके बजाय C ++ के बारे में सोचना चाहिए।

अंत में, यह सीखने के लायक है, भले ही आप इसे अजगर की सादगी या जावा की पुरातन प्रकृति के रूप में उपयोग नहीं करते हैं (जैसा कि जावा के लिए रिलीज चक्र वास्तव में धीमा है) - आप अच्छा कोडिंग सीखते हैं अभ्यास, जबकि नौसिखिया सीखने के लिए बहुत जटिल नहीं है।


यह पोस्ट पढ़ना मुश्किल है (पाठ की दीवार)। आप आपत्ति तो नहीं है संपादित एक बेहतर आकार में यह ing?
gnat 6

1
यह कैसा है? अभी भी पढ़ना मुश्किल है, या अभी ठीक है? सिर ऊपर करने के लिए धन्यवाद।
सस्पाइडर

-1

एक प्रोग्रामर बनने के लिए आपको पैशन होना जरूरी है। प्रोग्रामर मुझे पता है कि उद्योग के परिवर्तनों को जानने और नोटिस करने के अपने तरीके से बाहर जाते हैं। मैंने अपनी प्रोग्रामिंग कमोडोर विक 20 (हाँ जो पुरानी है) पर बेसिक के साथ शुरू की और अन्य नई भाषाओं में आगे बढ़ती रही। मेरे प्रोग्रामिंग वर्षों के भाग में COBOL भी शामिल था। मैंने यह भी नोटिस करना शुरू कर दिया कि कुछ भाषाओं ने कुछ प्रक्रियाओं बनाम अन्य में सबसे अच्छा काम किया। आपसे मेरी सलाह है कि किसी भी भाषा को सीखें और बुनियादी प्रोग्रामिंग अवधारणाओं जैसे कि छोरों, विधियों, तुलनाओं को समझें। अधिकांश भाषाएं उन तीन अवधारणाओं का समर्थन करती हैं। आपको कभी नहीं कहना चाहिए "यह सबसे अच्छा तरीका है" बल्कि "मैं इसे कैसे सुधार सकता हूं"। उस अंतिम वाक्य के बारे में सबसे बुरी बात यह है कि आप खुद को इंजीनियरिंग पर पकड़ सकते हैं। प्रोग्रामिंग मजेदार है, इसे मजेदार बनाएं! इंटरनेट ने प्रोग्रामिंग का अनुभव करने के लिए एक नया तरीका खोल दिया क्योंकि आज हमें जिस स्तर तक पहुंचना है, वह चौंका देने वाला है। मेरे लिए इंटरनेट से पहले मुझे शेल्फ में जाना पड़ा और GRAY IBM प्रोग्रामिंग की किताबों को खींचना पड़ा और सीखना पड़ा। आज आप साधारण चीज़ को google और whammo में टाइप कर सकते हैं।


2
यह पोस्ट पढ़ना मुश्किल है (पाठ की दीवार)। आप आपत्ति तो नहीं है संपादित एक बेहतर आकार में यह ing?
gnat

-3

वाह बहुत सारे जवाब। यहाँ मेरा दृष्टिकोण है:

कंप्यूटर विज्ञान सीखने के लिए C # कोई जगह नहीं है। मैं इसे बहुत बुरे विचार के रूप में देखता हूं। मैं अपनी कुछ चिंताओं को नीचे सूचीबद्ध करूंगा।

  • C # एक Microsoft भाषा है। ऐसा नहीं है कि मैं यहाँ एमएस को जज कर रहा हूँ, सिर्फ इतना कि एमएस की दुनिया के बाहर थोड़ा उभार है। यदि आप अभी MS हार्डवेयर प्रोग्राम करना चाहते हैं तो आगे बढ़ें, लेकिन मुझे कंप्यूटर साइंस में यह ठोस दृष्टिकोण नहीं दिखता है।
  • मैं प्रबंधित भाषाओं के साथ कार्यक्रम सीखना नहीं चाहता। मेरा मानना ​​है कि प्रोग्राम मेमोरी और डेटा संरचनाओं के निर्माण का प्रबंधन करना सीखने में उनका महत्व है।

बहुत जल्दी थक जाने पर दूसरी भाषा चुनें।


मैं समझ सकता हूं कि क्या आपको लगता है कि एमएस को बांधना आपके करियर के लिए बुरा होगा। लेकिन कंप्यूटर विज्ञान सीखने से क्या लेना-देना है? सीएस का प्लेटफॉर्म या निगमों से कोई लेना-देना नहीं है।
svick

-3

मैं सी # या किसी भी भाषा की सिफारिश करूंगा जो इन तीन चीजों को उनके मूल में प्रस्तुत करती है:

पूरी तरह से संकलित और पूरी तरह से वस्तु उन्मुख ..

एक पहली भाषा जो इन तीनों को प्रस्तुत करती है, कार्यक्रम प्रवाह, वाक्य रचना और अधिक संरचित तरीके से समस्या को हल करने के बारे में बहुत कुछ सिखाएगी। मैं महान भाषाओं के एक समूह के अंदर रहता हूं और सांस लेता हूं, जिसमें ये विशेषताएं नहीं हैं, लेकिन अगर मैं किसी को ऐसी भाषा सिखा रहा हूं, जिसमें मेरी तीन आवश्यकताएं हैं।


-6

नहीं, वह उत्तर बहुत ही भयानक है। क्यूं कर? ठीक है, वह कुछ अच्छी पुस्तकों को लिखता है, जिन्हें आपको पढ़ना चाहिए, लेकिन कक्षा के काम और लैब (कंप्यूटर लैब) के बिना, आपको खोना और निराश होना पड़ेगा। आपको प्रयोग करने वाले अन्य नए प्रोग्रामरों के एक समूह के साथ रहने की आवश्यकता है क्योंकि उन पुस्तकों में जो है, उसके अलावा अन्य सीखने के लिए बहुत कुछ है। मैं यह नहीं कह रहा हूं कि आपको बीएससीएस के लिए जाना है, लेकिन आपको एक जानकार प्रशिक्षक तक पहुंच की आवश्यकता होती है, जब कंपाइलर समस्याओं, बिल्ड एन्वायरमेंट्स जैसे किसी भी पल में पूरी तरह से गलत हो सकता है, तो आप इसे नाम दे सकते हैं। आप एक वैक्यूम में काम करने वाले प्रोग्रामर के ज्यादा नहीं होंगे। जो भी किताबें आपके पाठ्यक्रमों की आवश्यकता होती हैं वे काफी अच्छे होंगे जब तक कि आप एक आधे रास्ते के सभ्य स्कूल को चुनते हैं।

तो, कुछ वर्गों के लिए साइन-अप करें और यह बहुत अधिक मजेदार होगा! इसके अलावा, यदि आप एक प्रोग्रामर के रूप में नौकरी पाने की योजना बनाते हैं, तो आपको कनेक्शन की आवश्यकता होती है और आप कैंपस में भर्ती होने वाली कंपनियों आदि के बारे में चर्चा करेंगे।

अंत में, औपचारिक शिक्षा बहुत महत्वपूर्ण है क्योंकि प्रोग्रामिंग को समझने के लिए बहुत सैद्धांतिक पृष्ठभूमि ज्ञान की आवश्यकता होती है कि सभी स्तरों पर काम करने के लिए चीजों को कैसे माना जाए (hw / sw) ताकि आप यह पता लगा सकें कि चीजों को कैसे ठीक किया जाए। बस के बारे में सब कुछ एक ब्लैक बॉक्स है, इसलिए आपको यह पता लगाने में सक्षम होना चाहिए कि कुछ ऐसा क्यों व्यवहार कर रहा है, जिससे आप अंधेरे में अगले तार्किक चाकू ले सकते हैं। कम से कम 2 साल की प्रोग्रामिंग डिग्री के बिना (जो भी आप इसे कहते हैं) आप एक नुकसान में होंगे।

PS जब तक आप जावा का अनुभव नहीं करेंगे, मैं .Net, या C # के पास नहीं जाऊंगा। C # आंख को भाता नहीं है। यह गड़बड़ और अव्यवस्थित दिखने वाला कोड है। .Net IDE विश्वास से परे बेकार है। यह आईडीई मानकों के अंधेरे युग में है। जावा: सी # ~ डेटा: विद्या


10
मैं आखिरी पैराग्राफ तक आपके साथ हूं। यह C # के सौंदर्यशास्त्र के बारे में आपकी राय को इतने भड़काऊ तरीके से बताता है कि यह अन्यथा एक अच्छा जवाब नहीं है।
एडम लेअर

9
अंतिम पैराग्राफ से पहले भी, यह ज्यादातर बकवास है। कुछ लोग क्लास रूम के माहौल में अच्छा सीखते हैं - लेकिन दूसरों के लिए यह समय की बर्बादी है। सैद्धांतिक पृष्ठभूमि सीखना महत्वपूर्ण है, लेकिन इसके लिए कक्षा या औपचारिक शिक्षा की आवश्यकता नहीं है - वे कुछ लोगों की मदद करते हैं, लेकिन हर किसी के लिए भी (करीब भी नहीं)।
जेरी कॉफिन

एक राय सिर्फ यह है कि; यह तथ्य का बयान नहीं है। तो, बुरा मत मानना।
टॉम जोन्स

YOu ने औपचारिक स्कूली शिक्षा की सिफारिश को गलत समझा। आपको प्रश्न पूछने और लैब में अपने साथियों के साथ सहयोग करने के लिए जगह की आवश्यकता होती है। सहयोग प्रमुख अवधारणा है। क्षमा करें, यदि आप एक C # उपयोगकर्ता हैं और मैंने आपको नाराज कर दिया है, भले ही डिस्पैसिएंट टेकीज़ के बीच असंभव होना चाहिए।
टॉम जोन्स

1
स्टैकओवरफ़्लो कई लोगों के लिए "लैब" बन गया है जो कॉलेज नहीं जा सकते, लेकिन सामुदायिक समर्थन चाहते हैं। क्या यह एक वर्ग के समान है? बिलकूल नही। क्या यह काफी अच्छा है? बिलकुल।
ब्लैकजैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.