एक अच्छा डेवलपर बनना सीखें: आप किन हिस्सों को छोड़ सकते हैं? [बन्द है]


31

मैंने खुद को अगले साल इस समय तक एक सभ्य डेवलपर बनने का लक्ष्य निर्धारित किया है। इससे मेरा मतलब है कि मेरे बेल्ट के नीचे कुछ अच्छे ऐप / साइटें / वेबएप्स 'विकास का पूरा अनुभव' , और सबसे महत्वपूर्ण यह है कि यह पहले से ही कुछ समय के लिए घंटों तक बगैर किसी स्थिर गति के काम कर सके। तकनीक।

मैं खरोंच से शुरू नहीं कर रहा हूँ। मैंने बहुत से html / css, SQL, javascript, python और VB.net लिखे हैं, और C और Java जैसी अन्य भाषाओं का अध्ययन किया है। मैं OOP, डिजाइन पैटर्न, TDD, जटिलता, कम्प्यूटेशनल भाषा विज्ञान, संकेत / संदर्भ, कार्यात्मक प्रोग्रामिंग, और अन्य शैक्षणिक / सैद्धांतिक मामलों जैसी चीजों के बारे में जानता हूं । यह सिर्फ मैं यह नहीं कह सकते मैं वास्तव में किया है किया अभी तक इन बातों को।

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

मैं बुनियादी क्षमताओं वाला एक प्रोग्रामर हूं - मुझे कौशल विकसित करने पर ध्यान केंद्रित करना चाहिए।

(मेरे यूनिक्स कौशल भी बहुत कमजोर हैं, और विंडोज कॉन्फ़िगरेशन का भी ज्ञान है ... मुझे यकीन नहीं है कि मुझे उस पर कितना समय बिताना चाहिए)


41
आप उस हिस्से पर छोड़ सकते हैं जहां आप सोते हैं :-)
जेसी मैककुलो

17
एक अजीब सवाल। लंघन सीखना? गणना नहीं करता। मुझे एक उद्धरण याद दिलाता है: “यात्रा पर ध्यान केंद्रित करें, न कि गंतव्य पर। खुशी एक गतिविधि को खत्म करने में नहीं बल्कि उसे करने में
पाई जाती है

5
मैंने कहा कि छोड़ें, और बाद में वापस आएं ('बाद की तारीख में छोड़ दें')। मैं इन सभी बातों से इनकार नहीं कर रहा / सकती हूँ / रेखा के आगे महत्वपूर्ण हो सकती हैं।
एंड्रयू एम

13
एक डेवलपर के रूप में याद रखने वाली एक बात: उन सूचियों को, जहां आप आइटम को "स्किप करने और बाद में वापस आने के लिए" कहते हैं, हमेशा खोई हुई लगती हैं ...
Winko the Sane

8
आलसी होना छोड़ो। सीखने के लिए सब कुछ जानें।
DexterW 19

जवाबों:


12

ये सुझाव हैं कि मैंने क्या किया, इस पर आधारित नहीं है, लेकिन मुझे लगता है कि मुझे अपनी दृष्टि के आधार पर करना चाहिए:

  1. नई हाइप की गई तकनीकों को छोड़ दें क्योंकि उनमें से अधिकांश विफल हो जाएंगी। उन लोगों के लिए अपवाद बनाएं जिनकी आपके पास कोई हिस्सेदारी या व्यवसाय योजना है, लेकिन हमेशा एक ऑप्ट-आउट (प्रतिस्थापन प्रौद्योगिकी) रणनीति होती है।
  2. हर प्रोग्रामिंग लैंग्वेज और लाइब्रेरी पर एक्सपर्ट बनना छोड़ दें। अपेक्षाकृत कुछ (सात) प्रोग्रामिंग भाषाओं और पुस्तकालयों पर एक विशेषज्ञ बनने की कोशिश करें जो आपको क्या करना पसंद करते हैं। उस ने कहा, एक अलग प्रोग्रामिंग भाषा की बारीकियों को समझने की कोशिश करने का अवसर कभी न चूकें। एक नई भाषा और उसके मानक पुस्तकालयों में सक्षम होने में लगभग दो महीने लगते हैं।
  3. जब भी वर्कअराउंड हो, सिंगल-प्लेटफॉर्म तकनीकों को छोड़ दें।
  4. MS Windows को छोड़ दें। इसके बहुत सारे निहितार्थ हैं।
  5. एक विशेषज्ञ बनना छोड़ दें, लेकिन चुनिंदा रूप से दूसरों को यह सोचने की अनुमति दें कि आप क्या हैं।
  6. यदि आप कर सकते हैं तो कॉर्पोरेट वूडू ("उपयोगकर्ता द्वारा संचालित, उद्यम घटक वास्तुकला") को छोड़ दें। यह कहीं नहीं जाता है।
  7. सी ++ छोड़ें (दूसरों को उससे निपटने दें) और पायथन बाइंडिंग की प्रतीक्षा करें।

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

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

