तकनीकी रूप से प्रवीण वरिष्ठ सॉफ्टवेयर डेवलपर क्या सुधार कर सकते हैं [बंद] रखने के लिए


15

मान लें कि आप 10 वर्षों से प्रोग्रामिंग कर रहे हैं। आप कई भाषाओं को जानते हैं, जिनमें से कुछ बहुत विस्तृत स्तर पर हैं। आप समाधान के लिए वास्तुकला डिजाइन कर रहे हैं, बड़ी परियोजनाओं पर काम किया है और वितरित किया है। आप पैटर्न, सर्वोत्तम प्रथाओं, प्रभावी कोडिंग दिशानिर्देशों, इकाई परीक्षण, मल्टी-थ्रेडिंग, आदि का अध्ययन कर रहे हैं।

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

पहले की तुलना में सीखना कम उत्पादक क्यों हो जाता है?

इसके बाद, यह आपके सोचने के तरीके को बदल देता था, आपको नई चीजें सिखाता था और आपके क्षितिज को व्यापक बनाता था जो बाद में आपके वर्तमान पेशे में सुधार करता था, या कुछ नया आविष्कार / प्रबंधन / निर्माण करने की अनुमति देता था। अब ऐसा क्यों नहीं है?


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

2
मैं इस सवाल को सीमित नहीं देखता कि ओपी को आगे क्या करना चाहिए। यह सामान्य दृष्टिकोण के बारे में है बल्कि पेशेवरों ने अपने अध्ययन को आगे बढ़ाने के लिए उपलब्ध किया है। हो सकता है कि इसे बेहतर ढंग से चित्रित किया जा सकता है, लेकिन यह मेरे लिए "मुझे आगे क्या करना चाहिए" जैसे नहीं पढ़ता है।
फ्रैंक

3
ठीक है, मैं ईमानदारी से नहीं जानता कि इन दिनों कौन से सवाल ऑफ टॉपिक नहीं हैं। हाल ही में किसी भी दिलचस्प चर्चा को खोजना वास्तव में कठिन हो रहा है। ठीक है, डब्ल्यू / ई, बस विषय को ताला ...
कोडर

2
मेरा मानना ​​है कि प्रश्न को फिर से खोलने के लिए एड संपादित किया जा सकता है । जहाँ तक मैं बता सकता हूँ, समस्या प्रस्तुत की: "कम रिटर्न ... अध्ययन पैटर्न, सर्वोत्तम प्रथाओं, प्रभावी कोडिंग दिशानिर्देश, इकाई परीक्षण, मल्टी-थ्रेडिंग ..." प्रोग्रामर के लिए विषय पर काफी है
gnat

2
जब आप किसी और को पढ़ाने की कोशिश करेंगे तो आपको किसी विषय की पूरी समझ हो जाएगी।
जेएफओ

जवाबों:


23

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

मूलभूत ज्ञान

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

ध्यान दें कि इसमें प्रोग्रामिंग भाषाओं की नींव भी शामिल है - कंपाइलर, ऑप्टिमाइज़ेशन तकनीक और टाइप सिस्टम, श्रेणी सिद्धांत, मोनाड्स और इस तरह से सब कुछ।

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

प्रतिमान ज्ञान

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

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

विशेषज्ञ ज्ञान

उन सभी में सबसे आसान - और एक ही समय में सबसे कम उपयोगी। बेशक, आप खुद को एक ही तकनीक के लिए प्रतिबद्ध कर सकते हैं और इसकी सभी ins और outs को जान सकते हैं, लेकिन आपको इसकी कीमत चुकाने के लिए तैयार रहना चाहिए। टेक्नोलॉजीज की उम्र और वे ऐसा लगातार बढ़ती गति में करते हैं, जिससे यह लगभग गारंटी हो जाती है कि यहां निवेश किया गया समय सड़क से कई साल बेकार होगा।

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

डोमेन की जानकारी

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

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

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

पूरक ज्ञान

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


+1, विशेष रूप से "डोमेन नॉलेज" के लिए - यह ऐसी चीज है जो कम से कम मेरे लिए काम करती है।
डॉक्टर ब्राउन

1
आप जो कहते हैं उससे मैं 100% सहमत हूं। मैं गहरे मूलभूत ज्ञान में गहरी दिलचस्पी ले रहा हूं। इस प्रभाव के लिए कि मैं अभी कंपाइलरों पर एक कोर्स में नामांकित हूं। आप जिस चीज़ को नहीं छूते थे, उसे मैं पूरक ज्ञान के रूप में वर्गीकृत करूँगा: ग्राफिक डिज़ाइन, प्रोजेक्ट मैनेजमेंट, आदि
माइकल ब्राउन

प्रतिमान के लिए +1 - मैं ~ 10 साल से OOP / प्रक्रियात्मक काम कर रहा था (और इससे थक गया) और फिर मैंने कार्यात्मक प्रोग्रामिंग सीखना शुरू कर दिया और मेरी आँखें एक पूरी नई दुनिया में खुल गईं।
पॉल

9

मुझे लगता है कि सॉफ्टवेयर हमेशा विकसित हो रहा है और जैसे कि निरंतर सुधार पर जोर है। मैं समझता हूं कि आप कहां से आ रहे हैं, मैंने हाल ही में कुछ ऐसा ही महसूस किया है और मैं अब SQL सर्वर में MCSM का अनुसरण कर रहा हूं।

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

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

