हम समग्र प्रोग्रामर शिक्षा और प्रशिक्षण में सुधार कैसे कर सकते हैं? [बन्द है]


13

पिछले हफ्ते, मैं सिर्फ दूसरी जिंदगी के फिलिप रोजडेल के केविन रोज के इस अद्भुत साक्षात्कार को देख रहा था।

और उनके पास एक अद्भुत चर्चा थी कि अच्छे प्रोग्रामर को कैसे ढूंढें, किराए पर लें और पहचानें, और अच्छे लोगों को खोजना कितना कठिन है।

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

लेकिन इसका मतलब यह भी है, कि एक अच्छा प्रोग्रामर क्या है / हैं, और प्रोग्रामिंग कौशल के विकास को प्रोत्साहित करने के लिए किस तरह का कोई वास्तविक मानक नहीं है।

यह इतना सवाल नहीं है, लेकिन सिर्फ मुझ में एक इच्छा है, यह देखने के लिए कि हम प्रोग्रामिंग की संस्कृति, और प्रबंधक की प्रोग्रामिंग को कैसे बदल सकते हैं, ताकि शिक्षा और आत्म-सुधार को बढ़ावा मिले।

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

आइए जोएल 12 चरणों को देखें।

जोएल टेस्ट

क्या आप स्रोत नियंत्रण का उपयोग करते हैं?

क्या आप एक चरण में एक निर्माण कर सकते हैं?

क्या आप दैनिक निर्माण करते हैं?

क्या आपके पास बग डेटाबेस है?

क्या आप नए कोड लिखने से पहले बग को ठीक करते हैं?

क्या आपके पास अप-टू-डेट शेड्यूल है?

क्या आपके पास कोई युक्ति है?

क्या प्रोग्रामर्स के पास काम करने की शांत स्थिति है?

क्या आप सबसे अच्छे उपकरण का उपयोग कर सकते हैं जो पैसे खरीद सकते हैं?

क्या आपके पास परीक्षक हैं?

क्या नए उम्मीदवार अपने साक्षात्कार के दौरान कोड लिखते हैं?

क्या आप हॉलवे प्रयोज्य परीक्षण करते हैं?

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

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

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

हम हमेशा अपने क्षेत्र के लोगों का मूल्यांकन करते हैं कि वे क्या करते हैं, और सोचते हैं "ओह अगर यह लड़का / लड़की xyz सबसे अच्छा अभ्यास नहीं कर रहा है, तो वह एक अच्छा प्रोग्रामर नहीं हो सकता है, तो चलो समय बर्बाद नहीं करते हैं या उनसे बात कर रहे हैं । "

ठीक यही कारण है कि हमारे पास इतने सारे प्रोग्रामिंग फ्लेम वॉर्स हैं, जो यह हो जाता है, क्योंकि एक्सपेरिमेंटल गैप के कारण, हम लोगों को कल्पना नहीं कर सकते हैं कि हमारे द्वारा किए गए फैसले नहीं हुए हैं।

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

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

मेरे लिए, और बहुत से लोगों के लिए, यह बहुत दुर्लभ है, हम में से बहुत से सम्मेलनों में जाना पसंद करेंगे, और अधिक जानने के लिए, लेकिन ऐसा करने के लिए पैसा नहीं है।

इसलिए इस सवाल का एक बिंदु वास्तव में बहुत कुछ है कि हम बेहतर प्रशिक्षण, सीख और प्रबंधन कैसे कर सकते हैं?

हम सीखने की एक नई संस्कृति कैसे बना सकते हैं जो एक ही नौकरी के अनुभवों के लिए लोगों का अपमान नहीं करती है।

हां, हम सभी के पास नौकरी और काम करने के लिए है, लेकिन हमारी नौकरियों को अच्छी तरह से करने की हमारी क्षमता, हमारे कौशल की हमारी महारत में सुधार करने की हमारी इच्छा, रुचि और समर्थन पर निर्भर करती है।

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

मेरा मतलब है, क्या हम एक उद्योग के रूप में, बस बदली cogs के रूप में माना जाना चाहते हैं?

धन्यवाद...


+1: मुझे लगता है कि यह .NET रॉक्स के कार्ल फ्रैंकलिन थे जिन्होंने एक बार उल्लेख किया था कि प्रोग्रामिंग उद्योग "अप्रेंटिसशिप में बेकार है"। मुझे आशा है कि मैंने इस उद्धरण को सही ढंग से जिम्मेदार ठहराया है; लेकिन मैं, एक के लिए, पूरी तरह से इस भावना से सहमत हूं। मैं वास्तव में नहीं जानता कि इन दिनों प्रवेश स्तर के उम्मीदवार रैंक पर कैसे काम करते हैं।
जिम जी।

शानदार टिप्पणियों के लिए शुक्रिया। लेकिन मेरे लक्ष्यों का एक हिस्सा, हमारे उद्योग के दिग्गजों को जगाने में मदद करना है कि हमें बेहतर शिक्षा तंत्र की आवश्यकता है, और मुझे नहीं लगता कि सम्मेलन और कॉलेज पर्याप्त हैं। यह सुनिश्चित नहीं है कि सही उत्तर क्या है।
crosenblum