याद रखें कि अच्छे डेवलपर्स को हर चीज के बारे में पता होता है, क्योंकि कंप्यूटिंग शायद ही कभी कंप्यूटिंग के बारे में है, लेकिन अधिक बार मानव प्रयास के किसी भी क्षेत्र में इसे लागू करने के बारे में, यह सैद्धांतिक भौतिकी, पारिस्थितिकी तंत्र संरक्षण, या मैट्रिक्स में फोटोग्राफिक प्रभाव हो ।

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


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

@Andrew डब्ल्यू। ध्यान दें कि मैंने जो कुछ पिन बनाए हैं, वे "गाल में जीभ" हैं । इस साइट के भाई, stackoverflow.com , एक लचीला, असंरचित तरीके से नया सामान सीखने के लिए एक शानदार जगह है। यह इस बारे में भी एक अच्छा विचार प्रदान करता है कि डेवलपर्स वास्तव में क्या काम कर रहे हैं।
अपाला

आप कैसे परिभाषित करेंगे "6. यदि आप कर सकते हैं तो कॉर्पोरेट वूडू (" उपयोगकर्ता द्वारा संचालित, उद्यम घटक वास्तुकला ") को छोड़ दें। उपयोगकर्ता द्वारा संचालित, उद्यम घटक वास्तुकला क्या है? एन-स्तरीय विकास? डिजाइन पैटर्न, कुछ और?
बॉब

@ थोबड़ा मौलिक कॉर्पोरेट सनक दशकों से है कि एक नई तकनीक या कार्यप्रणाली गैर-प्रोग्रामर को काम करने वाले कार्यक्रमों को लिखने की अनुमति देगी। मामले, यूएमएल-टू-कोड और एंटरप्राइज आर्किटेक्चर फ्रेमवर्क। यह आवर्तक है: MDAs बैठें उनके कंप्यूटर हैं, एक प्रक्रिया आरेख बनाते हैं, और सॉफ़्टवेयर बनाते हैं।
अपाला

+1। मुझे "कॉर्पोरेट वूडू छोड़ें" और "हाइपेड टेक्नोलॉजीज छोड़ें" बहुत पसंद है। यहां तक ​​कि सुपर-कमाल के शांत सामान (जैसे पायथन) को अभी भी C & C ++ में लिखा गया है।
हम्मम

35

एक पालतू एप्लिकेशन चुनें। यह कुछ ऐसा होना चाहिए जो बहुत सरलता से शुरू हो सकता है लेकिन कुछ जटिलताएं हैं जैसे आप गहरी खुदाई करते हैं। यह भी कुछ ऐसा होना चाहिए जो आपको रुचिकर लगे क्योंकि आप इसके साथ बहुत समय बिता रहे हैं। यह भी सुनिश्चित करें कि यह कुछ करता है। अभी एक रूपरेखा या एक webservice लिखने की कोशिश मत करो। बस एक नियमित उपयोगकर्ता संचालित ऐप।

गिट, मर्क्यूरियल या बाज़ार डाउनलोड करें और सीखें कि उनके साथ एक रिपॉजिटरी कैसे बनाई जाए (यह मृत सरल है)।

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

