जब मैं एक पेशेवर प्रोग्रामर बनने के लिए तैयार हूँ तो मुझे कैसे पता चलेगा?


जवाब 1:

मैं अब 30 साल के लिए प्रोग्रामिंग करता हूं और मैं 20 से अधिक वर्षों के लिए सी ++ डेवलपर हूं। मैं उस पेशे से रहता हूं।

मैं पिछले हफ्ते C ++ सम्मेलन में था। मैंने सुबह 3:30 बजे तक होटल के एक सुइट में आयोजक और कुछ वक्ताओं के साथ कुछ पेय लिया। सीन पेरेंट ने फोटोशॉप के विकास के बारे में कुछ अच्छी कहानियां बताईं। पिछले साल मुझे ब्रेज़न स्ट्रॉस्ट्रुप से मिलने का अवसर मिला था और तीन साल पहले मैं सोच रहा था कि मेरे सामने यह जर्मन बोलने वाला व्यक्ति स्कॉट मेयर्स के दोगुने जैसा दिखता है जब तक मुझे एहसास नहीं हुआ कि स्कॉट मेयर्स लगभग पूरी तरह से जर्मन बोलते हैं।

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

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

मैंने एक बार C ++ के आविष्कारक बज़्ने स्ट्रॉस्ट्रुप का एक उद्धरण पढ़ा, जहाँ उनसे 1 से 10 के पैमाने पर उनके C ++ ज्ञान के बारे में पूछा गया था। उन्होंने उत्तर दिया: "7"।

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

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

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

इसलिए हो सकता है कि मैं सिर्फ एक डोमेन का विशेषज्ञ हूं क्योंकि मुझे वहां और चीजें दिखती हैं जो मुझे अभी तक समझ नहीं आई हैं।

यह है कि आप एक पेशेवर कैसे देखते हैं?


जवाब 2:

A2A

IMO, जब आपको लगता है कि आप पूरे दिन, हर दिन कोड कर सकते हैं और इससे थक नहीं सकते।

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

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

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

दी, मैं एक आत्म-सिखाया प्रोग्रामर हूं और सीएस की डिग्री नहीं है, इसलिए मुझे नहीं पता कि वास्तविक दुनिया में स्कूल का ज्ञान कितना होता है। लेकिन, मैंने नए प्रोग्रामर के उद्देश्य से पायथन पर एक पुस्तक श्रृंखला लिखी है, और यह मुझे तीन नौकरियों, दो पायथन डेवलपर के रूप में और मेरे वर्तमान मॉडल और सिम्स (जो पायथन पर बनाए गए हैं) में पर्याप्त है।

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


जवाब 3:

मेरे अपने व्यक्तिगत अनुभव में यह दो चीजों का संयोजन था:

  • जब आप अपने प्रोग्रामिंग वातावरण की सीमा को समझते हैं
  • जब आप उनके और उनके आसपास काम करने में सक्षम होते हैं

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

तो टीएल, डॉ

आप जानते हैं कि आप तैयार हैं जब आप हर किसी के सत्यापन की आवश्यकता महसूस करना बंद कर देते हैं।


जवाब 4:

यदि आप एक साक्षात्कारकर्ता को प्रभावित करने के लिए ठोस पर्याप्त साइटों / परियोजनाओं का निर्माण कर सकते हैं, तो आप तैयार हैं। कुछ काम करो, और इसे प्रदर्शन पर ले आओ। GitHub पर कोड को फेंक दें और इसे फिर से शुरू करें।

यदि मालिकों का मानना ​​है कि आप चीजों का निर्माण कर सकते हैं, तो आप तैयार हैं। यदि नहीं, तो वापस जाएं और कार्यक्रमों को पॉलिश करें (या अधिक बनाएं), फिर पुन: प्रयास करें।