इंटरमीडिएट प्रोग्रामिंग स्थिति तक पहुँचने [बंद]


32

मैं एक सॉफ्टवेयर इंजीनियर हूं, जिसकी VBA में प्रोग्रामिंग मौजूद है (हालांकि मैं उस 'वास्तविक' अनुभव पर विचार नहीं करता, क्योंकि यह परीक्षण और त्रुटि है!), पर्ल w / CGI, C #, और ASP.NET। बाद के दो पोस्ट-अंडरग्रेजुएट हैं, जिनमें मेरा प्रवेश 'वास्तविक दुनिया' में है। मैं कॉलेज से 2 साल बाहर हूं, और मेरे द्वारा उल्लिखित भाषाओं में 5 साल का अनुभव (कुल) है। हालाँकि, जब यह मेरे फिर से शुरू करने की बात आती है, तो मैं केवल C # के लिए 2 साल नीचे रख सकता हूं, और ASP.NET के लिए एक साल से भी कम हो सकता है।

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

यह कहने के लिए नहीं है कि मुझे ऐसा नहीं लगता कि मैंने प्रगति की है, इसका मतलब यह है कि जहां तक ​​मैं प्रत्येक दिन आता हूं, मैं अभी भी पहाड़ की दूरी को दूर की ओर देखता हूं।

मेरा प्रश्न यह है: आपने इस पठार को कैसे पार किया? कितना वक्त लगा तुम्हे? इसमें मेरी सहायता करने के लिए आप क्या तरीके सुझा सकते हैं?

मैंने कोड कम्प्लीट , द मैथिकल मैन मंथ , और सीएलआर के माध्यम से C #, 2 वें संस्करण के माध्यम से पढ़ा है - मेरा प्रश्न है: अब मैं क्या करूँ?


संपादित करें : मुझे सिर्फ मध्यवर्ती स्तर के प्रोग्रामर के लिए परियोजनाओं पर यह प्रश्न मिला । मुझे लगता है कि यह चर्चा में शामिल है (हालांकि यह मेरे सवाल का समर्थन नहीं करता है)। जैसे, मैं इसे "अधिक जानकारी के लिए" प्रश्न के रूप में जोड़ रहा हूं।


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

सभी के लिए यह अच्छा है: मेरे पास इसके खिलाफ कुछ भी नहीं है, यह सिर्फ मूल डेटा प्रकारों, संरचनाओं से परे एक भाषा सीखने में आपकी मदद करने के लिए डिज़ाइन नहीं किया गया है, और शायद कुछ अनुकूलन तकनीकों की तरह अगर आप मेरे समाधान के तहत प्राप्त करना पसंद करते हैं 0.1s जहाँ संभव हो।

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

1
मैं तब से प्रोग्रामिंग कर रहा हूं जब मैं 2 साल का था। मैं दुनिया के शीर्ष प्रोग्रामर बनने में असफल रहा, और अब मुझे अपने जीवन से नफरत है। काश मेरा लक्ष्य इसके बजाय दुनिया का शीर्ष पोर्न स्टार बनना होता।

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

जवाबों:


41

बधाई हो!

अपने विवरण से, आप कर रहे हैं एक मध्यवर्ती डेवलपर।

यह चरण लगभग 3-8 वर्षों तक चलेगा, जो पल की समस्या से ऊपर और परे सीखने की आपकी इच्छा पर निर्भर करता है

प्रक्रिया को गति देने के लिए, पढ़ें, सर्फ, ब्लॉग, उपयोगकर्ता समूह की बैठकों में जाएं, एक संरक्षक खोजें, स्वतंत्र अनुसंधान करें, कोड साइड-प्रोजेक्ट करें, और नई तकनीकों में खुद को दफन करें। इससे एक या दो साल का समय लग सकता है।

या आप प्रोग्रामिंग के बाहर एक जीवन हो सकता है ;-)

गंभीरता से, वर्तमान और आत्मनिरीक्षण में रहें, लेकिन हर बार और फिर #% $ @ बात को बंद करें

परिशिष्ट: जब आप बाहर जाते हैं, तो पैंट पहनना याद रखें।