एक बार जब आप अपना एप्लिकेशन लिखना समाप्त कर लेते हैं, तो उसे लेबल करें। वह तुम्हारा V1 है। माइकल फेयर्स को प्रभावी ढंग से लिगेसी कोड , बॉब मार्टिन के एजाइल सॉफ्टवेयर डेवलपमेंट प्रिंसिपल्स, पैटर्न और प्रैक्टिस एंड क्लीन कोड और एंड्रयू हंट और डेविड थॉमस ' द प्रोगामेटिक प्रोग्रामर के साथ प्रभावी रूप से काम करें । किसी भी क्रम में उन्हें पढ़ने के लिए स्वतंत्र महसूस करें, यहां तक ​​कि उनके बीच कूदने के लिए भी। बहुत सारे विचार दोहराए जाते हैं लेकिन वे आपकी समझ को भी मजबूत करेंगे क्योंकि उन्हें विभिन्न दृष्टिकोणों से प्रस्तुत किया जाता है। (आप संदर्भ के लिए GoF डिज़ाइन पैटर्न बुक को चुनना चाहेंगे )

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

यदि सही ढंग से किया गया है, तो आपको कई अच्छे कौशल सीखने चाहिए जैसे: रीफैक्टरिंग, टेस्टेड डिज़ाइन, मौजूदा कोड में सुधार, और डिज़ाइन पैटर्न लागू करने के लिए (और कब) (अन्य कौशल के बीच)।

आदर्श रूप से, आपकी प्रगति को समझने में आपकी सहायता करने के लिए आपके पास एक संरक्षक होगा। यदि दिलचस्पी है, तो आप मुझसे (kharasoft डॉट नेट पर firstinitiallastname) से संपर्क कर सकते हैं, और मैं आपको एक योजना बनाने और समीक्षा प्रदान करने में मदद करूंगा।

अपने करियर को आगे बढ़ाने के लिए पहल करने के लिए बधाई! कई पुरस्कार इससे आएंगे।


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

1
मैं मार्टिन फाउलर एंड केंट बेक द्वारा "रीफैक्टिंग: इम्प्रूविंग द डिज़ाइन ऑफ़ एक्सिस्टिंग कोड" का भी सुझाव दूंगा।
ऑस्कर मेडरोस

1
मेरे पास पहले से ही है कि वास्तव में, यह सब अभी तक नहीं पढ़ा है। ग्लासगो यूनिवर्सिटी (हास्केल का घर ...) को 'क्लासिक्स' चुनने के लिए मैं अक्सर स्थानीय चैरिटी बुक शॉप के पास रहता हूं। अब तक मैंने कोड कम्प्लीट 2, रीफैक्टरिंग, ट्रांसकेंडिंग सीएसएस, सीएसएस डिज़ाइन के ज़ेनस्क्रिप्ट, ज़ेडस्क्रिप्ट को निश्चित गाइड, के एंड आर सी, जीओएफ, साथ ही एएसपी.नेट वेबसाइट प्रोग्रामिंग, जावा कलेक्शंस, डेटाबेस सिस्टम्स (कॉनलाइन / बीग) पाया है। स्टूडेंट गाइड टू यूनिक्स, प्रोग्रामिंग रूबी, इंट्रो टू फंक प्रोग का उपयोग हास्केल, यूएमएल डिमिस्टिफाईड, बिगिनिंग जावा 2। मैं उन सभी को पढ़ने के लिए राउंड लगाऊंगा ... हो सकता है कि मैं उन्हें सस्ते में खरीदूं जब मैं कर सकता हूं।
एंड्रयू एम

28

आप एक अच्छे डेवलपर का रहस्य जानते हैं?

आप यह सब नहीं जानते हैं, लेकिन आप जानते हैं कि आप क्या नहीं जानते हैं और जहां आपको इसकी आवश्यकता नहीं है, उसके बारे में अधिक जानकारी प्राप्त करने के लिए क्या करना है।

  • विवरण में आपके द्वारा बताए गए सभी को जानना संभव नहीं है - एक मस्तिष्क को संभालने के लिए बहुत अधिक।
  • यह सब याद रखना संभव नहीं है - अप्रयुक्त ज्ञान स्मृति से मिट जाता है
  • अधिकांश व्यावहारिक स्थितियों में आपको वैसे भी ज़रूरत नहीं है

असंभव को प्राप्त करने की कोशिश केवल चिंता, नींद और आत्मविश्वास के नुकसान को जन्म देगी।


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

1
@ और, जूनियर प्रोग्रामर से मार्गदर्शन की आवश्यकता की अपेक्षा की जाती है। सीखने के लिए हाथों का अनुभव आवश्यक है ...

