कम्युनिटी पर वापस जाएँ

अत्यधिक सक्रिय मेंटर और सिस्टम ऑटोमेटर

क्या आपको नकारात्मक अर्थ में हरफनमौला कहा जाता है? शायद यह वास्तव में अच्छी बात है, खासकर तब जब आप अलग-अलग पृष्ठभूमि, प्रोग्रामिंग अनुभव और संस्कृतियों वाले लोगों को मेंटर करते हैं! Isaac खुद को टेकी और हरफनमौला कहते हैं... और भी बहुत कुछ!

Youtube पर देखें
अवधि 37मिनट

Jonathan: नमस्ते सबको, और Exercism कम्युनिटी पॉडकास्ट में आपका स्वागत है। मुझे यह सौभाग्य मिला है कि मेरे साथ Isaac जुड़े हैं, जो हमारे मेंटेनर और कंट्रिब्यूटर में से एक हैं और हाल ही में उन्होंने हमारे GoHort, यानी हमारे लर्निंग कोहोर्ट में बहुत सारे विद्यार्थियों की मेंटरिंग की है। ये कोहोर्ट हमने 30 दिनों तक चलाए, मुझे लगता है अब तक दो बार, खास तौर पर Go और Elixir में। और Isaac ने Go ट्रैक में मदद की, जो कमाल का था। तो Isaac, आपका बहुत-बहुत स्वागत है। क्या आप मुझे थोड़ा बताइएगा कि आप कहाँ रहते हैं, आप कहाँ से हैं, और टेक में कैसे आए?

Isaac: जी हाँ, मैं कैलिफ़ोर्निया में रहता हूँ। मैं कैलिफ़ोर्निया के सैन होज़े में रहता हूँ। सच कहूँ तो मैं टेक में इसलिए आया क्योंकि मेरे बड़े भाई की दिलचस्पी टेक में थी, और जो वह करता, वही मैं भी करता। हम कई भाई-बहन थे। हमें एक-दूसरे के साथ समय बिताना पसंद था, या यूँ कहें कि कुछ भाई-बहनों के साथ हमें दूसरों से ज़्यादा समय बिताना पसंद था। मेरा एक बड़ा भाई था जिसके साथ मुझे बहुत समय बिताना पसंद था। ज़रूरी नहीं कि उसे मेरे साथ उतना समय बिताना उतना अच्छा लगता हो, लेकिन मैं हर समय उसके पीछे-पीछे चलता रहता और जो वह करता, वही करना चाहता। जब वह लगभग 15 साल का था, तब उसने घर में पड़ी हुई C for Dummies नाम की किताब उठाई, और अगर मुझे ठीक से याद है तो मैं 9 साल का था। तो वह C लिख रहा था, और मैं सोचता था कि अगर वह यह कर रहा है तो मैं भी यही करूँगा। उस उम्र में मेरे प्रोग्राम काफी सरल और बुनियादी हुआ करते थे। वे ज़्यादातर ऐसे थे कि अपना नाम बताइए, हैलो बॉब जैसे अभ्यास। वे बहुत जटिल नहीं थे। कहीं से तो शुरुआत करनी ही होती है। वहीं से शुरुआत करनी थी। मुझे लगा, वाह, आप एक ऐसा अक्षर प्रिंट कर सकते हैं जिससे आवाज़ आती है। यह तो कमाल है। मैंने एक प्रोग्राम लिखा जो सचमुच सिर्फ slash A प्रिंट करता था। लेकिन मैंने 9 साल की उम्र में शुरुआत की थी। मैं C प्रोग्राम लिख रहा था। हमारे पास एक पुराना Windows 3.1 कंप्यूटर था जो DOS में बूट होता था, और मेरे भाई ने एक बैच स्क्रिप्ट बनाई थी जिससे कंप्यूटर शुरू होते ही एक मेन्यू दिखता था जिसमें आप चुन सकते थे कि Windows खोलना है या गेम चलाने हैं, एक गेम मेन्यू जैसा। आप 5 जैसा कोई नंबर टाइप करके Warcraft जैसा कुछ खोल सकते थे। तो जैसे-जैसे हम दूसरे गेम इंस्टॉल करते गए, मैं बैच स्क्रिप्ट लिखता गया और ऐसा ही सब चलता रहा। उसके बाद तो सब आसान होता गया। मेरे भाई ने कंप्यूटर इंजीनियरिंग की पढ़ाई के लिए यूनिवर्सिटी में दाखिला लिया, और फिर से मैं सोचने लगा कि अगर वह यह कर रहा है तो मैं भी यही करूँगा। तो मैंने 9 साल की उम्र में C लिखना शुरू किया। हाई स्कूल में मैं Visual Basic 6 लिखता था। मेरे पास एक POM Pilot था, और हाई स्कूल में मैं उस पर तरह-तरह के प्रोग्राम लिखता था। मेरे गणित के शिक्षक बहुत अच्छे थे। मैं उन पुराने ज़माने के...

Jonathan: क्या वह उस तरह की चीज़ थी, याद है उन्होंने iPad से पहले की कोई चीज़ निकालने की कोशिश की थी और कुछ ही लोगों के हाथ लगी थी, उसमें छोटी पेन से लिखने वाली चीज़ थी। और सबको वह बहुत कमाल की लगती थी क्योंकि वह निकल तो आई थी, और फिर ज़ूम जैसा कुछ होता था, और आप उस पर टैप करते रह सकते थे। वह थोड़ी, वह नहीं हुई, मुझे यह हमेशा याद रहता है क्योंकि उसके बाद iPad आने लगा और सब कहने लगे, अरे, थोड़ा जल्दी हो गया। Pilot थोड़ा-सा समय से आगे निकल गया था, समझ रहे हैं न?

