नौसिखिए डेवलपर्स और उनके साथ काम करने के तरीके के बारे में

छवि



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



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



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



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



इस प्रकार, मैं कनिष्ठों को तुरंत यह स्पष्ट कर देता हूं कि बिना प्रयास और समय के ठोस निवेश के साथ-साथ उनके विकास के रोडमैप की स्पष्ट समझ के साथ, यह शुरू करना भी बेहतर नहीं है।



और फिर हम बात करना शुरू करते हैं। हमारी बातचीत का विश्लेषण कुछ वाक्यांशों की उपस्थिति के लिए किया जाता है। चलो उन्हें क्रम में लेते हैं।



मेरे लिए # बॉल यूनिवर्सिटी की तरह, समय की पूरी बर्बादी



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







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



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



Microsoft - g # जाहिर है, मैं लिनक्स के लिए लिखूंगा



हम Microsoft को C #, और Linux को - Java या Microsoft को Linux, और Linux - को Microsoft में बदलते हैं और एक कट्टरपंथी का एक विशिष्ट चित्र प्राप्त करते हैं। कट्टरपंथियों के साथ खिलवाड़ करने की कोई जरूरत नहीं है। कट्टरपंथियों के लिए, प्रक्रिया महत्वपूर्ण है, परिणाम नहीं; उनके लिए, यह महत्वपूर्ण नहीं है कि कार्य सबसे इष्टतम तरीके से किया जाता है, और सबसे महत्वपूर्ण बात यह है कि यह "सही" प्रौद्योगिकियों पर है। मैं जोड़ना चाहता हूं कि अपने जूनियर करियर के पहले साल में मैंने पास्कल, टर्बो सी ++, विजुअल C ++ (MFC और WinAPI), .NET 1.1, PHP, ColdFusion, पर्ल, जावा में लिखा था, जब तक मुझे एहसास नहीं हुआ कि मैं करीब और क्लियर हूं। यह एक व्यक्ति के लिए बहुत मुश्किल होगा जो शुरू में एक विशिष्ट तकनीक के साथ वास्तव में अच्छा विशेषज्ञ बनने के लिए जुनूनी है।



मैं इस तथ्य को नहीं छिपाऊंगा कि "प्रौद्योगिकी समस्या" अक्सर स्थापित विशेषज्ञों के बीच भी सामना की जाती है। हाल ही में मैंने नियमित ASP.NET MVC और jQuery टूल का उपयोग करके एक परियोजना का प्रदर्शन देखा, जिसे अधिकतम चार घंटों में लागू किया जा सकता है। लेकिन, सबसे पहले, इस परियोजना को लगभग एक वर्ष तक बढ़ाया गया था (निष्पक्षता में यह ध्यान दिया जाना चाहिए कि यह एक वाणिज्यिक परियोजना नहीं थी), और दूसरी बात, डेमो में खुले स्रोत, नोड.जेएस, डेटाबेस के रूप में इस तरह के शब्दों को चित्रित किया गया था। एक json फ़ाइल के रूप में। यह सब गिथब पर कमांड लाइन के माध्यम से डाला गया था, जिसके बाद इसे विशेष स्क्रिप्ट का उपयोग करके संकलित किया गया था, और फिर एक अन्य स्क्रिप्ट ने होस्टिंग पर एचटीएमएल पेज को बाहर रखा।



छवि



अचानक!



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



जिम्मेदारी एक और महत्वपूर्ण कनिष्ठ विशेषता है।



मैं सब कुछ समझता हूं, कोई सवाल नहीं



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



विपरीत नियम यहां भी काम करता है: यदि प्रश्न अक्सर आते हैं, तो जूनियर को यह नहीं पता है कि Google का उपयोग कैसे करें। लेकिन ...



... एक और महत्वपूर्ण कनिष्ठ कौशल आवश्यक जानकारी और आपके सवालों के जवाब के लिए स्वतंत्र रूप से खोज करने की क्षमता है।



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



और मुझे कितना प्राप्त होगा?



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