हाँ, आप शायद सही कह रहे हैं, लेकिन नौकरी के विज्ञापन कभी नहीं कहते हैं। उम्मीद है कि मैं उन्हें और नेटवर्क को दरकिनार / सीधे टीम प्रबंधकों से बात कर सकता हूं। लेकिन बंद मौका है कि मैं अभी मैं क्या कौशल है के साथ एक नौकरी नहीं मिल सकता है पर, मैं सिर्फ होना चाहता हूँ लानत यकीन है कि मैं नहीं होते अब से एक ही समस्या एक वर्ष की है।
एंड्रयू एम

10

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

  1. एक सरल परियोजना चुनें जो एक ऐसे कौशल का उपयोग करती है जिसे आप सीखने में रुचि रखते हैं।

  2. इसे लागू करें, उस कौशल पर ध्यान केंद्रित करें।

  3. ध्यान दें कि आप उस परियोजना को कैसे पसंद करते हैं और आप क्या पसंद नहीं करते हैं।

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

  5. जिन चीजों के बारे में आपको यह पसंद नहीं आया कि परियोजना कैसे निकली, अपने आप से पूछें, "क्या यह कुछ है जो मुझे पता होना चाहिए कि कैसे करना है (या कैसे करना है, यह जानना चाहते हैं), या क्या यह विकास का एक पहलू है जिसे मैं पसंद कर सकता हूं और चाहूंगा आम तौर पर दूसरों को छोड़ने के लिए? "
    ए। यदि आपको लगता है कि आप चाहते हैं या यह जानना चाहिए कि यह कैसे करना है, तो इसे चरण 4a में शुरू की गई सूची में जोड़ें। ख। अगर आपको लगता है कि आप उस पहलू को दूसरों पर छोड़ सकते हैं, तो एक इंसान के रूप में अपनी सीमाओं पर उदासी भरे फैशन में आहें भरते हैं, इसे एक कमजोरी के रूप में नोट करें और आगे बढ़ें।

  6. उन चीज़ों की सूची में से एक कौशल चुनें जिन्हें आप 4 ए और 5 ए से जान सकते हैं। अपनी प्रोग्रामिंग को विकसित करने के लिए जो कुछ भी आप सोचते हैं उसे पास करने के लिए जो भी आपको लगता है उसे चुनना सबसे महत्वपूर्ण है।

  7. बुद्धिशीलता सरल परियोजनाएं जो आप कर सकते हैं, उस कौशल का उपयोग करें। एक उठाओ, संभवतः एक परियोजना जो आपको एक और कौशल का अभ्यास करने देगी जो सूची में भी उच्च है, इसलिए आप एक पत्थर से 2 पक्षियों को मार सकते हैं (हालांकि n / 2 n के रूप में एक ही जटिलता है, यह अभी भी इस तरह से तेज होगा)।

  8. इस परियोजना का उपयोग करते हुए, चरण 2 पर लौटें।

अपने जीवन के बाकी हिस्सों के लिए इस लूप को दोहराएं, या जब तक आप एक अच्छा प्रोग्रामर बनने की इच्छा नहीं रखते हैं (हे, अगर आप भूखे अनाथों को खिलाने के लिए कोडिंग छोड़ना चाहते हैं, तो मैं आपको नहीं रोकूंगा!)।

मैं परीक्षण और n- स्तरीय वेब अनुप्रयोगों में विशेषज्ञता प्राप्त कर रहा हूं। मेरी अगली परियोजना TDD और शायद ASP। NET MVC 2 का अभ्यास करेगी। TDD परीक्षण में अपनी ताकत बढ़ाने के लिए है (मैं एक SDET हूं, इसलिए TDD मुझे इकाई परीक्षण में केवल अंतर्दृष्टि देगा, जिसे मैं आमतौर पर छोड़कर नहीं करता हूं मेरे परीक्षण उपकरण पर) और अच्छे डिजाइन में कमजोरी के साथ-साथ (मुझे आशा है) और एमवीसी को फ्रंट-एंड डिजाइन में मेरी कमजोरी में मदद करना है। मेरी सूची में परीक्षण प्रदर्शन, वेब सुरक्षा और वेब डिजाइनर के साथ काम करके एक अच्छी (और अच्छी दिखने वाली) वेबसाइट तैयार करना शामिल है।

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

क्षमा करें यदि आप कुछ कट-एंड-ड्राय चाहते हैं। मुझे नहीं लगता कि प्रश्न का ऐसा कोई उत्तर है।


6

