क्या मुझे कॉलेज के तुरंत बाद एक अच्छा प्रोग्रामर होना चाहिए?


28

संभव डुप्लिकेट:
मैंने कंप्यूटर विज्ञान की डिग्री के साथ स्नातक किया है, लेकिन मुझे ऐसा नहीं लगता कि मैं एक विशेषज्ञ प्रोग्रामर होने के करीब हूं

मैंने हाल ही में विश्वविद्यालय से स्नातक की उपाधि प्राप्त की है, और मैंने तब से एक विकास टीम में शामिल हो गया है जहाँ मैं अपने बेल्ट के तहत कुछ काम करने वाले शब्दों के साथ शायद सबसे कम अनुभवी डेवलपर हूं। इस बीच, टीम के बाकी सदस्य 5-10 साल का अनुभव हासिल कर रहे हैं।

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

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

जवाबों:


50

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

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


+1। मुझे वह भी बहुत पसंद था जो टीम में किसी चीज को बेकार करता है, और इसने मुझे अपने ज्ञान को समायोजित करने के लिए मजबूर किया।

27
+1University prepared me for computer science, but not really for software development.
जॉर्ज मैरियन

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

4
@ जॉर्ज: इससे भी बुरी बात यह है कि वास्तविक दुनिया में बहुत सारे सॉफ्टवेयर विकास "आईटी" छाता के अंतर्गत आते हैं, जो आमतौर पर डेटाबेस टेबल पर बदसूरत उपयोगकर्ता इंटरफेस को थप्पड़ मारने के लिए उबलते हैं। :( बिल्कुल नहीं कुछ विश्वविद्यालय आपको कभी भी तैयार नहीं कर सकता है।
एडम पेन्न्टर

@ आदम बिल्कुल। हालाँकि मैं कई बार इसकी ज़रूरत को समझता हूँ, लेकिन "अच्छा पर्याप्त" दृष्टिकोण मुझे पागल कर देता है।
जॉर्ज मारियन

23

नहीं, मैंने पिछले कुछ वर्षों में विश्वविद्यालय छोड़ने के बाद काम करने के पहले 6 महीनों में प्रोग्रामिंग / सॉफ्टवेयर इंजीनियरिंग के बारे में बहुत कुछ सीखा। हालांकि, इसका मतलब यह नहीं है कि विश्वविद्यालय समय की बर्बादी थी, इसने मेरे दिमाग को तैयार किया और पृष्ठभूमि ज्ञान प्रदान किया।

फिर से, अब वापस देख, मुझे अभी भी नहीं पता था कि मैं 6 महीने क्या कर रहा था।


4
अच्छी तरह से कहा, मेरे प्रोफेसरों ने हमेशा कहा "उद्योग और शिक्षा के बीच एक बड़ी असमानता है।" जब तक आप वास्तविक दुनिया में नहीं निकलेंगे और वास्तव में वहाँ हैं, तब तक विश्वास करना मुश्किल है!
क्रिस

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

10

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


आप जो भी सीखते हैं उसे लागू करने के लिए +1। मैं उस हिस्से का उल्लेख करना भूल गया। :)
एडम लेअर

7

मैंने निश्चित रूप से सोचा था कि मैं था, लेकिन मैं नहीं था।

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


4

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

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

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


2
अच्छा जवाब, लेकिन मैं यह नहीं कहूंगा कि "मैंने स्कूल में जो सीखा है वह बेकार है"। लेकिन मुझे पता है कि तुम क्या लक्ष्य कर रहे हो।
गाब्लिन

4

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

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

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


2

मैं ब्रायन हर्ट की पोस्ट को उद्धृत करूंगा

कंप्यूटर विज्ञान और प्रोग्रामिंग अलग चीजें हैं

जो जोएल स्पोल्स्की के अंडरग्रेजुएट प्रोग्रामिंग और शानदार लेख का संदर्भ देता है, जिसका शीर्षक है हू किल्ड द सॉफ्टवेयर इंजीनियर

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