Isaac: वह लगभग एक दशक तक बहुत अच्छी रही, लेकिन हाँ, उसमें palm graffiti होता था जिससे आप इनपुट देते थे। एक छोटा इनपुट पैड होता था, और आपको अक्षर जैसे लिखने होते थे, लेकिन वे अक्षर वर्णमाला पर आधारित जैसे थे। जैसे A सिर्फ एक त्रिभुज जैसा था और F एक समकोण जैसा। हाँ, मेरे हाई स्कूल के गणित के शिक्षक ने कहा था कि अगर तुमने प्रोग्राम लिखा है, तो परीक्षा में उसका इस्तेमाल करना ठीक है। तो हाई स्कूल में मैं POM Pilot प्रोग्राम लिखता था, जो सचमुच कमाल था। मैंने यूनिवर्सिटी में कंप्यूटर इंजीनियरिंग की पढ़ाई की। लोग स्क्रिप्टिंग भाषाओं की बात कर रहे थे। मुझे ठीक से पता नहीं था कि वे क्या हैं, तो मैंने यूँ ही Perl उठा लिया। और फिर जब मैं ग्रेड स्कूल से निकला, तो Google ने मुझे नौकरी पर रख लिया। 2013 में उन्होंने मुझे पूर्वी तट से कैलिफ़ोर्निया शिफ्ट कर दिया। और वहीं मैंने लगभग एक दशक पहले Python सीखा। और पिछले एक दशक से Python मेरी मुख्य भाषा रही है। मैं Google में था, तो मेरी स्टाइल पर Google की स्टाइल का बहुत असर है। और इसीलिए मैंने मुख्य रूप से Python ही लिखा है। और फिर लगभग... चार साल पहले, मुझे लगता है 2018 के आसपास, Google ने अंदर ही अंदर Go भाषा को बढ़ावा देना शुरू किया और तभी मैंने Go सीख लिया।

Jonathan: बढ़िया। और Isaac, जब आप Google स्टाइल की बात करते हैं, तो क्या यह तय था कि यही करने का सही तरीका है, या यह कुछ और तरह की चीज़ है? इस पर थोड़ा और बताइए, क्योंकि यह दिलचस्प है।

Isaac: कोडिंग स्टाइल ज़रूरी नहीं कि करने का सही तरीका हो, वह ज़्यादा एक ऐसा एक-सा तरीका है जो सबको अपनाना होता है। कहते हैं कि अच्छा समझौता वही होता है जिसमें कोई खुश न हो। स्टाइल गाइड से कोई पूरी तरह खुश नहीं होता, लेकिन जब तक सब उसका पालन करते हैं, कोड एक-सा दिखता है। इसका मतलब है कि Google के कोडबेस में कोई भी किसी भी कोड को उठाकर उसमें बदलाव कर सकता है, और जब तक सब एक ही स्टाइल गाइडलाइन का पालन करते हैं, कोड एक-सा दिखता है। आपको यह सोचने की ज़रूरत नहीं पड़ती कि अरे, इस कोडबेस में चार स्पेस का इंडेंट है और उसमें दो स्पेस का, या यहाँ नाम रखने का तरीका यह है और वहाँ वह। पूरे कोडबेस में सब कुछ एक ही तरह से किया जाता है। इसमें से किसी भी चीज़ से सब खुश नहीं हैं। हर किसी की अपनी पसंद होती है कि कौन-सी चीज़ किस तरह होनी चाहिए, लेकिन चूँकि एक लिखित स्टाइल गाइड मौजूद है, जो सबके लिए उपलब्ध है, आप बस Google Python स्टाइल गाइड सर्च कर सकते हैं और वह आपको बताता है कि Google में हम कोड कैसे लिखते हैं। जब तक सब उस गाइड पर टिके रहते हैं, सारा कोड एक-सा दिखता है, और यह बहुत अच्छी बात है कि आप कोई भी कोडबेस खोलें और कोई चौंकाने वाली बात न मिले कि अरे, वे इसे अलग तरह से लिखते होंगे।

Jonathan: क्या इसीलिए Go उस संदर्भ में इतना अच्छा बैठ जाता है? क्योंकि वह फॉर्मेटेड है और सचमुच ऐसा ही है। उसमें Google का असर साफ़ दिखता है।

Isaac: हाँ, मुझे नहीं पता कि Rob Pike पर Google के तरीके का कितना असर पड़ा या उनका असर Google के तरीके पर कितना पड़ा। मुझे नहीं पता कि कौन पहले आया, लेकिन Go ने इसे निश्चित रूप से एक और स्तर पर पहुँचा दिया... और भी बहुत कुछ है, जैसे Python में अलग-अलग स्टाइल होते हैं और लोग अपने लिंटर बदल-बदल कर अलग-अलग चीज़ें मंज़ूर करवाते हैं। जैसे, अंदर Google में Python के लिए दो स्पेस का इंडेंट इस्तेमाल होता है क्योंकि बहुत सारा कोड गहराई तक नेस्टेड होता है और वे स्पेस की बहुत बड़ी दीवार नहीं चाहते। बाहर ज़्यादातर लोग चार स्पेस इस्तेमाल करते हैं, और यह Python के डॉक्युमेंटेशन में भी लिखा है। लेकिन हाँ, Go की बात आती है तो उन्होंने इसे एक और स्तर पर पहुँचा दिया और कहा कि भाषा में ही फॉर्मेटिंग मौजूद है। फॉर्मेट करने का सिर्फ एक ही तरीका है। यह बहस नहीं होती कि सही तरीका कौन-सा है। सिर्फ एक ही तरीका है।

Jonathan: इससे बहुत सारी ऊपर-नीचे की बहस बच जाती है। बस इतना कह दूँ तो ठीक रहेगा। हाँ। तो यह अच्छी बात है।

Isaac: हाँ।

Jonathan: अच्छा, तो जब आपने Google में शुरुआत की, तब तक आपने Python कभी नहीं किया था, या थोड़ा-बहुत किया था, या वह आसान छलांग थी? कैसे, क्योंकि आपने ऐसा बताया जैसे Google में नौकरी मिली और फिर, ठीक है, Python सीख लो, चलो शुरू करें।

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

