नए प्रोग्रामर को कौन प्रशिक्षित करना चाहिए? जूनियर या वरिष्ठ प्रोग्रामर? [बन्द है]


15

मेरी टीम में, हमें अक्सर नए वरिष्ठ प्रोग्रामर को प्रशिक्षित / सलाह देने के लिए सबसे वरिष्ठ प्रोग्रामर की आवश्यकता होती है। हालांकि, ये वही वरिष्ठ प्रोग्रामर हैं जो वास्तविक, महत्वपूर्ण काम करते हैं।

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

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

** हम सभी इस बात से सहमत हो सकते हैं कि वरिष्ठता आवश्यक रूप से सक्षमता को निरूपित नहीं करती है इसलिए "वरिष्ठ प्रोग्रामर" से मेरा तात्पर्य है "टॉप प्रोग्रामर"।


1
काश मैंने इस सवाल को "टॉप प्रोग्रामर्स बनाम इंटरमीडिएट टू मिड-लेवल प्रोग्रामर्स" के रूप में लिखा होता। हालांकि कुछ बेहतरीन जवाब।
smp7d 21

आप इसे संपादित कर सकते हैं तुम्हें पता है ...
ChrisF

हा, उन लोगों के लिए उचित नहीं होगा जिन्होंने पहले से ही उत्तर दिया है।
smp7d 22

मैंने सोचा कि आप शीर्षक के बारे में बात कर रहे थे ...
ChrisF

यदि वे हमेशा ऐसा करते हैं तो यह चीजों को करने का सही तरीका होना चाहिए।
सोयलेंटग्रे 22

जवाबों:


11

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

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

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


2
यह मेरी वर्तमान स्थिति के समान है।
smp7d 22

21

प्रत्येक शीर्ष प्रोग्रामर एक शीर्ष शिक्षक नहीं है। मैं किसी ऐसे व्यक्ति द्वारा प्रशिक्षण देने की सलाह दूंगा जो आपकी कंपनी के 'पर्यावरण' (तकनीकी चीजों, बल्कि संपर्कों की तरह संगठनात्मक) पर भी अवलोकन कर सकता है और जो समझा सकता है।


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

7

मैं कुछ ऐसी बातें दोहरा रहा हूं जो पहले ही कही जा चुकी हैं लेकिन मेरे दो विचार हैं।

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

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


6

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

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


4

यदि टीम में वरिष्ठ प्रोग्रामर वास्तव में जूनियर्स से अधिक अपने व्यापार में महारत हासिल नहीं करते हैं, केवल लंबे समय तक और / या टीम के भीतर एक उच्च सामाजिक / राजनीतिक स्थिति रखते हैं, तो वास्तव में यह वास्तव में एक बड़ा बदलाव नहीं करता है कौन - अगर कोई - नए लोगों का उल्लेख करता है। संभावना है, वे सभी वैसे भी मध्यस्थता के समान स्तर की ओर बढ़ेंगे ... :-(

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

उस ने कहा, अगर एक जूनियर में प्रतिभा है, और उसने दृढ़ता से यह प्रदर्शित किया है कि वह जानता है कि वह क्या कर रहा है, तो वह एक निश्चित उपकरण, तकनीक या क्षेत्र के बारे में कर रहा है, (वह) वह वास्तव में उस विशिष्ट क्षेत्र पर एक उपयोगी प्रशिक्षक हो सकता है। ।

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


4

सरल उत्तर: वह व्यक्ति जो प्रशिक्षण करता है वह व्यक्ति होना चाहिए जो प्रशिक्षण में सबसे अच्छा है जो प्रशिक्षण करना चाहता है।

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

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

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

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


3

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


2

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

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


1

मैं मुख्य रूप से संगठन में शीर्ष प्रोग्रामर से एक या दो कदम नीचे आकाओं के लिए विकल्प चुनूंगा।

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

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


0

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

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

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