मैं सीएस में डिग्री नहीं रखता, लेकिन मैं पेशेवर रूप से प्रोग्रामिंग और विकासशील सॉफ्टवेयर अब 8 साल से कर रहा हूं। सभी प्रोग्रामिंग कौशल मेरे पास हैं, मैंने खुद को सीखा है।


1

नहीं, मैं प्रोग्रामर बनने का नाटक कर रहा था और इसे कठिन तरीके से सीखा। मुझे अपना पहला ग्राहक फ्रीलांसर के रूप में मिला और C / C ++ के साथ बहुत बुरी तरह से लड़ा, और आखिरकार जीत हासिल की। मुझे याद है कि यह समझने में कुछ घंटे लग गए थे कि एक संरचना पर मालॉक करना संरचना में इंगित करने वालों के लिए स्मृति को आवंटित करने के लिए पर्याप्त नहीं था।


आपकी मूल डिग्री क्या थी? क्या आपकी कड़ी मेहनत ने आखिरकार भुगतान किया?
रवांग

मैं एक इलेक्ट्रॉनिक इंजीनियर हूं, मैं मैटलब में बहुत अच्छा था, लेकिन सी / सी ++ और जावा के बहुत कम ज्ञान के साथ। मानो या न मानो मेरी पहली वास्तविक प्रोग्रामिंग नौकरी विंडोज सीई के लिए ड्राइवर लिख रही थी और इसे इस डिवाइस पर पोर्ट कर रही थी: यूरोटेक . com / EN / innovation.aspx ? pg = wearable । मुझे कंपनी द्वारा थोड़ी मदद मिली थी, लेकिन मूल रूप से मैं घर पर अकेले काम कर रहा था, बहुत कम चीजों के लिए बड़ा समय खो रहा था। लेकिन तुम शर्त लगा लो मैं कुछ भी नहीं भूल गया! मैं अभी भी सीख रहा हूं, लेकिन अब मैं एक स्टार्टअप है जो एक वास्तविक रूप से बड़े कार्यक्रम को कर रहा है ... इसलिए इसने भुगतान किया।
मार्जनो

1

मैं अपने विश्वविद्यालय से स्नातक होने के बाद काफी अच्छा प्रोग्रामर था। मेरे पास स्नातक होने के महीनों पहले भी एक स्नाज़ी नौकरी की पेशकश थी (जो कि मैं एक स्नैजियर के लिए भी बदल सकता था)।

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

(उस ने कहा, मैं अभी भी अपने पहले छह महीनों में प्रोग्रामिंग में बहुत बेहतर था या एक रियल जॉब (टीएम) पर था। ऐसा नहीं है कि मुझे बाद में किया गया था, लेकिन जब यह वास्तव में बहुत कुछ दिखा रहा था।)


1

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

समय के साथ, कुछ स्नातक सहकर्मियों ने कौशल में सुधार किया, जबकि अन्य नहीं करते हैं, और यह उनके GPA से असंबंधित था।


1

विश्वविद्यालय आपको वास्तविक दुनिया का प्रोग्रामर बनना नहीं सिखाता है। मुझे लगता है कि यह उनके डिग्री कार्यक्रमों की तुलना में बहुत सारी नौकरियों के समान है। मैं यह नहीं कहूंगा कि मुझे अपनी डिग्री से कुछ नहीं मिला , लेकिन यह वास्तव में काम पर 4 साल बिताने की तुलना में बहुत कम उपयोगी था।

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


1

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

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

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


0

मैं विश्वविद्यालय में अपने शिक्षकों से बेहतर प्रोग्रामर था।

जब मैंने काम करना शुरू किया तो मैंने बड़ी प्रोग्रामिंग प्रैक्टिस सीखी।


0

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


0

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

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

आप एक ऐसी दुनिया में फंस गए हैं जहां विकसित होने के लिए समय गंभीर रूप से विवश है कि ग्राहक क्या भुगतान करेगा और क्या, कभी-कभी (ठीक है usuaully) कलात्मक, समय सीमा।

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

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


0

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

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

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