Jonathan: हाँ, हाँ। यह दिलचस्प है। तो अब, आपने अपनी पहली नौकरी पर थोड़ा हँसते हुए बात की, हाई स्कूल के बाद वाली। तो क्या आपको हमेशा से पता था कि मैं इंजीनियरिंग में जाऊँगा, कंप्यूटर वाला काम करूँगा? क्या यह हमेशा एक सोची-समझी बात थी, या यह बस वह जगह थी जहाँ आप स्वाभाविक रूप से फिट बैठते थे और आपको यह पसंद था, बस इतना ही? यह कैसे...

Isaac: शायद। मैं बहुत ज़्यादा अपने भाई के नक्शे-कदम पर चलने की कोशिश कर रहा था। वह कंप्यूटर इंजीनियरिंग में गया। उसने प्रोग्रामिंग लिखना शुरू किया। जब मैं छोटा था तब उसने प्रोग्रामिंग शुरू की। मैं उसके साथ-साथ चलता रहा। मैं बचपन से ही प्रोग्रामिंग लिखता आ रहा था। वह कंप्यूटर इंजीनियरिंग में गया और बस, मैं भी वही करना चाहता था जो वह कर रहा था, और साथ ही प्रोग्रामिंग लिखने में मुझे बहुत मज़ा आ रहा था। तो हाई स्कूल में दाखिल होते समय से ही, जब मेरा भाई यूनिवर्सिटी जा रहा था, मुझे पता था कि मुझे भी वहीं पहुँचना है।

Jonathan: तो वह आपसे कुछ साल बड़े हैं, तो लगता है कि आप पर एक इंसान के तौर पर उनका बहुत बड़ा असर पड़ा। आपके और कितने भाई-बहन हैं? या आपकी नज़र में वही सबसे बढ़िया थे?

Isaac: मेरे आठ भाई-बहन हैं, लेकिन उनके साथ मेरी सचमुच बहुत अच्छी निभती थी। वह उनमें से एक हैं, मुझे लगता है कि कुछ के साथ मेरी निभती बेहतर है, कुछ के साथ उतनी नहीं। जब आठ हों तो हमेशा कुछ अंतर होता ही है। उनके साथ मेरी काफी अच्छी निभती थी। हम काफी हद तक एक जैसा सोचते हैं। हमारी रुचियाँ भी मिलती-जुलती हैं। हम हर समय कंप्यूटर पर गीकी बातें करते रहते थे। आज भी करते हैं। उनकी पत्नी को अच्छा नहीं लगता जब खाने की मेज़ पर यही बातचीत होने लगती है। वे कहती हैं, खाने की मेज़ पर काम नहीं। हम बस हर समय प्रोग्रामिंग की गीकी बातें और उसी की चर्चा करते रहते हैं। यह कहना मुश्किल है कि इसमें कितना सिर्फ मेरी उनकी नकल करने की चाह थी और कितना हमारी रुचियाँ मिलती होना। अब तो हमारी रुचियाँ निश्चित रूप से मिलती हैं। मुझे नहीं पता कि इसमें कितना जन्मजात है और कितना पालने-पोसने का। मैं ठीक से नहीं कह सकता कि इसमें कितना उसकी नकल करना है और कितना हमारी रुचियों का मिलना। लेकिन चूँकि मैं बचपन से ही उसके नक्शे-कदम पर चल रहा था, तो किसी हद तक वही रास्ता बना रहा था और मैं उस पर चल रहा था।

Jonathan: हाँ, यह काफी अच्छा है। और वह, अब वह कहाँ हैं? बस जानने की उत्सुकता से, क्या वह पूर्वी तट पर हैं?

Isaac: वे अब भी पूर्वी तट पर हैं और टेक में काम करते हैं। हमने थोड़े समय के लिए एक ही कंपनी में काम किया है।

Jonathan: हाँ, ठीक है, बढ़िया। तो यह बात भी है। अच्छा लगा। मैं बस पूछना चाहता था। अब, एक बात यह है कि आप हमारे अभी-अभी पूरे हुए कोहोर्ट में बहुत शामिल रहे हैं। तो सबसे नए लर्निंग कोहोर्ट में, खास तौर पर Go के साथ, हम Go पर 30 दिन का कार्यक्रम चला रहे थे। और इससे पहले Exercism में आपकी भागीदारी खास तौर पर मेंटेनिंग की रही है, लेकिन जहाँ तक मैं समझता हूँ, काफी मेंटरिंग भी की है। तो यह बँटवारा आपको कैसा लगा? मेरा मतलब है, आप Exercism तक कैसे पहुँचे और आपको योगदान देने के कौन-कौन से अलग-अलग पहलू पसंद हैं?

Isaac: मैं सबसे पहले Exercism तक इसलिए पहुँचा क्योंकि मैं Haskell दोबारा सीखने की कोशिश कर रहा था। मैंने Google में Haskell 101 नाम की क्लास ली थी, जो काफी मज़ेदार थी। और फिर मैंने सोचा, ओह, मुझे इसमें और समय देना चाहिए। लेकिन वह पीछे छूट गया। और फिर मैंने उस पर वापस लौटने की कोशिश की।

Jonathan: और अगली बार मिलते हैं।

Isaac: किसी भी भाषा को सीखने का सबसे आसान तरीका, मेरे ख्याल से, उसे सचमुच लिखना है। और लिखने का सबसे आसान तरीका है उसे लिखने का कोई उद्देश्य होना। Haskell लिखने का कोई बड़ा उद्देश्य मुझे नहीं मिला, जिससे उसे सीखना बहुत मुश्किल हो गया। लेकिन फिर मुझे Exercism मिला और मैंने सोचा, ओह, यह शायद मुझे ज़्यादा Haskell लिखने में मदद करेगा। तो मैं सबसे पहले Exercism तक इसी तरह पहुँचा। जब मैं वहाँ पहुँचा तो सोचा, ओह, यहाँ Python ट्रैक है, Shell ट्रैक है और ऐसे अभ्यास भी हैं, तो मैं भी... बिल में उतर गया?

Jonathan: और आप खरगोश के बिल में उतर गए।