मैं वर्षों से एक प्रोग्रामिंग कर रहा हूं (चूंकि मैं 7 साल का था - मैं अपने 30 के दशक के उत्तरार्ध में हूं)।

यदि मैं आपकी स्थिति में होता, तो एक बात जो मैं दृढ़ता से बताऊंगा - लेकिन जो मैं अन्य उत्तरों में नहीं देखता, वह यह है कि कम से कम एक अन्य प्रोग्रामर को एक परिभाषित प्रोजेक्ट पर काम करना है।

जैसा कि आप एजाइल प्रोग्रामिंग - एससीआरयूएम आदि के बारे में पढ़ते हैं और चुस्त और परीक्षण संचालित तरीके से काम करते हैं। एक साथ काम करें - लेकिन अपने एक कोड को ज़्यादातर लिखने न दें - सही मायने में डेवलपर्स की एक जोड़ी के रूप में उस पर काम करें।

और जब सब कुछ के अपने संस्करण को लिखना जानकारीपूर्ण हो सकता है - मुझे पता है कि बहुत अच्छे डेवलपर्स को उस सामान के लिए कोड EXCEPT लिखने से बचने में महारत हासिल है, जो उन्हें पूरी तरह से खुद करना है - यानी जो उनकी परियोजना के बारे में अद्वितीय है।

बाकी समय वे कोड का बड़े पैमाने पर पुन: उपयोग करेंगे - एपीआई के कॉल, ओपन सोर्स प्रोजेक्ट्स (जहां उपयुक्त हो) का उपयोग करें और संक्षेप में ऐसा करने के लिए केवल पहिया (या डेटा एक्सेस लेयर आदि) को रोकने से बचें।

और फिर ऐसा करने के दौरान - विशेष रूप से खुले स्रोत परियोजनाओं के साथ वे भी उन परियोजनाओं में वापस योगदान देंगे - वे कोड को पढ़ेंगे, इसे साफ करेंगे, कीड़े को ठीक करेंगे, एक्सटेंशन का योगदान करेंगे आदि।

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

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

व्यवसाय की आवश्यकताओं को दृढ़ता से ध्यान में रखते हुए और परीक्षण करते समय - और हाँ कई बार परीक्षण से पता चलता है कि आप वास्तव में कुछ कोड को फिर से लिखना या इसे स्वयं लिखना चाहते हैं (कभी-कभी आप किसी परियोजना को बेहतर बनाने के लिए इस योगदान को वापस कर सकते हैं)।


+1 अच्छा विचार - अन्य लोगों के साथ काम करने का अनुभव बहुत महत्वपूर्ण है।
माइकल के

+1 आपको एक अच्छी टीम को चलाना होगा, बहुत दुर्लभ, अथाह कारणों से, एक डेवलपर को यह कहते हुए सुनने के लिए - देखें कि क्या कोड पहले आवश्यक है। टीम प्रोग्रामिंग के लिए भी, आवश्यक।
बजे

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

5

यह केवल पढ़ने और सामान की बात है जब आपको इसकी आवश्यकता होती है।

यदि आप कहीं अटक जाते हैं या यह महसूस करते हैं कि "मेरा समाधान कुछ याद कर रहा है" - यही वह है जब आपको इसके बारे में अधिक जानने के लिए कुछ समय बिताना चाहिए!


मुझे हमेशा वह एहसास मिलता है। अच्छा उत्तर।
जेएफओ

5

बिट्स को स्किप करने की कोशिश करना सबसे अच्छा रवैया नहीं है।

कहा जा रहा है, आप कुछ क्षेत्रों पर ध्यान केंद्रित करने का लक्ष्य बना सकते हैं जब आप एक विचार प्राप्त करते हैं कि आप देव के किन हिस्सों को पसंद करते हैं।

हो सकता है कि उदाहरण के लिए विंडोज़ देव के अवरोध के लिए, वेब विकास से चिपके रहें।

मुझे सभी ट्रेडों का जैक बनना पसंद है, क्योंकि यह मुझे अधिक उपयोगी बनाता है।


3

एक वर्ष में, आपके पास "कुछ अच्छे ऐप्स / साइट / वेबैप्स" पूरे होने की संभावना नहीं है, विशेष रूप से एक स्थिर सीखने की अवस्था में। केवल एक चीज जो आप सीखेंगे वह है burnout।

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

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

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