एक तीसरे वर्ष के छात्र द्वारा रिकॉर्ड तोड़ दिया गया था, जो विशिष्ट तकनीक के साथ 1 महीने के अनुभव के साथ, एक पार्टी समय पर दूर से काम करने के लिए सहमत हो गया था। वह लगभग $ 2,000 का वेतन चाहते थे। महत्वाकांक्षा बहुत अच्छी है (ऐसी बात), लेकिन आपको उपाय जानने की आवश्यकता है :)



कहाँ से शुरू करें?



यह सबसे आम सवाल है जो मुझे मिलता है। इसका उत्तर काफी सरल है: अपने शौक (संगीत, खेल, संख्या विज्ञान) लें और उसके लिए एक वेबसाइट, एक मोबाइल एप्लिकेशन और / या एक गेम बनाएं। पहले PHP में एक साइट लिखें, फिर ASP.NET पर, फिर एक Android एप्लिकेशन विकसित करें, फिर इसे iOS पर पोर्ट करें। और फिर साइट को होस्टिंग पर रखने की कोशिश करें, इसे बढ़ावा दें, और कुछ ऐप स्टोर में मोबाइल एप्लिकेशन प्रकाशित करें। आपको न्यूनतम मिलेगा, लेकिन फिर भी विचार से प्रकाशन तक परियोजना के विकास के पूर्ण चक्र का अनुभव होगा, और यह आपके फिर से शुरू होने का संकेत हो सकता है। और सड़क के अंत में आपको निश्चित रूप से पता चल जाएगा कि आपको सबसे अच्छा क्या सूट करता है।



और कंपनियों और विश्वविद्यालयों के बारे में क्या?



कई कंपनियां जूनियर्स के साथ काम करने के लिए तैयार नहीं हैं।



कारणों को अलग-अलग कहा जाता है:



- अब हम उसे पढ़ाएंगे, और वह प्रतियोगियों के पास जाएगा;

- हम एक युवा अंतरराष्ट्रीय कंपनी हैं, हम केवल पेशेवरों और प्रशिक्षित विशेषज्ञों के साथ काम करते हैं;

- हमारे विशेषज्ञ जूनियर्स पर अपना समय बिताने के लिए बहुत कठोर हैं;

- प्रशिक्षण विशेषज्ञों का कार्य पूरी तरह से राज्य और विश्वविद्यालयों के साथ है, हमें इसके साथ क्या करना है?



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



कई लोग ऑनलाइन प्लेटफॉर्म को शास्त्रीय शिक्षा के विकल्प के रूप में भी मानते हैं, जहां, वास्तव में, यह सब स्वयं छात्रों की इच्छा और प्रेरणा पर निर्भर करता है। लेकिन यह समस्या है। आखिरकार, सभी महान पहलें, जैसे कि आईट्यून्स यू, कर्टेरा, आदि। वे उन लोगों की नगण्य संख्या का सामना करते हैं जो पूर्ण पाठ्यक्रम लेते हैं (स्नातकों की संख्या 1-3% के क्षेत्र में भिन्न होती है)। यही कारण है कि इस सूचक को कम से कम 30% तक बढ़ाने के लिए संरक्षक की उपस्थिति आवश्यक है। और यहां राज्य सहित आईटी बाजार के सभी खिलाड़ियों का सहयोग आवश्यक है।



युवा विशेषज्ञों के प्रशिक्षण के लिए सहयोग का सबसे दिलचस्प और आशाजनक उदाहरण यांडेक्स और हायर स्कूल ऑफ इकोनॉमिक्स द्वारा दिखाया गया था, जिसने कंप्यूटर विज्ञान संकाय खोलने की घोषणा की थी। इस उत्कृष्ट उदाहरण को अन्य कंपनियों और विश्वविद्यालयों द्वारा उठाया जाना चाहिए।



निष्कर्ष के बजाय



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



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



और हां, उपरोक्त सभी को एक वाक्यांश के साथ बदल दिया जा सकता है: बैठो और काम करो। और कई लोगों के लिए, ये शब्द पर्याप्त हैं।



All Articles