17
और टॉल्किन को उद्धृत करने से सावधान रहें, यह तोड़ने के लिए एक कठिन शौक है
स्टीवन ए। लोव

1
खैर मिस्टर लोव, अच्छा खेला।
kemiller2002

1
गंभीरता से, प्रोग्रामिंग के बाहर एक जीवन है। एक: कोड से अधिक जीवन है। दो: अन्य विषयों से बहुत कुछ सीखा जा सकता है।
kemiller2002

1
+1 - अच्छी तरह से किया हुआ। कुछ भी नहीं अभ्यास (या हास्य की एक अच्छी भावना) बदल देता है।

15

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


8
मैं इस सिद्धांत को नापसंद करता हूं, लोगों के पास पूर्णकालिक नौकरियां और फिर अन्य जिम्मेदारियां हैं। यह उन लोगों को मानने के लिए ज़िम्मेदार नहीं है जिनके पास साइड-प्रोजेक्ट नहीं हैं, वे प्रोग्रामिंग को पसंद नहीं करते हैं या खराब प्रोग्रामर हैं। जैसा कि स्वीकृत उत्तर बताता है, प्रोग्रामिंग के बाहर एक जीवन है।

10
मैं असहमत हूं- सर्वश्रेष्ठ प्रोग्रामर सर्वश्रेष्ठ लेखकों की तरह होते हैं: वे शाब्दिक रूप से खुद को ऐसा करने से रोक नहीं पाते हैं जो वे करते हैं।
नॉर्मन राम्सी

2
वे खुद को रोक नहीं सकते हैं, लेकिन जीवन और कुछ इच्छाशक्ति के लिए कर सकते हैं।
शैनन सेवरेंस

@ShannonSeverance, के लिए कई कहीं भी होगी, न सिर्फ के लिए उपलब्ध है।
पचेरियर

9

आपको लार्वा चरण के माध्यम से जाना चाहिए।

हालाँकि अब मैं विंडोज पर VB.NET में प्रोग्राम करता हूं, मैं अपनी प्राथमिक भाषा के रूप में असेंबली के साथ लिनक्स x86 पर लार्वा स्टेज से गुजरा।

एक समय के लिए, आपको अपने आप को शिल्प में समर्पित करना चाहिए जब तक कि आप इसे मास्टर न करें। मास्टर प्रोग्रामर की वृत्ति को वास्तव में सीखा व्यवहार कहा जाता है। यह एक साझा संस्कृति है। प्रोग्रामर को एक दूसरे की तरह सोचना चाहिए, और मशीन की तरह।

भेड़ भेड़ के बच्चे की तरह और भेड़ के बच्चे की तरह बन जाते हैं, लेकिन न तो दुनिया में बहुत लंबे होते हैं। [पेड़ों और] इनट्स के साथ यह तेज और करीब है, और वे एक साथ युगों में चलते हैं। - टॉल्केन

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

यह महानता का मार्ग है।


2
क्या इसमें किसी तरह से चीटो शामिल है? मेरे सिर में चित्र में चीटो शामिल हैं।

2
योग्य "यह आसान नहीं है 'पनीर!"
अप्रैल को gnovice

लारवल अवस्था या लारवल अवस्था? ;)
ब्रैड थॉमस

9

जब से मैं 8 साल का था तब से प्रोग्रामिंग कर रहा हूं ... मैं क्रिसमस की पूर्व संध्या पर 33 साल का हो जाऊंगा। मैं अभी भी पहाड़ को दूर से देखता हूं। कोई फर्क नहीं पड़ता कि आप कितनी दूर आते हैं, सीखने के लिए हमेशा अधिक है।

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

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

मुझे लगता है कि मैं उन अन्य लोगों की मदद करने से अधिक सीखता हूं जो उन चीजों के उत्तर खोजने में मदद करते हैं जो मुझे अभी तक नहीं पता है कि मैं अपने हर दिन के सामान की प्रोग्रामिंग कर रहा हूं जो मैं दिन और दिन बाहर करता हूं।


9

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