Isaac: हाँ। मैंने Python में अभ्यास हल करना शुरू किया। मैंने Bash में अभ्यास हल करना शुरू किया। मैंने Go के कुछ अभ्यास भी किए। जब Go Hort शुरू हुआ और मैं अपने पुराने हल देख रहा था, तो मुझे दिखा कि उनमें से बहुत सारे तीन साल पहले सबमिट किए गए थे। तो असल में, मैंने पहली बार 2019 में Go ट्रैक के लिए साइन अप किया था और तब उन अभ्यासों का एक बड़ा हिस्सा हल किया था। और अब तक मैं दस साल से Python कर रहा था। तो Python मेंटर के तौर पर जुड़ना मुझे काफी आसान लगा, और आजकल मैं अपना ज़्यादातर समय वहीं अभ्यासों पर देता हूँ। और फिर मैंने Python ट्रैक में PR, यानी पुल रिक्वेस्ट भेजना शुरू किया, क्योंकि कुछ चीज़ें ठीक जगह पर नहीं थीं। और फिर मैं Bash ट्रैक में शामिल होने लगा। और मुझे ठीक से पता नहीं कि यह कैसे हुआ, लेकिन मैं Bash ट्रैक में सुधार भेजने से सीधे Bash मेंटेनर बन गया।

Jonathan: बस ऐसे ही। मेरा मतलब है, जिसके लिए साइन अप करते हो, सोच-समझकर करो, है ना?

Isaac: हाँ, और फिर Glenn ने Ock ट्रैक बनाया और मैंने सोचा, ओह, मुझे Ock आता है, मुझे Ock पसंद है, चलो इसमें भी कूद पड़ूँ। तो मैंने Ock ट्रैक के अभ्यास बनाने में मदद की। मुझे पूरा यकीन नहीं, लेकिन मुझे लगता है कि तीन साल पहले जब मैंने Go के अभ्यास देखे, तो मैंने पूरा ट्रैक पूरा कर लिया और तब एक मेंटर ने कहा, ओह, आपने सारे अभ्यास पूरे कर लिए, तो शायद आपको मेंटर बन जाना चाहिए। मैं उतना काबिल नहीं हूँ, मैं Go इतनी बार, इतने नियमित रूप से नहीं लिखता कि उसकी मेंटरिंग में सहज महसूस करूँ। तो मैं सचमुच Go मेंटर नहीं था। लेकिन फिर जब मैं Go Hort में शामिल हुआ और वहाँ बहुत से लोगों को मेंटरिंग चाहिए थी, तो मैंने सोचा, ठीक है, मैं महीने भर के लिए मेंटरिंग के लिए साइन अप कर सकता हूँ और वहाँ मदद कर सकता हूँ। लेकिन हाल ही में मैं खुद Go Hort में विद्यार्थी के तौर पर शामिल हुआ हूँ। और फिर मैं विद्यार्थी वाले हिस्से से सरक कर आगे बढ़ जाऊँगा, शायद।

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

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

Jonathan: ठीक है, यह बढ़िया है। यह दिलचस्प है। तो अब, इस समय, काम में आपका रोज़ का दिन कैसा होता है, और उसमें डेवलपमेंट कहाँ फिट होता है? मान लीजिए आप काफी समय से टेक में हैं, तो दिन कैसा दिखता है? चुनौतियाँ क्या हैं? इस समय काम में आपको कौन-से हिस्से अच्छे लगते हैं?

Isaac: मैं साइट रिलायबिलिटी इंजीनियरिंग की भूमिका में हूँ, जो मोटे तौर पर DevOps जैसा है। इसमें थोड़ा सिसएडमिन वाला काम भी है। पिछले लगभग दस साल से मैं ऑन-कॉल रोटेशन में पेजर साथ रखता आ रहा हूँ। तो मेरा रोज़ का काम काफी हद तक इस पर निर्भर है कि यह मेरे ऑन-कॉल का हफ्ता है या नहीं। जब मैं ऑन-कॉल पर होता हूँ, तो ज़्यादातर पेजर पर नज़र रखना, टिकट कतार और सपोर्ट कतार देखना, और यह पक्का करना होता है कि जो भी प्रोसेस फेल हो रही है या जो भी समस्या है, उसकी जाँच हो और उसे ठीक किया जाए। तो यह लगभग छह में से एक हफ्ता होता है, या जितनी बड़ी इस समय टीम है उसके हिसाब से। और बाकी समय मैं ऑन-कॉल पर रहता हूँ।

Jonathan: हम्म।

Isaac: मैं बहुत समय ऑटोमेशन में उलझने में बिताता हूँ, यानी ऐसी प्रक्रियाएँ ढूँढ़ना जो बोझिल हैं और उन्हें कम बोझिल बनाना। ऐसा हो सकता है... शायद उसके होने की कोई वजह हो, लेकिन आमतौर पर मैं देखता हूँ कि जब कोई समस्या होती है, तो हमें ये कमांड और वो कमांड चलाकर हाथ से ठीक करना पड़ता है, और फिर सवाल उठता है कि हम ये कमांड हाथ से क्यों चला रहे हैं? क्या हम एक Python स्क्रिप्ट लिख सकते हैं जो यह सब आपके लिए कर दे? या हम टूलिंग को बेहतर बना सकते हैं ताकि वह फेल न हो और उस समस्या को खुद पकड़ ले? और बहुत कुछ इस कोशिश में जाता है कि हम सिस्टम कैसे चलाते हैं, उस रोज़मर्रा को बेहतर बनाया जाए, ताकि इंसानों की भागीदारी कम हो या सब कुछ सहज चलाने के लिए उन्हें उतनी गहराई तक शामिल न होना पड़े।

Jonathan: तो क्या आपको अपने दिन में ऐसी छोटी जगहें ढूँढ़ना अच्छा लगता है जहाँ चीज़ें बेहतर की जा सकती हैं? आपके काम का कितना हिस्सा चीज़ों पर प्रतिक्रिया देने का है और फिर उस प्रतिक्रिया से यह सोचने का कि ओह, यह तो एक अवसर है, और कितना पहले से ही ऐसी छोटी जगहें ढूँढ़ने का? आमतौर पर संतुलन कैसा रहता है?

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