3

किस भाषा में प्रोग्रामिंग शुरू करना है, इसकी चिंता करना छोड़ें।
बस एक चुनें और जाएं।
API के ins-and-outs सीखने में अपना समय व्यतीत करें।

यहाँ पर क्यों:

कौन सा बेहतर है, XUL, एक्लिप्स का SWT, या wxWindows? मुझे नहीं पता। वे सभी ऐसे विशाल संसार हैं जिनका मैं वास्तव में मूल्यांकन नहीं कर सकता और बता सकता हूं। यह ट्यूटोरियल पढ़ने के लिए पर्याप्त नहीं है। आपको एक या दो साल के लिए पसीना बहाना होगा और इससे पहले कि आप वास्तव में यह जानते हैं कि यह काफी अच्छा है या आपको पता है कि आप अपने यूआई का स्वाद असली भोजन की तरह नहीं बना सकते हैं।

जोएल स्पोलस्की, "लॉर्ड पामरस्टन ऑन प्रोग्रामिंग" http://www.joelonsoftware.com/articles/LordPalmerston.html


3

मैं "के बारे में पता होना चाहिए यह पहले से ही" सिंड्रोम के बारे में बहुत ज्यादा चिंता नहीं करेगा। काम की इस पंक्ति में, आप हमेशा कुछ नया सीख रहे हैं। साल में एक या दो बार, मेरा बॉस मुझे संचार प्रोटोकॉल या एकीकृत सर्किट या कुछ और के लिए 200-300 पेज के दस्तावेज़ के लिए एक लिंक भेजता है और वह मुझे इसकी सामग्री पर निवासी विशेषज्ञ बनने के लिए कहता है। कोई भी आपसे यह उम्मीद नहीं करता कि आप उस मुकाम पर पहुँचेंगे जहाँ आप "सीख" रहे हैं।

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

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

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

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

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


2

मैं यहां दो बिंदु साझा करना चाहता हूं:

  1. एल्गोरिथ्म के संदर्भ में सोचने से हमेशा मदद मिलेगी। जब मैं शुरू कर रहा था तो मैं हमेशा वास्तविक जीवन परिदृश्यों और उनके पीछे वर्तमान एल्गोरिदम के बारे में सोचने के लिए उपयोग करता हूं और हमेशा उन्हें अनुकूलित करने का प्रयास करता हूं।
  2. कभी भी हर कोई लर्निंग छोड़ना और नई चीजों को समझना / टेक्नोलॉजीज करना, कंप्यूटर में ऐसा कुछ नहीं है GURU, आपको हमेशा सीखने की जरूरत है और आपको इस तथ्य को स्वीकार करना होगा और सीखते रहना होगा।

2

इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं, जब तक आप इसके साथ चिपके रहते हैं और इसे अच्छी तरह से करना सीखते हैं ।

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

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

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


वास्तव में मुझे कुछ यूनिक्स / लिनक्स की कोशिश करने के उद्देश्य से एक पुराना कंप्यूटर मिला। यह पता चला कि उबंटू पहले से ही उस पर था, लेकिन मेरे पास कुछ अच्छा था ... 'मज़ा' ... एक xorg.conf फ़ाइल का संपादन या ग्राफिक्स कार्ड को काम करने के लिए कुछ। मैंने खुद कहा, बस इस तरह सामान करना आपके ज्ञान का विस्तार करता है। लेकिन यह समय लेने वाली भी है, और जो मैं वास्तव में चाहता हूं वह अगले साल तक सामान्य सॉफ्टवेयर / वेब विकास के लिए एक व्यवहार्य नौकरी का उम्मीदवार बनना है। मैं Google पर नौकरी पाने की कोशिश नहीं कर रहा हूं, बस नियोक्ताओं के लिए एक 'सुरक्षित शर्त' बन गया हूं। और मैं अब 17 साल का नहीं हूं, मैं 25 साल का हूं ... मैं वास्तव में एएसएपी को आगे बढ़ाना चाहता हूं और अपना करियर बनाना चाहता हूं।
एंड्रयू एम

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

0

एक वर्ष में एक सभ्य डेवलपर बनने की कोशिश करना बंद करें। 10 साल में अच्छा डेवलपर बनना सीखें।

जुड़े लेख से:

कुंजी जानबूझकर अभ्यास है: न केवल इसे बार-बार करना, बल्कि एक कार्य के साथ खुद को चुनौती देना जो आपकी वर्तमान क्षमता से परे है, इसे आज़माना, इसे करने के बाद और बाद में अपने प्रदर्शन का विश्लेषण करना और किसी भी गलतियों को सुधारना। फिर दोहराएं। और फिर से दोहराएं। ऐसा प्रतीत होता है कि कोई वास्तविक शॉर्टकट नहीं था: यहां तक ​​कि मोजार्ट, जो 4 साल की उम्र में एक संगीत विदुषी थी, ने विश्व स्तरीय संगीत का निर्माण शुरू करने से पहले 13 साल का समय लिया।

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

आप अपने समय में कितनी प्रोग्रामिंग करते हैं? संभवतः एक संभावित नियोक्ता को आश्वस्त करने के लिए महत्वपूर्ण कारक है कि आप तेजी से सुधार करने जा रहे हैं। आपने कौन सी परियोजनाएं पूरी की हैं ? पूर्ण की गई परियोजनाएँ समर्पण दिखाती हैं।

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

चिंता करना बंद करो और कार्यक्रम जाओ। : डी


1
नॉरविग हालांकि 'उत्कृष्ट' के बारे में बात कर रहे थे, एक कुलीन प्रोग्रामर होने के नाते। मैं सिर्फ क्षमता के बारे में बात कर रहा हूं, और उन चीजों पर समय (इस वर्ष) खर्च नहीं कर रहा हूं जो नियोक्ता बहुत ज्यादा परवाह नहीं करेंगे। आपकी सलाह के लिए धन्यवाद, हालांकि, मैं जो कुछ भी करता हूं, कुछ और परियोजनाओं को पूरा करने का प्रयास करूंगा। जिसके बारे में बोलते हुए ... मेरे पास लिखने के लिए कुछ GAE हैंडलर हैं।
एंड्रयू एम

@ और एम, 'हम में से अधिकांश के लिए अधिक से अधिक खतरा हमारे उद्देश्य को स्थापित करने में बहुत अधिक है और कम गिरने; लेकिन हमारा उद्देश्य बहुत कम है, और हमारे लक्ष्य को प्राप्त करना। 'माइकल एंजेलो। एक अभिजात वर्ग का प्रोग्रामर बनना, एक ठीक नहीं है।
डोमिनिक मैकडोनेल

0

मैं आपको अभी तक प्रेरणादायक रीडिंग और मेरे सबसे महत्वपूर्ण क्षणों के अपने कदम देना चाहूंगा।

मेरे सॉफ्टवेयर करियर में कुछ "WOW" क्षण आए हैं। वे इस प्रकार थे:

हेड फर्स्ट डिज़ाइन पैटर्न - यह वास्तव में मेरे लिए OOP / OOD की दुनिया को खोल देता है, एक निरपेक्ष स्टेपल।

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

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

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

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

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


0

सीखना और ज्ञान का संचय एक इमारत के निर्माण की तरह है, प्रत्येक ईंट एक दूसरे पर बैठती है, वे अपनी नींव पर भरोसा करते हैं।

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

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

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


0

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

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

अपने आप से पूछें कि वास्तव में एक सभ्य डेवलपर क्या है और बस इतना करें: वास्तविक जीवन परियोजनाओं पर अपनी कला का अभ्यास करें जो आपको यह भूलने के लिए प्रेरित करेगा कि यह समय क्या है।

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

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

वह सब हासिल किया जाता है जो उसके लिए सीखने के माध्यम से नहीं, बल्कि एक उद्देश्य के लिए सीखने से होता है, जिससे आपको एक ज़रूरत होती है। इसके लिए सीखना आपको एक ठोस आधार देना अच्छा है, लेकिन एक उद्देश्य के लिए सीखना वास्तविक बनाने के लिए अच्छा है।

अंत में एक अच्छा डेवलपर वह होता है जो हाथ में काम के लिए आवश्यक चीजों को लेने में सक्षम होता है।


0

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


-1

एक अच्छा ओपन सोर्स प्रोजेक्ट चुनें जिसमें आपकी रुचि हो और सीखना शुरू करें कि यह कोड है और बग फिक्स और नई सुविधाओं में योगदान दे रहा है। ऐसा हर प्रोग्रामर को करना चाहिए।

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

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