एक छात्र डेवलपर बनने में रुचि रखता है, और लगता है कि उसके आसपास मैं ही एकमात्र डेवलपर हूं। इसलिए मुझे यह बात उतनी ही खुशी भी देती है और मैं अच्छी-अच्छी बातें बताने लगता हूं, लेकिन दूसरी ओर यह सोचकर बोझ भी महसूस होता है कि कहीं मैं उसके जीवन के करियर का रास्ता तय करने की प्रक्रिया को प्रभावित न कर दूं.
अगर आप होते, तो क्या कहते?
10 टिप्पणियां
मैंने अपने बेटे को देखा तो उसमें गणित की थोड़ी प्रतिभा है और उसे problem solving बहुत पसंद है.
"तुम developer बन सकते हो।"
मैंने उससे यही कहा.
अगर योग्यता दिखे तो करने के लिए कहना चाहिए.
अगर योग्यता नहीं दिखती, फिर भी करना चाहता हो, तो (सिर्फ़ बहुत क़रीबी व्यक्ति होने पर) मैं मना करूँगा.
यह उन बहुत कम पेशों में से एक है जिनमें मैं दुनिया को बदल सकता हूँ और बदली हुई दुनिया को अपनी आँखों से देख भी सकता हूँ,
और जीवनभर की आय के नज़रिए से भी software developer एक संभावनाशील पेशा है।
अंतहीन मज़ा और जिज्ञासा की तृप्ति तो अतिरिक्त बोनस है।
बिल्कुल, यह आसान नहीं है, और न ही हर चीज़ अच्छी ही होती है।
दूसरे पेशों की तरह
यह भी
मुश्किल है।
मैं non-major background से हूँ और मेरे आसपास senior developers लगभग नहीं हैं, जबकि junior दोस्तों में development करना चाहने वाले काफ़ी हैं। ऐसे में मुझे लगता है कि मैं हमेशा उनकी प्रवृत्ति या aptitude के बारे में ज़्यादा बात करता हूँ।
उदाहरण के लिए, जैसे एक surgeon के लिए intelligence या hand skills से अलग, सबसे बुनियादी क्षमता यह होती है कि क्या वह बिना हिचक जीवित शरीर को चीर सकता है और हड्डियों व अंगों को संभाल सकता है,
वैसे ही मुझे लगता है कि developer के लिए सबसे मूलभूत क्षमता यह है कि क्या उसे problems को define करने और solve करने में दिलचस्पी महसूस होती है। इसलिए मैं हमेशा पहले यह पूछता हूँ कि क्या उसने अब तक किसी problem को define करके solve करने का अनुभव किया है। और जो लोग कहते हैं कि उन्हें यह बहुत मज़ेदार लगता है, उनसे मैं कहता हूँ कि developer बनकर देखो haha
मान लीजिए कि मैं अपनी बेटी की स्कूल की parent participation class लेने जा रहा हूँ, तो इस बारे में मैंने एक बात सोची है.
प्रोग्रामिंग language.
यहाँ महत्वपूर्ण बात programming नहीं, बल्कि language है। English लोगों के साथ संवाद करने की भाषा है। Programming language कंप्यूटर के साथ संवाद करने की भाषा है.
अगर गलत grammar के साथ संवाद किया जाए, तो कंप्यूटर भी उसे गलत समझकर गलत तरीके से काम कर सकता है या error पैदा कर सकता है.
जब हम दूसरे लोगों से संवाद करते हैं, तो सिर्फ English या Korean महत्वपूर्ण नहीं होती। महत्वपूर्ण होता है सामने वाले के प्रति रुचि और मन। कंप्यूटर के साथ भी यही बात लागू होती है। हमें इस बात में रुचि रखनी चाहिए कि कंप्यूटर कैसे काम करता है, और उससे ऐसे तरीके से संवाद करना चाहिए जिसे वह समझ सके। अच्छी बात यह है कि कंप्यूटर में थोड़ी-सी setting कर दी जाए, तो वह उस भाषा में भी प्रतिक्रिया देता है जिसमें मैं उससे बात करना चाहता हूँ.
डेवलपर वह लेखक है जो इस भाषा को बनाता है, या इस भाषा को और अधिक समृद्ध बनाता है.
पेशे के तौर पर मुझे लगता है कि यह सबसे promising jobs में से एक है। मांग भी लगातार बनी रहने की संभावना है, और बड़ा सफल होने की संभावना भी काफ़ी है।
लेकिन जैसे किसी भी पेशे में होता है, अगर यह आपकी aptitude के अनुकूल न हो तो यह कष्टदायक हो सकता है। उन सामान्य नौकरियों की तुलना में जहाँ लंबे समय तक काम करने पर शायद आप अनुभव के दम पर टिके रह सकें, यह फिलहाल ऐसा पेशा लगता है जिसमें लगातार नई चीज़ें आती रहेंगी और लगातार पढ़ते-सीखते रहना होगा। (उल्टा देखें तो शायद इसी वजह से इसकी demand है)
पूछने से पहले मत बताइए। अगर पूछें, तो पूरी कोशिश करके समझाइए।
मुझे लगता है यह मेरी parenting से बहुत अलग नहीं है; मैं खुद को इस हद तक नियंत्रित रखता हूँ कि पक्का सहारा/प्रकाशस्तंभ जैसा रोल निभा सकूँ। कहीं ऐसा न हो कि मेरा जरूरत से ज़्यादा उत्साह उन्हें पहले ही डरा दे, या छात्र की अपनी नज़र ही ढक दे।
मेरा मानना है कि फोकस माहौल बनाने पर होना चाहिए। इस तरह ज़मीन तैयार कर देने के बाद यह बच्चा करता है या नहीं करता, वह न तो मेरे नियंत्रण में आने वाली चीज़ है, और न ही ऐसी चीज़ जिसे मुझे नियंत्रण में लेने की कोशिश करनी चाहिए।
मुझे लगता है कि मैं पहले यह पूछूंगा कि वे ऐसा क्यों करना चाहते हैं।
लगता है ऊपर के लोगों ने अच्छी बातें लगभग सब कह दी हैं, इसलिए मैंने अपने निजी अनुभव लिखकर देखे हैं।
मुझे लगता है कि आनंद, पीड़ा का उल्टा नहीं है। और ज़्यादातर मामलों में, पहले पीड़ा आती थी और उसके थोड़ी देर बाद आनंद आता था। 2 साल पहले मैंने अपने सारे side projects इसलिए छोड़ दिए थे क्योंकि वे 'दर्दनाक' लग रहे थे, और उस समय शायद मैं यही सोचता था कि इसका मतलब है कि वे मज़ेदार नहीं हैं। अब मुझे लगता है कि development मज़ेदार है और ऐसी चीज़ है जिसमें कमाल की चीज़ें बनाई जा सकती हैं, लेकिन आनंद के अनुपात में पीड़ा भी बढ़ती है।
मुझे लगता है कि कोई भी चीज़ एक ही सुबह में नहीं बनती। कुछ ऐसा बनाने में जिसे ठीक-ठाक कहा जा सके, बहुत समय लगता है। जब मैं छोटा था, तब मुझे सच में यह जानने की बहुत जिज्ञासा होती थी कि दूसरे लोग इतनी जल्दी अच्छी चीज़ें कैसे बना लेते हैं, क्या उनके पास कोई cheat key है। लेकिन बाद में मुझे समझ आया कि मैं तो बस दूसरों के सफल होने के पल ही देख रहा था। यह सोचकर कि वे लोग भी सतह के नीचे अनगिनत दिनों तक अकेले संघर्ष करते रहे होंगे, शायद मैं फिर आसानी से हार नहीं मानता था।
कुछ सीखते समय: मुझे लगता है कि पहले फर्श बुहारना चाहिए, stamina बनानी चाहिए, skills को तराशना चाहिए, और उसके बाद ही कूदना चाहिए। बेशक, सचमुच फर्श बुहारने की बात नहीं है(.. ) बल्कि जब आप पहली बार कुछ सीखते हैं, तो simple और आसान चीज़ों से शुरू करके धीरे-धीरे अभ्यास करना चाहिए। फिर जब लगे कि थोड़ा आने लगा है, तो अगला चरण, फिर उसके बाद अगला चरण... मुझे लगता है कि ऐसे ही सीखना चाहिए। मैं यह बात कई सालों तक नहीं समझ पाया, इसलिए कई किताबों में मैंने शुरुआती पन्ने बस यूँ ही पलट दिए, और बाद के हिस्सों में क्या कहा जा रहा है यह समझ ही नहीं पाया (क्योंकि बुनियादी stamina कम थी), और ऐसी छोड़ी हुई किताबें एक-दो नहीं थीं।
ऊपर की इन 3 बातों के बारे में सोचने के बाद, मुझे लगा कि दूसरों के समय का जो हिस्सा मैं देखता हूँ, वह बहुत-बहुत छोटा है। इसलिए जो चीज़ें एक पल में हो गई लगती हैं, वे दरअसल उस व्यक्ति ने तब हासिल की होती हैं जब मैं उसे देख नहीं रहा होता और वह मेहनत कर रहा होता है। इसलिए शायद दूसरों की सफलता या तेज़ सीखने को देखकर ईर्ष्या से पहले प्रेरित होने का भाव आने लगा।
मेरा मानना है कि development करना आना इंसान को ज़िंदगी थोड़ा और efficient/productive तरीके से जीने में मदद करता है.
साधारण DB व्यवस्थित करने से लेकर, macro बनाना, Excel sheet में formula डालना, या अपने काम का कोई tool खुद बना लेना..
ज़रूरी नहीं कि आप developer ही बनें, लेकिन अगर development और IT के बारे में सीखकर रखें, तो आप किसी भी field में जाएँ, दूसरों की तुलना में ज़्यादा efficiently काम कर पाएँगे. इसलिए मुझे लगता है कि यह कम-से-कम एक बार सीखने लायक essential skill set है.
अब IT दुनिया की लगभग हर चीज़ का बुनियादी infrastructure बन चुका है, इसलिए आप किसी भी क्षेत्र में जाएँ, उसकी नींव में technology बिखरी हुई मिलेगी. और आप उसे कितना समझते हैं, उसी के अनुसार आपकी उपलब्धि भी अलग होगी.
शुरुआत शायद coding से होगी, लेकिन computer, web जैसी IT की बुनियादी बातों को सिर्फ़ पढ़ाई नहीं, बल्कि दुनिया कैसे चलती है उसके नियम सीखने वाली मानसिकता के साथ अपनाना अच्छा होगा.
और उसके बाद, दुनिया की हर चीज़ को देखते समय यह सोचने की आदत डालें कि इसकी गहराई में कौन-सी technology इस्तेमाल हो रही होगी, यह कैसे काम कर रही होगी, और इसे बनाने वाले ने इसे कैसे बनाया होगा.
निष्कर्ष में, "ज़रूरी नहीं कि developer बनना ही लक्ष्य हो. Development सीखकर रखना हर जगह काम आता है. और थोड़ा और पढ़-समझ लेने के बाद career तय करें, तब भी देर नहीं होती."
मैं पहले तो यह कहना चाहूँगा/चाहूँगी, लेकिन अगर आप कमेंट करेंगे तो आपकी बातें भी साथ में पहुँचाना चाहूँगा/चाहूँगी~
मुझे लगता है कि डेवलपर होने की सबसे अच्छी बात यह है कि आप अकेले नहीं होते। बुनियाद महत्वपूर्ण रहती है, लेकिन हम ऐसे समय में जी रहे हैं जहाँ नई technologies आती रहती हैं, उनके use cases जमा होते रहते हैं, और उनसे भी ज़्यादा विकसित चीज़ें लगातार सामने आती रहती हैं। शायद इसी वजह से एक-दूसरे की मदद करने और knowledge share करने की संस्कृति डेवलपर culture का हिस्सा बन गई है। मुझे लगता है यही चीज़ हमें लगातार सीखते रहने, जड़ न होने, और एक-दूसरे को grow करने में मदद करती है। चाहे आप बिल्कुल नए हों या बहुत वर्षों का अनुभव रखने वाले डेवलपर, अगर आप सीखना चाहते हैं तो उसके लिए संस्कृति भी है और माहौल भी।
लगातार सीखते रहना चाहना और सीखना, कुछ लोगों के लिए बोझ भी हो सकता है। मुझे भी कभी-कभी यह भारी लगता है. haha सीखने के लिए जितनी चीज़ें फैली हुई हैं, उतना ही कोई और उससे ज़्यादा आनंद लेकर और ज़्यादा मेहनत करके आपसे तेज़ आगे बढ़ सकता है। लेकिन अगर कभी-कभी यह कठिन लगे, फिर भी आप जिज्ञासा बनाए रखते हुए अपनी गति से लगातार चलते रहने का आनंद महसूस करते हैं, तो शायद यह रास्ता आपके लिए सही है।
0 को 1 में बदलने वाली उपलब्धि का एहसास होता है। और जब 0, 1 नहीं बनता तो उससे stress भी होता है। ज़्यादातर मामलों में इसके साथ deadline का दबाव भी जुड़ा होता है।
आप जो सोचते हैं, उसे बना सकते हैं। जो आप बनाते हैं, उसे दुनिया के लोग इस्तेमाल कर सकते हैं। हाँ, यह भी हो सकता है कि कोई इस्तेमाल ही न करे...
डेवलपर के रूप में जीना सिर्फ एक ऐसे Sandbox में रहना नहीं है जहाँ बस development ही होता हो। आप जिस कंपनी, टीम या संगठन से जुड़े हैं, वहाँ की culture, साथ काम करने वाले लोग, project की प्रकृति, timeline, compensation वगैरह—इन सबका बहुत असर होगा। लेकिन मुझे लगता है यह बात किसी भी काम पर लागू होती है। अगर आप development भी अच्छा करते हैं और soft skills भी बढ़ाते हैं, तो बहुत से लोग आपके साथ काम करना चाहेंगे।