Jonathan: यूँ कह सकते हैं, मैन्युफैक्चरिंग

Isaac: रिफैक्टरिंग, यानी यह देखना कि कुछ टूल इस्तेमाल करने में बोझिल हैं और उन्हें दोबारा लिखने या उनके ऊपर रैपर लिखने का फैसला करना। मैं देखता हूँ कि किसी बड़े, जटिल प्रोग्राम में कोड बदलाव हुए हैं और सोचता हूँ, अरे, वह प्रोग्राम तो बिखरा हुआ है। क्या मैं जाकर उसे दोबारा लिख सकता हूँ या रिफैक्टर कर सकता हूँ? या नया बनाना, यानी यह हमेशा रिफैक्टरिंग नहीं होती, कभी-कभी बस नए टूल बनाना भी होता है। जैसे कि अरे, हमारी एक प्रक्रिया में 20 चरण लगते हैं, चलो इसे पूरा का पूरा एक प्रोग्राम में डाल दूँ। इसमें बहुत कुछ ऐसा होता है कि मुझे ये चीज़ें किसी तरह खोजनी पड़ती हैं। कभी मुझे ये इसलिए मिलती हैं क्योंकि मुझे कुछ काम सौंपे जाते हैं और फिर मैं सोचता हूँ कि ये मैं हाथ से नहीं चलाना चाहता। कभी मैं इन्हें बस देखकर ही खोज लेता हूँ, जैसे मैं कहीं कोड का कोई हिस्सा देख रहा होता हूँ और सोचता हूँ कि अरे, यह दूसरा कोड, जिसे कोई दूसरी टीम संभालती है, चीज़ें ढंग से नहीं कर रहा, चलो इसे रिफैक्टर कर दूँ, या आधुनिक लाइब्रेरी इस्तेमाल करूँ, वगैरह।

Jonathan: तो बहुत कुछ... बस देख पाना। तो आपके पास कितनी छूट है? क्या आपके पास इतनी छूट है कि आप इधर-उधर जाकर झपट्टा मारकर यहाँ-वहाँ सुधार कर सकें? मेरा मतलब है, यह काफी मज़ेदार और आनंददायक होगा।

Isaac: मेरे मैनेजर मुझे बहुत छूट देते हैं, जो सचमुच अच्छी बात है। मुझे नहीं पता कि इसमें कितना... मैं इस समय Google में नहीं हूँ, लेकिन मुझे नहीं पता कि इसमें कितना मेरे Google के अनुभव से आया। Google में लोग ऐसे झपट्टा मारकर आने को बहुत तैयार रहते थे, जैसे अरे, मैंने देखा कि..., मैं संयोग से यह लाइब्रेरी इस्तेमाल करता हूँ और इसे इस तरह बेहतर किया जा सकता है। चलो, मैं इसे ठीक कर देता हूँ। मैंने बहुत, बहुत कम समय के लिए एक स्टार्टअप में काम किया, जहाँ की संस्कृति बहुत अलग थी, बहुत कम खुली थी। और उस स्टार्टअप में लोग अपने कोडबेस को लेकर बहुत रक्षात्मक थे और दूसरों का उनमें बदलाव करना उतना स्वीकार्य नहीं था। तो मैं सोचता कि अरे, इस कोडबेस में कोई दिक्कत है, इसे बदल ही दूँ, लेकिन उस कोडबेस में यह चलता नहीं था।

Jonathan: हाँ, हट जाओ। लेकिन यह दिलचस्प है क्योंकि... आप मान लेते हैं कि स्टार्टअप में तो और ज़्यादा यही चलेगा कि बस काम पूरा करो और जितना सस्ते में हो उतना सस्ते में करो, लेकिन असल में शायद Google इस विचार को कहीं बेहतर तरीके से संभाल पाता था। और वह, माफ़ कीजिए, मैंने बस लाइट जला ली क्योंकि हम, इस समय कोई लाइट नहीं है, सुनने वाले सब जानें, केप टाउन में कभी-कभी बिजली नहीं होती। अभी मैं अपनी ही आँखों में रोशनी मार रहा हूँ, लेकिन ठीक है। लेकिन स्टार्टअप संस्कृति वाली उस बात पर लौटते हुए यह दिलचस्प है कि लोग किस तरह विडंबना के साथ चीज़ों का मालिकाना रखने में ज़्यादा उलझे रहते हैं और फिर शायद चीज़ों को थोड़ा बाधित कर देते हैं, है ना?

Isaac: हाँ, मुझे नहीं लगता कि स्टार्टअप होना ज़रूरी तौर पर खुले...खेल-भरे काम की संस्कृति से जुड़ा होता है। Google में लोग बहुत कुछ खेल की तरह करते थे, जहाँ उन्हें जो करना था वह पसंद था। वे यह इसलिए करते थे क्योंकि उन्हें इसमें मज़ा आता था। इस बारे में वे बहुत दोस्ताना या बहुत खुले थे। कुछ और कार्यस्थल संस्कृतियों में चीज़ें ज़रूरी तौर पर इसलिए नहीं की जातीं कि आपको उनमें मज़ा आता है, बल्कि इसलिए कि यह एक नौकरी है, या यह मेरा कोड है और मुझे पता है यह कैसे चलता है। मैं नहीं चाहता कि और लोग इसमें हाथ डालें। मुझे ठीक से पता नहीं कि कार्यस्थल की संस्कृति में ये बदलाव कैसे आते हैं। लेकिन Google ने सचमुच यह भावना पैदा की कि सबकी सारे कोड तक पहुँच है। आप सबको उसमें बदलाव करने का अधिकार है। जाइए और जो आपको सही लगे, वह कीजिए। और अब मेरी वर्तमान नौकरी में मेरे वर्तमान मैनेजर ने भी मुझे बहुत छूट दी है। वे कहते हैं, बिल्कुल, तुमने ठीक करने के लिए कुछ ढूँढ़ा है, तो जाओ और ठीक कर दो। तुमने कोई ऐसी जगह ढूँढ़ी है जहाँ चीज़ें बेहतर हो सकती हैं, तो मैं तुम्हारे रास्ते से हट जाता हूँ। बताओ मैं क्या मदद कर सकता हूँ। तो मैं अपने ज़्यादातर काम खुद तय कर पाता हूँ, और अगर मुझे कोई ऐसी जगह मिले जहाँ मुझे लगे कि अरे, मैं इसे बेहतर कर सकता हूँ, तो वे कहते हैं, हाँ, बढ़िया, करो।