आप क्या कर सकते हैं इसके संदर्भ में, यहां कुछ सुझाव दिए गए हैं:

  1. सामुदायिक परिवर्तनों और लोगों को "क्या हो रहा है" के बीच में रखें। नए स्टैक सीखें, कम से कम आपके पास उनकी अनुशंसा करने के लिए पर्याप्त है जहां उपयुक्त हो

  2. Q & A साइट्स में इस तरह से भाग लें, जहाँ आप अपना ज्ञान दूसरों पर थोप सकें। यदि आप अन्य लोगों के योगदानों को पढ़ने के लिए समय लेते हैं, तो आप निश्चित रूप से कुछ सीखेंगे, और बहुत कम से कम आप अन्य लोगों के दृष्टिकोण को देखेंगे।

  3. ऐसा शौक चुनें, जिसका आपके काम से कोई संबंध हो। क्रॉस ओवर के साथ बहुत सारे शौक हैं, एआई, लेगो माइंडस्टॉर्म, रास्पिपी, आदि।

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

  5. सिर्फ अपने सामान को साबित करने के लिए शीर्ष स्तर के प्रमाणीकरण का पीछा करें

व्यक्तिगत रूप से, मैं आपको बताता हूं कि इस समय मेरा दिमाग क्या है। मैं 97 चीजें पढ़ रहा हूं हर सॉफ्टवेयर आर्किटेक्ट को पता होना चाहिए और मैं केवल आंशिक रूप से हालांकि यह है, लेकिन यह ऋषि सलाह का एक बहुत फेंक दिया है। पुस्तक मेरे द्वारा दिए गए लिंक पर ऑनलाइन पढ़ने के लिए स्वतंत्र है।

अंतत: मेरे शौक के संदर्भ में, मैं वाहन निदान (कंप्यूटर के साथ, जाहिर है) में शामिल हो गया, जिसने मुझे अपनी कार को पूरी तरह से बनाए रखा। मैं वास्तव में अपने हाथों से काम करने के समय का आनंद लेता हूं।


मजेदार, मैं 97 चीजों के लिए लेखकों में से एक को जानता हूं;)
माइकल ब्राउन

अच्छी किताब है।
सैम

आपका स्वागत है। यह बहुत अच्छा है।
सैम

1

एक निश्चित बिंदु के बाद, आपने एक विशिष्ट विषय के बारे में पर्याप्त सीखा है कि आप एक तदर्थ आधार पर नया ज्ञान लेने में सहज हैं। जब आपको लगता है कि आपके प्राथमिक क्षेत्र के बारे में जानने के लिए बहुत कुछ नहीं है, तो यह पूरक ज्ञान प्राप्त करना शुरू करने का समय है जो आपके प्राथमिक ज्ञान को पूरक करता है।

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

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

सीखने के लिए हमेशा अधिक होता है, यह सिर्फ बॉक्स के बाहर सोचता है।


0

इस प्रश्न के दो भाग हैं: सीखना कठिन क्यों है, और आप क्या कर सकते हैं?

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

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


-3

हर बार जब मैं लैम्बडा द अल्टीमेट साइट पर जाता हूं, तो मैं वास्तव में ऐसा नहीं सोच सकता / कर सकता हूं जैसे कि मैं जानता हूं-सभी कंप्यूटर विज्ञान के क्षेत्र में हैं।

LtU आपको सीखे जाने वाले प्रतिमान और सिद्धांतिक ज्ञान के लिए एक अच्छी शुरुआत देगा।

"जितना अधिक आप जानते हैं, उतना अधिक आप जानते हैं कि आप कितना कम जानते हैं।"


1
उस प्रश्न का उत्तर कैसे दिया जाता है, "सीखने की क्षमता पहले की तुलना में कम उत्पादक क्यों हो जाती है?"
gnat

क्योंकि जब मैं वहां जाता हूं, तो 90% चीजों के साथ कुछ ऐसे लेख होते हैं, जिन्हें मुझे सीखना चाहिए। जो ओपी के बारे में शिकायत कर रहा है वह ठीक है: पंक्ति की संख्या द्वारा सीखी गई चीजों का अनुपात जो उसके मामले में बहुत कम हो जाता है। क्या आप इस साइट को नहीं जानते हैं?
स्टीफन रोलैंड

@gnat, और आप इस प्रश्न को भूल जाते हैं , कि हकदार है: "तकनीकी रूप से प्रवीण वरिष्ठ सॉफ्टवेयर डेवलपर क्या सुधार कर सकता है?"
स्टीफन रोलैंड

क्या आपने शीर्षक के बाद प्रश्न की सामग्री पढ़ी?
gnat

: @gnat हाँ निश्चित रूप से, मैं अपने प्रश्न को पढ़ लिया है एक बयान वास्तव में यह है बल्कि अगर ओपी केवल पूछता क्यों : 10 साल बाद एक तथाकथित वरिष्ठ सॉफ्टवेयर इंजीनियर किताबें पढ़ता है कि अब परिवर्तन क्षितिज क्योंकि एक वरिष्ठ बहुत कुछ जानता है। हां मैंने वह पढ़ा है। मैं मुस्कुरा दिया। मैं खुद को दोहराता हूं "जितना अधिक आप जानते हैं, उतना ही आप जानते हैं कि आप कितना कम जानते हैं।"
स्टीफन रोलैंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.