यहाँ कुछ लक्षण हैं जिनके बारे में आप सोच सकते हैं:

  1. क्या आप ऑनलाइन युद्धों को संपादित करते हैं? यदि ऐसा है, तो आप दिखा सकते हैं कि आप अपने कम्फर्ट ज़ोन के अंदर विवरणों के बारे में बहस करना पसंद करते हैं, जिससे आप दूसरे व्यक्ति की बात को समझने की कोशिश करना पसंद करते हैं।
  2. क्या आप भाषाओं को वास्तव में अलग-अलग चीजें मानते हैं? C # और Java दोनों अपने-अपने प्लेटफ़ॉर्म और संसाधन तालिका में लाते हैं, लेकिन दोनों ही संगणना के प्रभावी मॉडल हैं। क्या आप एक नई भाषा सीख सकते हैं और काम करने के लिए भुगतान करने के लिए पर्याप्त तेजी से मंच प्राप्त कर सकते हैं?
  3. क्या आप अभी भी टाइपिंग के रूप में सॉफ़्टवेयर कार्यों के बारे में सोचते हैं? यदि आपको काम पर काम दिया जाता है, तो क्यों? इस कोड का उपयोग किसके लिए किया जाने वाला है? यह किस व्यवस्था का हिस्सा होगा? वह जानकारी आपके प्रस्तावित समाधान को नाटकीय रूप से बदल सकती है।
  4. क्या आपने अपने जीवन के सभी चरणों को जानना- छोड़ दिया है? क्या आप टीम के बाकी सदस्यों को सुन रहे हैं या आप केवल अगली बात कहने की कोशिश कर रहे हैं?
  5. क्या आपने महसूस किया है कि "ऑल-नाइटर को खींचना" एक छोटी गाड़ी के अंतिम-मिनट के घोल का उत्पादन करने के लिए प्रभावशाली नहीं है? पहले आठ घंटों के बाद, आप आसानी से कल्पना कर सकते हैं कि बाकी समय सिर्फ टाइपिंग बग में इस्तेमाल किया गया था।

सबसे अच्छा सारांश जो मैं साथ आ सकता हूं, वह यह है कि मध्यवर्ती प्रोग्रामर (या "डेवलपर") ने आठ कार्य घंटों में अधिक उत्पादक होना सीखा है, ताकि वे नर्क के घर जा सकें और काम से बाहर जीवन हो।

यदि आप एक पति या पत्नी को खोजने और पुन: पेश करने का प्रबंधन करते हैं तो बोनस अंक प्रदान किए जाते हैं।


8

अब आप जो कर रहे हैं वह बहुत अच्छा है, लेकिन अगर आप अपनी प्रगति को अविश्वसनीय रूप से गति देना चाहते हैं तो आप दो अतिरिक्त चीजें कर सकते हैं:

1) "सिखाओ" - ऐसा करने का एक सरल तरीका एक ब्लॉग शुरू करना है, और नियमित (साप्ताहिक शायद) आधार पर उपयोगी कुछ योगदान करने का प्रयास करना है। उन चीज़ों के बारे में बताएं जो आपने हाल ही में सीखी हैं, या जिन्हें आप अभी तक नहीं जानते हैं । इसका मतलब है कि आप अपने आप को अनुसंधान, समझने और फिर से समाप्त करने के लिए मजबूर करेंगे।

BTW, आप बहुत ही आसानी से एक SingingEels खाते के लिए साइन अप कर सकते हैं जिसमें आपको मौजूदा विकास समुदाय पर एक मुफ्त ब्लॉग मिलता है।

2) बहुत सारे मिनी-प्रोग्राम लिखें - इसके द्वारा, मेरा मतलब है प्रति सप्ताह लगभग 1। आप ऊपर के साथ जंक्शन में इसका उपयोग कर सकते हैं ... या सिर्फ मनोरंजन के लिए। एक युवा डेवलपर के रूप में मैंने जो किया, वह सिर्फ बेतरतीब ढंग से चुनना था (मैं मजाक नहीं कर रहा) .NET फ्रेमवर्क में एक नाम स्थान है। उस में, एक ऐसा वर्ग चुनें, जिसे आपने पहले कभी नहीं देखा / उपयोग किया हो, और एक छोटा प्रोग्राम बनाएं जो इसका उपयोग करता है।