मेरा लक्ष्य विशिष्ट ढांचे या कार्यप्रणाली को आगे बढ़ाने का नहीं है, मेरा लक्ष्य अधिक शिक्षा को आगे बढ़ाने और प्रोग्रामर का समर्थन सुनिश्चित करना है।
crosenblum

कोई भी कौशल सीखने और विकसित करने की कोशिश कर सकता है, अधिकांश के पास आवश्यक गुण नहीं हैं; लेकिन यह हमारे उद्योगों की लागत के लिए वैसे भी करते हैं।
परिक्रमा

क्या आपके पास साक्षात्कार के लिए लिंक है? youtube.com/watch?v=irF-V9RUuXo यह एक?
लुकाज़ मदन

जवाबों:


13

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

1) नौकरी की नौकरी को बुरा मानते हुए इसे रोकें और इसे प्रोत्साहित करें। हर कुछ साल बाद कंपनियां बदलें। प्रोग्रामर अपने करियर के दौरान विभिन्न तकनीकों, कार्यप्रणाली और व्यवसायों से अवगत कराया जाता है। व्यवसायों को नए विचारों का एक स्थिर प्रवाह मिलता है।

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

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

4) संपादित करें: यह थोड़ा शेख़ी-ईश था। मेरा मतलब था कि हम सभी को उम्र और अनुभव की परवाह किए बिना एक-दूसरे से सीखने के लिए बहुत कुछ है।

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

6) हमें खुद के साथ और अपने साथी प्रोग्रामर के साथ ईमानदार होने की जरूरत है। प्रोग्रामिंग कठिन है। बहुत मुश्किल। मुझे अभी भी स्नातक स्तर पर गारंटी के साथ कंप्यूटर प्रशिक्षण के लिए विज्ञापन देखना है। यह बहुत सारे लोगों को इस क्षेत्र में लाता है जो केवल योग्य या बदतर नहीं हैं और पैसे से परे कोई वास्तविक हित नहीं है। हमें अपने करियर की योजनाओं पर पुनर्विचार करने के लिए प्रोत्साहित करने का तरीका खोजने की जरूरत है।

इस बिंदु पर मुझे लगता है कि मेरा सिर फटने वाला है, इसलिए मैं निष्कर्ष निकालूंगा।

बड़ा अच्छा सवाल! मैं बहुत अधिक प्रतिक्रियाएं पढ़ने के लिए उत्सुक हूं।


3
अंक 2 के लिए +1 और अधिकांश 5। यह एक रहस्योद्घाटन का क्षण है जब आपको पता चलता है कि आपके नियोक्ता को आपकी ज़रूरत से ज़्यादा ज़रूरत है।
कार्ल नॉरम

@ कार्ल, यह वास्तव में एक महान भावना है।

महान प्रश्न टिप्पणी के लिए +1। पूर्णतया सहमत। मैं भी अंक 2 और 3 के साथ पूरी तरह से सहमत हूं।
किस्डेक

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

1
लेकिन अर्थव्यवस्था हमें नौकरियों में धकेल सकती है, जहां हमारे पास उतनी स्वतंत्रता या विकल्प नहीं है।
crosenblum

1

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

काम के सबसे सामान्य क्षेत्रों में से कुछ के लिए क्रॉस ओवर का एक बहुत कुछ होता है। वेब विकास। हालांकि, मुझे लगता है कि यह मानना ​​एक पतन है कि सिर्फ इसलिए कि ज्यादातर नौकरियों में किसी विशेष अभ्यास में संलग्न होना अच्छा है, इसका उपयोग सभी नौकरियों में किया जाना चाहिए।

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


0

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

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

पैटर्न की तरह दूसरा शिक्षणहमारा पेशेवर क्षेत्र पर्याप्त परिपक्व नहीं है। हमारे पास बहुत सी अलग-अलग चीजें हैं जो हमें लगता है कि जाने का रास्ता है लेकिन हम वास्तव में उन पर सहमत नहीं हो सकते हैं। (सोचो TDD, BDD, Agile vs Waterfall, प्रलेखन की राशि की आवश्यकता, जावा या .net) मेरे दिमाग में यह संदर्भ के बिना चर्चा करने और बहुत अधिक विशेषज्ञता के कारण है। आप इस बात को जाने बिना सही विकल्प नहीं बना सकते हैं कि प्रश्न किस संदर्भ में पूछा गया है और यदि आप केवल एक विकल्प जानते हैं तो आप सही विकल्प नहीं बना सकते हैं। जब आप इसे शिक्षा में वापस लाते हैं तो इसे हल करना असंभव लगता है। आप सभी संभावित संदर्भों और सभी संभावित समाधानों को जानने के लिए किसी से अपेक्षा नहीं कर सकते। लेकिन पैटर्न के साथ अब वे कुछ सामान्य समाधानों को लागू करते हैं और जब समाधान टूट जाता है तो संदर्भों को लागू करते हैं। IMHO यह वह तरीका है जिसे हमें सिखाने की आवश्यकता है,

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

अंतिम मत करो मुझे लगता है कि और अधिक करने की आवश्यकता है। मैंने ज्यादातर बस करना, असफल होना, ठीक करना और चर्चा करना सीख लिया है।

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