Jonathan: ठीक है, बढ़िया। और आप, कंपनी पूर्वी तट पर है, क्या मैं यह ठीक कह रहा हूँ कि आप दूर से, रिमोट से काम करते हैं? मुझे याद है आपने कहा था कि आप वहाँ शिफ्ट होने वाले थे, और फिर कोविड आ गया और वह पूरा मामला खत्म हो गया। रिमोट, दूरी, समय का अंतर, यह सब आपको कैसा लगता है? क्या इसका आप पर असर पड़ता है या...

Isaac: मुझे ऑफिस में रहना और लोगों से आमने-सामने बातचीत करना सचमुच याद आता है। तो यह बात है। और समय के अंतर की बात करें तो मेरी टीम बहुत सहयोगी रही है। मैं अपनी पूरी टीम से तीन घंटे पीछे हूँ। एक छोटी रोज़ की स्टैंडअप मीटिंग है जो मुझसे छूट जाती है। हमारे दो अलग-अलग प्रोडक्ट के लिए दो रोज़ की स्टैंडअप होती हैं। तो पहली तो मुझसे छूट ही जाती है, और मेरी टीम ने वहाँ मेरा बहुत ध्यान रखा है। हम अंदरूनी तौर पर Slack का बहुत इस्तेमाल करते हैं। तो वे रोज़ एक Slack थ्रेड बनाते हैं जिसमें सामने आई समस्याएँ होती हैं, ताकि मैं अपडेट रह सकूँ, और अगर उन्हें कुछ चाहिए तो वे मुझे पिंग कर देते हैं। मैं पूरी कोशिश करता हूँ कि जल्दी जवाब दूँ, और सुबह जितनी जल्दी हो सके, इन सब चीज़ों को देख लेता हूँ। तो समय का अंतर आदर्श नहीं है, लेकिन इतना भी बुरा नहीं, हम इसे काफी अच्छी तरह संभाल लेते हैं। और दूसरी तरफ, उन्हें पता है कि टीम में कोई है जो थोड़ी देर तक जागा रहता है। तो कुछ साथी ऐसा कहते हैं कि पूर्वी तट पर शाम के 6 बजे होंगे और वे कहेंगे, अरे, यह टूट गया है। सुनो, Isaac तो पश्चिमी तट पर है, वह इसमें मेरी मदद कर सकता है, क्योंकि वहाँ अभी सिर्फ 3 बजे हैं। तो यह दोनों तरफ से काम आता है। हाँ,

Jonathan: हाँ।

Isaac: हाँ, तो मैंने Google 2019 में छोड़ा, माफ़ कीजिए, 2020 में। इंटरव्यू 2019 में हुआ था। मुझे मई 2020 में जुड़ना था। मैं अप्रैल, अगस्त 2020 में शिफ्ट होने की योजना बना रहा था, लेकिन कोविड शुरू हो गया और वह सब, और ऑफिस बंद हो गया। बस यही चलता रहा कि ऑफिस अभी खुला नहीं है, जैसे ही खुलेगा, यह शिफ्ट हो जाएगा। और फिर महामारी के दो साल बाद उन्होंने ऑफिस दोबारा खोलना शुरू किया। और मुझे लगा कि अब मुझे नहीं पता कि मैं शिफ्ट होना चाहता हूँ या नहीं। न्यूयॉर्क बहुत रोमांचक लगता था, लेकिन वहाँ ये सारे कारोबार खुले रहते थे, जगहें चलती थीं, यह सब। लेकिन अब महामारी के बाद, उनमें से बहुत कुछ उतना रोमांचक नहीं लगता। तो दो साल रिमोट से काम करने के बाद मैंने रिमोट पद पर ही आगे बढ़ना तय किया।

Jonathan: और आप शहर के हैं या गाँव के, या बीच में कहीं? क्योंकि न्यूयॉर्क तो पूरा शहर है। सौ प्रतिशत शहर। मेरा मतलब है, इसमें कोई दो राय नहीं। समझ रहे हैं न? तो वह बड़ा बदलाव होता, मुझे लगता है। हाँ। फिर भी रोमांचक तो है।

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

Jonathan: ऐसा करना उतना मुश्किल नहीं है। लेकिन यह बढ़िया है। तो अब शायद, अगर मैं गलत हूँ तो बताइए, आप बहुत समय स्क्रीन पर बिताते हैं, ऑफिस में, या घर के ऑफिस में, या जो भी हो। जैसे क्या आप रोज़ बाहर निकलते हैं, और स्क्रीन की दुनिया और बाहर के जीवन के बीच संतुलन कैसे बनाते हैं? क्या आपका रोज़ का कोई ऐसा समय होता है जब आप सोचते हैं कि मुझे बाहर निकलना ही है और कुछ और करना है?

