जवाबों:
यह अलग-अलग होगा, लेकिन इस तरह से मैं इसे एक ऐसे स्थान पर देखता हूं जहां प्रोग्रामर के प्रकार के बीच अंतर होता है।
मैं कहूंगा कि एंट्री लेवल और जूनियर एक ही चीज हैं। वे अभी स्कूल से बाहर हैं और उनके पास दो साल से कम का कार्य अनुभव है। उन्हें कम से कम जटिल कार्य सौंपे जाते हैं और उनकी निष्पक्ष रूप से निगरानी की जानी चाहिए। आमतौर पर वे 10% के बारे में जानते हैं कि वे क्या सोचते हैं। आमतौर पर वे पूरे विकास चक्र के माध्यम से नहीं गए हैं और इसलिए अक्सर कुछ बहुत ही भोली विकल्प बनाते हैं यदि चुनने का अवसर दिया जाता है। अफसोस की बात है कि उनमें से बहुत से वास्तव में परवाह नहीं करते हैं कि आवश्यकता क्या है, वे चीजों को अपने तरीके से बनाना चाहते हैं। उनके पास अक्सर खराब डिबगिंग कौशल होता है।
इंटरमीडिएट स्तर वह है जहां कई प्रोग्रामर आते हैं। उनके पास दो साल से अधिक का अनुभव है और आम तौर पर दस से कम है, हालांकि कुछ इस स्तर पर अपने पूरे करियर में रह सकते हैं। वे कम पर्यवेक्षण के साथ काम कर रहे कोड का उत्पादन कर सकते हैं जब तक कि वे अपेक्षाकृत नियमित कार्यों को सौंपा जाता है। वे आम तौर पर उच्च स्तर के डिजाइन या अत्यधिक जटिल कार्यों के साथ काम नहीं करते हैं जिनके लिए ज्ञान के गहन स्तर की आवश्यकता होती है। उन्हें आवेदन के एक टुकड़े के डिजाइन के साथ काम सौंपा जा सकता है, खासकर जब वे वरिष्ठ डेवलपर बनने के लिए ज़ोन में हैं। वे रखरखाव कार्यों या कार्यों में अच्छे हैं जहां वे सिर्फ पहेली के अपने टुकड़े पर ध्यान केंद्रित कर सकते हैं, लेकिन आमतौर पर आवेदन पर विचार करने की उम्मीद नहीं की जाती है जब तक कि वरिष्ठ डेवलपर्स के साथ काम नहीं किया जाता है या वरिष्ठ को पदोन्नति के लिए तैयार नहीं किया जाता है। वे आम तौर पर समस्या निवारण और डिबगिंग का एक अच्छा काम कर सकते हैं, लेकिन उन्हें वास्तव में मुश्किलों को प्राप्त करने के लिए नारा लगाना पड़ता है। उन्हें अभी तक पर्याप्त अनुभव नहीं है कि वे उन समस्याओं में पैटर्न देखें जो उन्हें होने वाली संभावित जगह की ओर इंगित करती हैं। लेकिन वे उन कौशलों को हासिल कर रहे हैं और शायद ही कभी डिबगिंग की मदद मांगनी पड़े। वे शायद कम से कम एक बार पूरे विकास चक्र के माध्यम से रहे हैं और डिजाइन की समस्याओं के परिणामों को देखा और सीख रहे हैं कि भविष्य में उनसे कैसे बचा जाए। आमतौर पर वे अंकित मूल्य पर एक आवश्यकता लेने की अधिक संभावना रखते हैं और स्पष्ट समस्या या अंतराल होने पर इसे वापस धक्का नहीं देते हैं। उन्होंने यह जानने के लिए पर्याप्त सीखा है कि वे क्या नहीं जानते हैं और उस ज्ञान को हासिल करना शुरू कर रहे हैं। वे प्रोग्रामिंग वर्ल्ड के कार्यक्षेत्र हैं,
कोई भी जो वरिष्ठ स्तर का है उसे भी यह प्रश्न पूछने की आवश्यकता नहीं है। वे अपने चुने हुए प्रौद्योगिकी ढेर के विशेषज्ञ हैं। उन्हें कठिन कार्य दिए जाते हैं (जिन्हें किसी को पता नहीं है कि कैसे हल करना है) और अक्सर डिजाइन जिम्मेदारियां प्राप्त करते हैं। वे अक्सर स्वतंत्र रूप से काम करते हैं क्योंकि उनके पास माल पहुंचाने का एक सिद्ध ट्रैक रिकॉर्ड होता है। उन्हें जूनियर और मध्यवर्ती डेवलपर्स के संरक्षक होने की उम्मीद है। अक्सर वे अद्भुत संकटमोचक होते हैं। वे उन्हीं समस्याओं में पहले भी भाग चुके हैं और बहुत अच्छे विचार रखते हैं कि पहले कहां देखना है। कार्यस्थल के बाहर भी वरिष्ठ अक्सर सलाह देते हैं। उनके पास आम तौर पर कम से कम दस साल का अनुभव होता है और लगभग हमेशा कम से कम एक डेथ मार्च पर होते हैं और जानते हैं कि कुछ चीजों से क्यों बचा जाना चाहिए। वे जानते हैं कि कैसे एक काम करने वाले उत्पाद को वितरित करना और एक समय सीमा को पूरा करना है। वे जानते हैं कि किन कोनों को काटा जा सकता है और किन कोनों को कभी नहीं काटना चाहिए। वे विशेषज्ञ स्तर पर कम से कम एक और अक्सर कई भाषाओं को जानते हैं। उन्होंने बहुत सारी "हॉट नई तकनीकों" को कार्यस्थल पर देखा और गायब हो गए, इसलिए वे अगले रोमांचक नए विकास उपकरण के लिए बैंडवागन पर कूदने के बारे में थोड़ा अधिक रूढ़िवादी हैं (लेकिन पूरी तरह से बदलने के लिए प्रतिरोधी नहीं हैं - वे होंगे पुराने इंटरमीडिएट डेवलपर्स जो सीनियर के लिए कभी भी छलांग नहीं लगाते हैं)। वे समझते हैं कि उनका काम काम करने वाले सॉफ़्टवेयर को वितरित करना है जो उपयोगकर्ताओं को मज़ेदार उपकरणों के साथ खेलने के लिए नहीं बल्कि ऐसा करना चाहता है। वे अक्सर इस बारे में चुनिंदा होते हैं कि वे कहाँ काम करेंगे क्योंकि वे हो सकते हैं और क्योंकि उन्होंने पहली बार देखा है कि कुछ स्थान कितने बुरे हो सकते हैं। वे उन जगहों की तलाश करते हैं जिनमें सबसे दिलचस्प काम करने हैं। अक्सर वे अपनी कंपनी के उत्पादों के बारे में किसी और से अधिक जानते हैं, भले ही वे कुछ महीने ही रहे हों। वे जानते हैं कि उन्हें प्रोग्रामिंग ज्ञान से अधिक की आवश्यकता है और वे जिस व्यावसायिक डोमेन का समर्थन करते हैं, उसके बारे में ज्ञान प्राप्त करने में अच्छे हैं। वे अक्सर उन मुद्दों के बारे में जानते हैं जो जूनियर्स कभी नहीं मानते हैं और मध्यवर्ती अक्सर उन व्यापारिक डोमेन में नियामक और कानूनी मुद्दों के बारे में नहीं सोचते हैं जो वे समर्थन करते हैं। वे एक आवश्यकता को पीछे धकेल सकते हैं क्योंकि वे जानते हैं कि इसके साथ क्या समस्याएं होंगी और आम लोगों को वही बता सकते हैं।
प्रवेश स्तर - उन्हें स्पष्ट निर्देश देना चाहिए, वे जो कुछ भी करते हैं उसकी जांच करें, थोड़ी या कोई डिजाइन जिम्मेदारी, कोई विश्लेषण जिम्मेदारी नहीं
जूनियर - कम स्पष्ट निर्देश, कम जाँच, कुछ मामूली डिजाइन और विश्लेषण जिम्मेदारी; प्रवेश स्तर के लोगों को संकलक खोजने और रिपॉजिटरी का उपयोग करने में मदद करता है
वरिष्ठ - प्रमुख डिजाइन और विश्लेषण जिम्मेदारी, उसके / उसके खुद के, छोटे / कोई चेकिंग, छोटे / कोई निर्देश पर ओवरसाइट्स को सही करने की उम्मीद है; जूनियर स्तर के लोगों को विश्लेषण और डिजाइन कौशल सीखने / सुधारने में मदद करता है
वास्तव में, मुझे लगता है कि यह सिर्फ इतना है कि आप कितने समय तक काम पर आए हैं। यदि आपके पास 10 वर्ष का अनुभव है तो आप वरिष्ठ देव हैं, यदि आप स्नातक हैं तो आप शायद प्रवेश स्तर के हैं। मैंने कई 'वरिष्ठ' देवों को देखा है जो शायद ही कोड कर सकते हैं और वास्तव में नहीं जानते कि वे क्या कर रहे थे और कई जूनियर देव जो शानदार थे।
मुझे लगता है कि पुराने स्कूल के कारीगर स्लॉट प्रशिक्षु, यात्री और मास्टर इन स्लॉट में प्रवेश स्तर, जूनियर (या सिर्फ कोई उपसर्ग) और वरिष्ठ के लिए अच्छी तरह से फिट नहीं हैं।
किसी के प्रवेश स्तर को अपेक्षाकृत सरल कार्य दिए गए हैं, जिनका गहरा परिणाम नहीं है और उनके काम की जाँच एक जूनियर या सीनियर द्वारा की जाती है। समय के साथ उन्हें अधिक जिम्मेदारी मिलती है और अधिक जटिल कार्य दिए जाते हैं, रास्ते में रस्सियों को सीखना।
एक जूनियर (या केवल शीर्षक / विवरण से "एंट्री लेवल" / "जूनियर" को हटाने पर) आपने अपनी प्रशिक्षुता पूरी कर ली है और अपनी कंपनी के विकास के प्रमुख क्षेत्रों को कवर कर लिया है, प्रत्येक प्रमुख क्षेत्र में डूबा हुआ है ताकि आप उनमें से प्रत्येक के साथ परिचित है। अब आप प्रशिक्षु समकक्ष के लिए मार्गदर्शन और इनपुट प्रदान करने में मदद करते हैं, लेकिन आपका अपना काम अभी भी मास्टर / वरिष्ठ द्वारा समीक्षा किया जाता है, हालांकि जब आप जूनियर थे तब शायद उतना नहीं।
समय के साथ और सफल परियोजनाओं की डिलीवरी आप अंततः वरिष्ठ बन जाते हैं। एक वरिष्ठ स्तर पर आपने अपने क्षेत्र में जो कुछ भी कवर किया है, उसमें पूरी विकास प्रक्रिया और सभी उपकरण और प्रौद्योगिकियां शामिल हैं। आप महत्वपूर्ण तकनीकी निर्णय लेने के लिए सशक्त हैं और सॉफ्टवेयर विकास प्रक्रिया में प्रबंधन के लिए अंतर्दृष्टि प्रदान करने की उम्मीद है।
इसलिए, उन दिशानिर्देशों को देखते हुए, जिन्हें आपको किसी व्यक्ति या स्थिति को देखने और यह निर्धारित करने में सक्षम होना चाहिए कि वे किस तीन डिब्बे में उतरते हैं।
यह प्रोग्रामर की कंपनी की उम्मीदों पर खरा उतरने वाला है।
यदि मैं हायरिंग कंपनी हूं और मैं एंट्री लेवल प्रोग्रामर को हायर करता हूं, तो मुझे पता है कि वह व्यक्ति कुछ भी नहीं जानता है और हम मान लेंगे कि उसे सबकुछ सीखने की जरूरत है। यदि मैं एक वरिष्ठ स्तर के व्यक्ति को काम पर रखूं, तो सिद्धांत रूप में, वे एक तकनीकी दृष्टिकोण से पर्याप्त आत्मनिर्भर होंगे।
यह कंपनी पर सख्ती से निर्भर करता है। लेकिन शब्द काफी स्पष्ट हैं: प्रवेश स्तर वह है जो सिर्फ क्षेत्र में प्रवेश कर रहा है, जूनियर वह है जो प्रवेश स्तर से परे है और कुछ भाषाओं की तकनीकों के बारे में जानता है। अंतिम रूप से वरिष्ठ वे हैं जो परियोजना के प्रभारी हैं और उच्च स्तर पर बैठते हैं। वे आमतौर पर उतना ही प्रतिनिधि दे सकते हैं जितना वे कोड करते हैं।
जैसा कि अधिकांश ने कहा है, यह कंपनी से कंपनी और नौकरी से नौकरी में भिन्न होता है।
उदाहरण के लिए, मैंने एक बार एक ऐसी कंपनी में काम किया, जिसने 5 साल से अधिक समय तक वहां काम करने वाले लोगों को "सीनियर सॉफ्टवेयर इंजीनियर" माना। दूसरे चरम पर, मैंने जो दूसरी जगह काम किया, उसकी बहुत कड़ी परिभाषाएँ थीं (और संबद्ध वेतनमान)।
कुछ स्थानों पर "एंट्री लेवल" और "जूनियर" पर विचार किया जा सकता है।
यह वर्षों के अनुभव, सामान्य ज्ञान, विशिष्ट ज्ञान (यानी एक निश्चित भाषा की विशेषताओं को जानकर), प्रबंधकीय और / या नेतृत्व के अनुभव के आधार पर भिन्न हो सकता है, सभी संयोजन, और निश्चित रूप से बहुत अधिक।
मैं यहां वास्तव में सरल उत्तर के साथ जा रहा हूं: वरिष्ठ डेवलपर्स (सामान्य तौर पर) ऐसे लोग हैं जो पेड़ों के लिए जंगल देख सकते हैं। वे अपने चेहरे के सामने सिर्फ तात्कालिक मुद्दे से परे सोचते हैं और इस बात की समझ रखते हैं कि जो समस्या उनके सामने आ रही है उसे ठीक करने के परिणामस्वरूप वास्तु परिवर्तन हो सकते हैं या होने चाहिए।
अधिकांश सॉफ्टवेयर कंपनियों ने देखा है कि प्रवेश स्तर के लोग दिन-प्रतिदिन कोडिंग करते हैं, जबकि वरिष्ठ देवता नए लोगों की देखरेख कर रहे हैं और वास्तव में बदसूरत, कांटेदार मुद्दों से निपट रहे हैं।
जाहिर है कि यह केवल मेरी राय है, न कि एक कठिन-व्रत नियम। YMMV।
सीधे शब्दों में कहें और नौकरी पोस्टिंग साइटों पर पाए गए व्यक्तिगत टिप्पणियों से और केवल अनुभव के स्तर के बारे में।
प्रवेश = आपका नया शायद आपका पहला काम है।
जूनियर = आपका अच्छा लेकिन सबसे अच्छा नहीं माना जाता है, आपके पास आम तौर पर कम 5 साल और 2 साल से अधिक का अनुभव है।
वरिष्ठ = आपको सबसे अच्छा माना जाता है और आपके पास 5 साल से अधिक का अनुभव है।