8

की कोशिश

अधिक किताबें पढ़ें अमेज़न से उन बड़े खिताब उठाओ और उन्हें पढ़ें। उदाहरण के लिए, कोड कम्प्लीट के लेखक ने सॉफ्टवेयर एनीयरिंग - रैपिड सॉफ्टवेयर डेवलपमेंट पर एक महान पुस्तक लिखी थी, एक को खरीदा और उसे पढ़ा।

एक अलग प्रोग्रामिंग भाषा सीखें पाइथन / रूबी जैसी एक स्क्रिप्टिंग भाषा अध्ययन के लायक है। या हो सकता है कि एक कार्यात्मक प्रोग्रामिंग भाषा :) यह आपके प्रोग्रामिंग का मन बदल सकता है। आप जानते होंगे कि GOF के कुछ पैटर्न उन भाषाओं के लिए आवश्यक नहीं हैं।

एक समुदाय में शामिल हों लोग दूसरों से सुनकर और प्रस्तुतियां देकर अपने विचारों का आदान-प्रदान कर सकते हैं।


4

स्मार्ट प्रोग्रामर खोजें और उनसे सीखें। उनका अनुकरण करें। उन चीजों को नोटिस करें जो वे आपसे अलग करते हैं।

क्या आपकी कंपनी कोड की समीक्षा करती है? यह सीखने के सर्वोत्तम तरीकों में से एक है। अधिक उन्नत प्रोग्रामर जो सुझाव देते हैं और कोडिंग करते समय वे जिस चीज के बारे में बात करते हैं उसे देखकर आप चकित हो सकते हैं।


3

कैसे चल रहे अन्य ओपन सोर्स प्रोजेक्ट में शामिल होने के बारे में, ताकि कम से कम किसी के लिए आपका काम लायक हो जाए और आप वास्तविक दुनिया में काम करने वाले अन्य अधिक उन्नत डेवलपर्स के साथ सीख और बातचीत कर सकें।

ताकि आप कम से कम उस चीज तक सीमित न रहें जो आप सीखना चाहते हैं या आप किस प्रकार का प्रोजेक्ट करना चाहते हैं। और यह पहले से ही एक मुफ़्त उपकरण है जिसका आप उपयोग कर रहे हैं, आपको गर्व हो सकता है कि आप वास्तव में इसे बेहतर बनाने में मदद करते हैं।

और यह आपके फिर से शुरू के साथ भी अच्छा दिखाता है। :)

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


-1

C # डेवलपर के रूप में उत्कृष्टता प्राप्त करने के लिए निम्नलिखित दो को पढ़ें। ध्यान दें कि इन पुस्तकों का फ़ोकस भाषा पर अधिक है (C #) न कि रूपरेखा (.NET) ।।

  1. एसेंशियल सी # : लिंक नवीनतम संस्करण के लिए है। मैं वास्तव में पिछले एक (सी # 4.0) को पढ़ता हूं लेकिन मैं नए को बेहतर मान रहा हूं। इस पुस्तक में कुछ बुनियादी बातें भी हैं, लेकिन धैर्यपूर्वक उस पुस्तक को कवर करने के लिए पढ़ें।
  2. गहराई में सी # : लिंक फिर से नवीनतम संस्करण के लिए है जो 10-15 दिनों में जारी किया जाएगा। मैंने पुस्तक को केवल इसलिए ही स्किम किया है लेकिन मेरे सहयोगियों ने जो इसे पढ़ा है वह इसके लिए उच्च सम्मान रखते हैं।

आप C # के माध्यम से पहले ही CLR पढ़ चुके हैं , अन्यथा C # डेवलपर्स के लिए किसी के द्वारा यह संभवतः तीसरा सुझाव है।

ये आपको एक बेहतर डेवलपर भी बनाना चाहिए: फ्रेमवर्क डिज़ाइन दिशानिर्देश और विरासत कोड के साथ प्रभावी रूप से कार्य करना


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