Isaac: काश मैं ऐसा कर पाता। कुछ दिन, कुछ महीने या कुछ साल मैं दूसरों से बेहतर रहता हूँ। 2020 में मैं लगभग रोज़ साइक्लिंग करता था। ज़्यादातर सप्ताहांतों में मैं बाहर जाता हूँ। मैं हफ्ते में एक ट्रेक करने की कोशिश करता हूँ। इसमें मैं बहुत अच्छा नहीं रहा हूँ, लेकिन मैं ट्रेकिंग पर तो जाता हूँ। यह मौसम पर निर्भर करता है। मैं कैलिफ़ोर्निया में हूँ। कुछ हफ्ते बहुत गर्म होते हैं। अभी हमारे यहाँ लू चली जिसमें लगभग पूरे हफ्ते तापमान 40 डिग्री सेल्सियस से ऊपर रहा। तो बाहर निकलना मुश्किल हो जाता है। हम कैलिफ़ोर्निया में हैं, जहाँ आग लगती है, तो कभी-कभी एक-दो हफ्ते ऐसे आते हैं जब बाहर की हवा साँस लेने के लिए पूरी तरह सुरक्षित नहीं होती। तो कुछ हफ्तों में कैलिफ़ोर्निया में बाहर रहना मुश्किल हो जाता है। और महामारी में घर के अंदर रहना भी मुश्किल है। तो कुछ हफ्ते ऐसे भी होते हैं जब मैं दूसरों से कहीं ज़्यादा घर के अंदर रहता हूँ। लेकिन मुझे बाहर निकलना पसंद है। ऐसे दौर भी रहे हैं, जैसे छह महीने तक मैं हर दूसरे हफ्ते कम से कम एक बार ट्रेकिंग पर जाता रहा।

Jonathan: और फिर।

Isaac: ऐसे दौर भी रहे हैं जब मैं लगभग छह महीने तक हर महीने एक बार कैंपिंग पर गया। तो कुछ दौर ऐसे होते हैं जब मैं दूसरों से बेहतर रहता हूँ, और कुछ दौर ऐसे जब मैं पूरे दो हफ्ते घर में ही पड़ा रहता हूँ।

Jonathan: हाँ, यह बढ़िया है। और तो Isaac, अगला क्या... शायद, मुझे नहीं पता, शायद आपने इतना आगे तक नहीं सोचा होगा, लेकिन आपके अगले पाँच साल कैसे दिखते हैं? कोई अंदाज़ा है, या आप कुछ ऐसा सोचते हैं कि मैं अपना खुद का कारोबार शुरू करना चाहता हूँ, या यह करना चाहता हूँ, या आप बस जीवन का आनंद ले रहे हैं और जहाँ हैं वहीं खुश हैं?

Isaac: पश्चिमी तट पर शिफ्ट होने से पहले मुझे लगता था कि मुझे अपने भविष्य का काफी अंदाज़ा है। लेकिन जब वह सब उलट-पुलट हो गया, तो मैंने सीखा कि अगले साल क्या होगा, यह भी बताना बहुत मुश्किल है, पाँच साल तो दूर की बात है। मैं काफी खुश हूँ। मैंने हाल ही में नौकरी बदली है। मैंने लगभग दो, ढाई साल पहले नौकरी बदली थी। मुझे अपनी वर्तमान नौकरी काफी पसंद है, तो जल्दी कोई बदलाव दिखता नहीं। मैं अगले दो-तीन साल, या पाँच साल तक भी उसी नौकरी में खुशी से रह सकता हूँ। मुझे कैलिफ़ोर्निया में रहना बहुत पसंद है। मुझे ट्रेकिंग, साइक्लिंग और कैंपिंग पर जाना बहुत पसंद है। तो मैं जल्दी कैलिफ़ोर्निया छोड़ता हुआ नहीं दिखता। और मैं जल्दी वह नौकरी छोड़ता हुआ भी नहीं दिखता क्योंकि मुझे वहाँ काम करना बहुत पसंद है। तो मैं काफी संतुष्ट हूँ और मेरे पास कोई बड़ा, कोई बड़ा बदलाव की योजना नहीं है, लेकिन कहना मुश्किल है।

Jonathan: यह बढ़िया है। ठीक है, तो मेरे पास कुछ और सवाल हैं, जिन पर मुझे आपकी राय जाननी है। पहला सवाल शायद वह नहीं है जिसकी मैंने आपको तैयारी कराई थी, लेकिन... तो अगर मान लीजिए... अगर अभी आपके ऑफिस में 10 लोग आ जाएँ, 10 बिल्कुल अजनबी, और उन्हें कोडिंग के बारे में कुछ न पता हो, कोई वीणा बजाने वाला हो, कोई माली हो, कोई भी हो, तो कोडिंग शुरू करना सीखने के लिए आप उन्हें कौन-सी तीन सबसे बड़ी सलाह देंगे? यानी, अगर आप इसे इतना सीमित कर दें कि यह हर हाल में करो, तो वे सलाह कौन-सी होंगी?

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

Jonathan: यह काम की बात है। मेरा मतलब है, मैं कहूँगा कि मुझे अभी-अभी समझ आया है कि मेथड कैसे काम करते हैं। और यह तभी समझ आया जब मैं इसमें से गुज़रा, क्योंकि बहुत सारा ज्ञान, जब लोग चीज़ों की बात करते हैं, तो पढ़ाते समय बहुत कुछ मान लिया जाता है। जैसे अचानक सब मेथड शब्द उछालने लगते हैं। मैं सोचता हूँ, यह मेथड भला क्या होता है? यह चल क्या रहा है? और Go वाले कोहोर्ट में ही मुझे समझ आया कि ओह, मेथड ऐसे काम करते हैं। लेकिन यह लगभग पलक झपकते समझ आया, हालाँकि मुझे इतने समय तक इस वातावरण और इस शब्दावली में डूबे रहना पड़ा कि यह धीरे-धीरे अंदर उतर गया। मैं कहूँगा कि मेरे लिए सबसे बड़ी सीख यही थी कि सब कुछ एक साथ सीखने की कोशिश न करें, बल्कि एक सरल कॉन्सेप्ट को धीरे-धीरे तोड़ते रहें। क्योंकि सब कुछ इतना आपस में जुड़ा है कि आखिरकार आप सोचने का तरीका जोड़ना शुरू कर पाते हैं, और यह बहुत ज़रूरी है। तो यह बहुत काम का छोटा-सा तरीका है। मैं लोगों को यह बताऊँगा, Isaac की सलाह, धैर्य रखिए, खुद के साथ नरमी रखिए और धीरे-धीरे तोड़ते रहिए। यह सचमुच बढ़िया है। ठीक है। फिर मेरा अंतिम सवाल है, और इससे पहले कि मैं आपको आपके बाकी दिन के काम पर जाने दूँ, हमने टीम के तौर पर उस "पहाड़ी" वाले विचार की बात की थी जिस पर आप टेक में मरने को तैयार होंगे। यह काफी नाटकीय लगता है, इसमें बहुत ड्रामा है। और इसका मतलब मूल रूप से यह है कि वह एक चीज़ कौन-सी है जिसे आप बिल्कुल ज़रूरी मानते हैं, ऐसी सोच या नज़रिया जिसे टेक में बदला नहीं जा सकता। तो एक अच्छा उदाहरण होगा, मुझे नहीं पता, बहुत छोटे स्तर पर, मैं हमेशा पहले अपने फंक्शन लिखता हूँ और फिर CSS लिखता हूँ, अगर मैं फ्रंटएंड कर रहा हूँ। तो पहले कामकाज, फिर लॉजिक, फिर जो भी हो। यह ऐसा भी हो सकता है, हमारे पास रेबेका थीं जो Unison ट्रैक चलाती हैं। उन्होंने कहा था कि एक ऐसा जीनियस होना जो अपनी राय पर अड़ा रहे और जिसके साथ काम करना मुश्किल हो। वे एक ऐसे जीनियस से जो मैनेज करने में पूरी बैंडविड्थ खा जाता है, उससे बेहतर 50 ऐसे लोगों को चुनेंगी जिन्हें टीम में काम करना और मिलकर समस्याएँ हल करना सचमुच पसंद हो। तो यह उनकी एक बात थी, और मैंने इसे अच्छे ढंग से कहा, लेकिन टेक की दुनिया में आपकी वह पहाड़ी कौन-सी है जिस पर आप मरने को तैयार हैं, यानी जिस पर आप कोई समझौता नहीं करेंगे।

