- लेखक ने अलग-अलग डेवलपर्स से मिलते हुए यह सोचना शुरू किया कि बेहतरीन डेवलपर्स में कौन-सी साझा विशेषताएँ होती हैं
- यह लेख शुरुआती डेवलपर्स या आगे बढ़ना चाहने वालों को प्रेरणा देने के लिए लिखी गई एक अवलोकन-आधारित टिप्पणी है
पहले reference docs पढ़ें
- Stack Overflow या LLM को पहले देखने के बजाय आधिकारिक दस्तावेज़ पहले पढ़ने की आदत डालना ज़रूरी है
- Apache, Python, TOML आदि की आधिकारिक docs वास्तव में काफ़ी अच्छी तरह लिखी गई हैं
- source से सीधे सीखने की आदत लंबे समय में बहुत मदद करती है
tools को गहराई से समझें
- किसी tool को ‘इस्तेमाल’ करना और उसे ‘समझना’ दो अलग स्तर हैं
- जो लोग tools को अच्छी तरह जानते हैं, वे हर setting को समझा सकते हैं
- सही मायने में समझने के लिए tool की इन बातों को जानना चाहिए:
- इतिहास (यह क्यों बनाया गया)
- वर्तमान (इसे कौन maintain करता है)
- सीमाएँ (यह कब उपयुक्त नहीं है)
- ecosystem (आसपास के tools, libraries आदि)
इन सबको समझना ज़रूरी है
- अगर आप Kafka जैसे tool को मुख्य रूप से इस्तेमाल करते हैं, तो Reddit पर पढ़े हुए स्तर से कहीं अधिक जानना चाहिए
error messages ध्यान से पढ़ें
- error messages को ध्यान से देखने पर उनमें hints छिपे होते हैं
- बेहतरीन डेवलपर्स बहुत कम जानकारी देखकर भी समस्या का अनुमान लगा लेते हैं
- 80% समस्याएँ सिर्फ़ error message को ठीक से पढ़ने से सुलझ सकती हैं
समस्या को छोटे हिस्सों में बाँटना सीखें
- अटक जाना हर किसी के साथ होता है, और समस्या को छोटे हिस्सों में बाँटे बिना उसे हल करना मुश्किल है
- जिनके पास अनुभव ज़्यादा होता है या problem-solving skill बेहतर होती है, वे इसे आसानी से कर लेते हैं
- डेवलपर का मूल काम आखिरकार बड़ी समस्या को छोटी समस्याओं में बाँटना ही है
- सरल समस्याओं को एक-एक करके हल करें, तो पूरी समस्या भी हल हो जाती है
code से डरें नहीं
- बेहतरीन डेवलपर्स code पढ़ने से नहीं डरते
- वे “यह मेरा क्षेत्र नहीं है” जैसी बातें कहे बिना बस कोशिश करते हैं और सीखते हैं
- अक्सर ऐसा होता है कि जिस codebase को उन्होंने पहली बार छुआ हो, उसमें भी वे जल्दी ही टीम के expert बन जाते हैं
हमेशा दूसरों की मदद करें
- व्यस्त होने पर भी मदद करने वाले डेवलपर्स अच्छे teammate और शानदार professional होते हैं
- जिज्ञासा और सहयोगी रवैया अच्छे डेवलपर की अनिवार्य विशेषताएँ हैं
लिखें
- उत्कृष्ट डेवलपर्स अच्छा बोलते भी हैं और अपने विचारों को लिखकर भी व्यक्त कर सकते हैं
- वे blog, talks, open source activities आदि के ज़रिए अपने विचार साझा करते हैं
- writing skill का संबंध सीधे सोच की संरचना से है
- जो लोग अच्छा लिखते हैं, उनका code भी structured, स्पष्ट और कभी-कभी witty होता है
सीखना कभी बंद न करें
- उम्र चाहे जो हो, लगातार सीखते रहने वाले लोग ही सच में बेहतरीन डेवलपर होते हैं
- वे नए tools या languages आज़माने से नहीं हिचकते
- वे नई technology का अंधाधुंध पीछा नहीं करते, बल्कि उसके फायदे-नुकसान खुद समझते हैं
- कम उम्र में भी अगर कोई fixed mindset में फँस जाए, तो उसकी growth रुक जाती है
status से चिपके न रहें
- अच्छे डेवलपर्स पद से परे जाकर किसी से भी सीखने को तैयार रहते हैं
- वे नए लोगों से भी सीखने लायक चीज़ें होने का रवैया रखते हैं
- नए नज़रिये वाले लोगों से बातचीत में उन्हें प्रेरणा मिलती है
अपनी reputation बनाएँ
- skill महत्वपूर्ण है, लेकिन skill का पहचाना जाना भी महत्वपूर्ण है
- reputation प्रभाव बढ़ाने का एक साधन है
- reputation बनाने के कुछ तरीके:
- महत्वपूर्ण services को खुद बनाना या deploy करना
- widely used tools विकसित करना
- प्रसिद्ध open source projects में योगदान देना
- ऐसी किताब लिखना जिसे बार-बार cite किया जाए
- reputation एक दिन में नहीं बनती; इसके लिए लगातार मेहनत और समय चाहिए
धैर्य रखें
- इंसानों और computers दोनों के लिए धैर्य की ज़रूरत होती है
- आपके आसपास के लोग मूर्ख नहीं होते, बस उनके पास जानकारी कम हो सकती है
- धैर्य न हो, तो असंतोष जल्दी जमा होता है और collaboration मुश्किल हो जाता है
- कठिन समस्याओं को हल करने के लिए focus और persistence दोनों चाहिए
computer को दोष न दें
- बेहतरीन डेवलपर्स कभी system या बाहरी कारणों को दोष नहीं देते
- जो समस्या ऊपर से random लगती है, उसके पीछे भी कोई logical कारण होता है
- कारण खोजने के लिए अंत तक गहराई में जाने वाला रवैया ज़रूरी है
“मुझे नहीं पता” कहना सीखें
- इंटरव्यू में कई बार लेखक जानबूझकर उस पल का इंतज़ार करता था जब उम्मीदवार कहे, “मुझे नहीं पता”
- महत्वपूर्ण जवाब नहीं, बल्कि रवैया है
- सबसे अच्छे उम्मीदवार अपनी अनभिज्ञता स्वीकार करते हैं और फिर तर्क लगाना शुरू करते हैं
- “मुझे नहीं पता” मान लेने का रवैया सीखने की क्षमता दिखाता है
- झूठ बोलने वाले या जानने का दिखावा करने वाले लोग टीम के लिए नकारात्मक साबित होते हैं
अनुमान न लगाएँ
- PEP 20 की philosophy की तरह, जब बात अस्पष्ट हो तो कभी अनुमान न लगाएँ
- अनुमान के ख़तरे:
- गलत हुआ तो bug
- सही होने पर भी गलत assumption पर भरोसा बन सकता है, जो बाद में समस्या पैदा करेगा
- अगर भरोसा न हो, तो:
- सवाल पूछें
- docs पढ़ें
- debugging tools का इस्तेमाल करें
- और प्रमाण खोजें
चीज़ों को सरल रखें
- चतुर लोग चतुर code लिखते हैं, महान लोग सरल code लिखते हैं
- सरल code maintenance के लिए कहीं अधिक बेहतर होता है
- कहाँ complexity ज़रूरी है और कहाँ नहीं, यह समझना ही असली skill है
समापन विचार
- यह लेख कोई checklist नहीं है, और शानदार engineering कोई प्रतियोगिता नहीं है
- लेकिन अपने आप से यह झूठ मत बोलिए कि आप कठिन कामों को छोड़कर भी आगे बढ़ सकते हैं
- शानदार डेवलपर बनने का कोई shortcut नहीं है
19 टिप्पणियां
अच्छा लेख है, धन्यवाद!!
यह बात सुकून देती है कि यह लेख कोई चेकलिस्ट नहीं है, और यह बात हौसला देती है कि कोई शॉर्टकट नहीं होता।
अगर आप कंपनी के प्रोजेक्ट को समझते हैं,
तो किसी भी क्षेत्र में senior developer बनें,
चाहे वह firmware हो, app हो या web,
web, app या firmware के debug logs को देखते हुए
उस स्तर तक पहुँच जाना संभव लगता है जहाँ यह debug किया जा सके कि समस्या कैसे पैदा हुई।
मुझे याद है कि इंटरव्यू के दौरान मैंने उस व्यवहार का अनुमान लगाया था।
व्यक्तिगत रूप से, मैं इस बात को भी महत्वपूर्ण मानता हूँ कि "मैं क्या बना रहा हूँ" इस बारे में हमेशा सोचते रहना चाहिए।
अच्छा, इसके लिए
Critical Thinkingजैसा एक बढ़िया शब्द है।इससे मुझे वाकई बहुत मदद मिली। अच्छे लेख के लिए धन्यवाद।
तो फिर आधिकारिक दस्तावेज़ LLM से पढ़वा लेना चाहिए!
RTFM: कृपया आधिकारिक दस्तावेज़ पढ़ें।
कहा तो गया है कि यह चेकलिस्ट नहीं है, लेकिन लगता है मुझे इसे अपनी चेकलिस्ट बना लेना चाहिए।
मैं इससे पूरी तरह सहमत हूँ कि आधिकारिक दस्तावेज़ ज़रूर देखने चाहिए।
जब मैं पहली बार coding सिखाता हूँ, तो यह बात कि कोई व्यक्ति error messages को ध्यान से पढ़ सकता है या नहीं, वहीं से पहली बार यह दिखने लगता है कि उसमें programmer बनने की योग्यता है या नहीं।
.... जो लोग इस बुनियादी समझ को नहीं मानते कि errors और bugs हमेशा मौजूद रहते हैं, वे ठग ही हैं
वाक्य बहुत कठिन हैं..
वेब पर.
सभी नहीं, लेकिन ज़्यादातर बिंदु ऐसे हैं जिनसे सहमति बनती है।
Hacker News राय
अंदाज़ा न लगाना बिज़नेस में सबसे महत्वपूर्ण है
नई चीज़ों के साथ काम करते समय, reference material को गहराई से पढ़ने से पहले थोड़ा अनुमान लगाना अच्छा लगता है
Stack Overflow या LLM पर निर्भर होने के बजाय सीधे source reference देखना बेहतर है
बेहतरीन डेवलपर हर स्तर के लोगों से संवाद करते हैं और उनसे सीखते हैं
Stack Overflow का सही उपयोग बहुत मददगार हो सकता है
बेहतरीन programmer CS background के बिना भी शानदार प्रदर्शन कर सकते हैं
programming के अलावा business domain के साथ communication भी महत्वपूर्ण है
error messages को पढ़ना और समझना समस्या-समाधान में बहुत मदद करता है
asdfका उपयोग करके Python, Go, NodeJS versions मैनेज करते समय, error messages के ज़रिए समस्या हल की जा सकीasdfक्या है? आपको warning देखनी चाहिए।पता नहीं, लेकिन मुझे लगता है कि किसी भी कीमत पर सबसे महान न बनने का रवैया ज़्यादा बेहतर है। लिखने की बात हो... मदद करने की बात हो... ऐसे इंसानों में से...