Isaac: यह शायद बहुत हद तक Google के तरीकों से प्रभावित है। Google में readability की एक धारणा है, जिसमें कोड पढ़ने में आसान होना चाहिए। और जब मैं कोड लिखता हूँ, तो मैं चाहता हूँ कि मेरा कोड पढ़ने और समझने में सरल हो। और मैंने बहुत सारा कोड देखा है, खास तौर पर कोड में कुशलता, बेंचमार्किंग और कोड को तेज़ बनाने पर बहुत ज़ोर दिया जाता है। और अक्सर मैं मान लेता हूँ कि मैं जिस तरह कर रहा हूँ वह ज़रूरी नहीं कि सबसे कुशल हो, लेकिन अगर मुझे लगे कि कोड पढ़ने में आसान है, तो मैं बेहद कुशल कोड से ऊपर पढ़ने में आसान, कम कुशल कोड को चुनूँगा। तो, एक आम कहावत है, मुझे पक्का नहीं पता कि यह किससे जोड़ी जाती है, कि सारी बुराइयों की जड़ समय से पहले किया गया ऑप्टिमाइज़ेशन है। और जब लोग कहते हैं, अरे, इसे और कुशल कैसे बनाया जाए? तो मैं कहता हूँ, क्या इसे और कुशल होने की ज़रूरत है? क्या आपको कोई दिक्कत आई है, यानी क्या आप इसे प्रोडक्शन में चला रहे हैं और कुशलता की समस्या आ रही है? क्या यह प्रोडक्शन में इस्तेमाल करने के लिए बहुत धीमा है? अगर प्रोडक्शन में कोड के साथ आपको सचमुच कोई ऐसी समस्या नहीं आई जहाँ इसे और कुशल बनाने की ज़रूरत हो, तो आप इसे और कुशल क्यों बनाएँगे? यह जैसा है वैसा पढ़ने में आसान है। संभालने में आसान है। दूसरे लोग समझ सकते हैं कि क्या हो रहा है। आप कुछ CPU साइकल बचाने के लिए अच्छी तरह लिखा, काम करने में आसान और संभालने में आसान कोड क्यों छोड़ देंगे? क्या बिजली इतनी सस्ती है और CPU इतने सस्ते हैं कि हमें कोड को सिर्फ ऑप्टिमाइज़ करने के लिए ऑप्टिमाइज़ करने की ज़रूरत नहीं?

Jonathan: हाँ, यह हमेशा मज़ेदार होता है क्योंकि यह उन चीज़ों में से है जहाँ मैं सोचता हूँ... हमारा प्रोग्राम 30 मिलीसेकंड में कंपाइल और रन हुआ। और वे कहते हैं, ओह, लेकिन हमने इसे 20 मिलीसेकंड तक ला दिया। मैं कहता हूँ, मैं आपको नहीं बता सकता। मैं नहीं बता सकता कि कौन तेज़ था और कौन धीमा। यह तो तेज़ ही लगता है। तो मुझे लगता है यह अच्छी बात है। मुझे यकीन है कि आपका कोड पढ़कर मज़ा आएगा, लेकिन यह बढ़िया है। Isaac, आपके समय के लिए, जल्दी उठने के लिए, और दक्षिणी गोलार्ध में लोड शेडिंग सहने के लिए बहुत-बहुत धन्यवाद। और मेरे पूरे अंधेरे में बैठे रहने के लिए, मुझे यकीन है कि यह आपके लिए काफी मज़ेदार रहा होगा। लेकिन आपके समय के लिए बहुत-बहुत धन्यवाद। और मैं आगे के लर्निंग कोहोर्ट में और मेंटरिंग स्ट्रीम में आपसे मिलने की उम्मीद करता हूँ। और Exercism में और हर तरफ आप जो योगदान देते हैं, उसके लिए धन्यवाद। मैं इसकी बहुत कद्र करता हूँ। और हाँ, एक बार फिर बहुत-बहुत धन्यवाद। और मिलते हैं। नहीं, मुझे खुशी हुई। अपना ध्यान रखिए, Isaac। अलविदा।

Isaac: एक बार फिर बहुत-बहुत धन्यवाद। मुझे खुशी हुई। अपना ध्यान रखिए, Isaac।

हमारी कम्युनिटी की और कहानियाँ

हमारी कम्युनिटी के सदस्यों को सुनिए, उनसे सीखिए और प्रेरणा पाइए।