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

बहुभाषी डेवलपर बनना

आप कह रहे हैं, 'बहुभाषी' क्या है... तो शब्दकोश के अनुसार, यह कई भाषाएँ जानने की क्षमता है! तो आप 'बहुभाषी' कैसे बनते हैं? Erik Schierboom से बात कीजिए और अंदरूनी जानकारी पाइए!

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

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

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

Jonathan: सेव पॉइंट वगैरह कुछ नहीं होता था, फिर से शुरू से खेलना पड़ता था।

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

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

Erik: कभी नहीं।

Jonathan: हाँ।

Erik: हाँ, कभी-कभी कई फ्लॉपी डिस्क होती थीं। तो हाँ, असल में वह बहुत अच्छा दौर था। मुझे MS-DOS बहुत पसंद था, बस यह पता लगाना कि मैं क्या-क्या कर सकता हूँ। और फिर मैंने पता लगाया कि मैं क्या नहीं कर सकता। तो हाँ, वह बहुत शानदार था।

Jonathan: हाँ, वह बहुत शानदार था। तो क्या वे फिर पूरे समय काम करती थीं? और आपके पिताजी घर पर थे?

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

Jonathan: मुझे वह बहुत अजीब लगता था। आप अकेले थे?

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

Jonathan: लेकिन हम अक्सर कंप्यूटर को लेकर झगड़ते थे। वह Sims खेलना चाहती थी और मैं SimCity या जो भी हो, खेलना चाहता था। तो उस हिसाब से हम हमेशा एक-दूसरे से भिड़ते रहते थे।

Erik: बाय। SimCity वाला चुनाव मुझे कहीं ज़्यादा पसंद है। लेकिन नहीं, उसे कंप्यूटर में असल में कभी दिलचस्पी नहीं रही। उसे दिलचस्पी दिलाने का एक ही तरीका था, जब मेरे पास SNES था, यानी Super Nintendo, और हमारे पास Mario Kart था। उसे Mario Kart पसंद था, तो हमने साथ में बहुत Mario Kart खेला। बेशक, जीत हमेशा मेरी होती थी, क्योंकि मेरा अभ्यास कहीं ज़्यादा था, लेकिन फिर भी उसे अच्छा लगता था।

Jonathan: तो आपको आज भी खेलना-कूदना पसंद है? हाँ, MS-DOS, अगर मैं गलत नहीं हूँ, तो काफी लो-लेवल वाली बात थी। हाँ। तो वह शायद काफी लो-लेवल था। हाँ, बिल्कुल। और जब आप उस सिस्टम के साथ खेलते थे, तब आपकी उम्र क्या थी?

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

Jonathan: तो मैं... मैं बस बीच में बोल रहा हूँ।

Erik: और फिर जब मैं थोड़ा बड़ा हुआ।

Jonathan: तो यह जुड़ाव कैसे बना कि अरे, मैं गेम प्रोग्राम कर सकता हूँ और मैं इसे पूरी गंभीरता से कर सकता हूँ, अगर यह कहना समझ में आए, या मैं इसे ज़्यादा गंभीरता से अपना सकता हूँ?

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

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

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

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

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

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

Erik: हाँ, हाँ, मुझे लगता है कि पहले साल या उसके आसपास बस इतना था कि अगर वह चल गया, तो मैं बहुत, बहुत खुश था। सौंदर्य जैसी कोई चीज़ नहीं थी। बस अगर चलता है तो अच्छा है। और मैंने अपने कोड पर टिप्पणियाँ लिखने में बिल्कुल हद कर दी, क्योंकि मेरे प्रोफेसर ने कहा था कि अपने कोड पर टिप्पणियाँ लिखनी चाहिए। कोड और टिप्पणियों का अनुपात शायद एक से दस था, यानी बहुत बड़ा। और हाँ, मेरा सबसे पुराना प्रोजेक्ट अब भी ऑनलाइन है, जो मेरा पहला ओपन सोर्स प्रोजेक्ट था। तो आपको MSN Messenger याद है, जिसमें आप मैसेज भेज सकते थे?

Jonathan: ठीक है, कुछ याद आता है, लेकिन...

Erik: आपको Winamp याद है?

Jonathan: हाँ।

Erik: हाँ, तो Winamp एक मीडिया प्लेयर था। वह Napster के दौर की बात है। आप MP3 डाउनलोड करते थे और फिर उसे Winamp से चलाते थे। तो मैं यह करना चाहता था कि अगर मैं कोई गाना चला रहा हूँ, तो वह अपने आप MSN Messenger में मेरे नाम के आगे जुड़ जाए। और उन दिनों मुझे Windows प्रोग्रामिंग का बहुत शौक था। वह Win32 था। बहुत पुराने ढंग का था, आज जो है वैसा नहीं, लेकिन बहुत लो-लेवल और बहुत शानदार चीज़ भी थी। तो मैंने C++ में एक प्लगइन बनाया, जो उन दिनों मेरी पसंदीदा भाषा थी। लेकिन मुझे तब तीन भाषाएँ ही आती थीं, तो यह कोई बड़ी बात नहीं थी। तो मैंने एक प्लगइन बनाया। अगर Winamp कुछ चला रहा होता, तो वह कुछ शानदार Win32 API के ज़रिए गाने का नाम लेता और फिर MSN विंडो में आपके नाम को अपडेट कर देता। तो हर कोई देख सकता था कि मैं कौन सा नंबर चला रहा हूँ। और मैंने वह ऑनलाइन डाल दिया, क्योंकि मुझे लगा शायद और लोगों को भी पसंद आए। मुझे लगता है वह SourceForge पर था, जिसका अब कोई इस्तेमाल नहीं करता, क्योंकि मुझे लगता है उनके साथ प्राइवेसी जैसी कुछ दिक्कतें हुई थीं। लेकिन असल में दुनिया में और लोगों ने इसे इस्तेमाल किया और मैं बहुत हैरान था। मैं डाउनलोड देख सकता था, पता नहीं, कुछ सौ डाउनलोड, और लोग मेरा लिखा सॉफ्टवेयर इस्तेमाल कर रहे थे। वह अब तक की सबसे अच्छी भावना थी। और वह मेरा पहला ओपन सोर्स प्रोग्राम था। मुझे कभी इम्पोस्टर सिंड्रोम नहीं हुआ। मुझे लगता था कि यह मेरा कोड है। अगर किसी को यह खराब लगता है, तो कोई बात नहीं। यह काम करता है, तो मैं इससे खुश हूँ। और मैं दूसरों की टिप्पणियों से सीख सकता हूँ। मैं कभी इम्पोस्टर सिंड्रोम वाला नहीं रहा, और जो मुझे जानते हैं, उन्हें यह सुनकर हैरानी नहीं होगी।

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

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

Jonathan: अब यह बहुत हद तक इतिहास जैसा भी लगता है, यानी आप किसी स्रोत से कैसे सवाल पूछते हैं, यह कैसे पक्का करते हैं कि आपका तर्क मेल खाता है, वह सब कुछ। तो इतिहास के कौशल और उसके आनंद ने...

Erik: उसी के आसपास।

Jonathan: वे आपकी कोडिंग में और कोड सीखने में कैसे झलके, अगर झलके तो? उनमें क्या-क्या मेल थे?

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

Jonathan: शुक्रिया। इस इंडस्ट्री में आपके लिए आनंद कहाँ था?

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

Jonathan: वे मुझे पसंद थीं। नहीं, मैंने यह सवाल इतिहास के बारे में इसलिए पूछा था कि...

Erik: हाँ, मुझे कहानी पता है।

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

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

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

Erik: खैर, उम... मैं बजाता हूँ, मैं बजाता हूँ। हाँ, तो मैंने गिटार सीखने की कोशिश की। यह मेरी पत्नी के लिए बहुत मुश्किल था, क्योंकि हम उसके स्टूडेंट फ्लैट में रहते थे और वह शायद 20 वर्ग मीटर का था। तो मैं गिटार सीखने की कोशिश कर रहा था और हम एक-दूसरे के बहुत करीब थे। मुझे आज भी हैरानी होती है कि उसने यह सब सह लिया। लेकिन मेरे पास...

Jonathan: यह बस

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

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

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

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

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

Jonathan: चलिए उसमें नहीं जाते।

Erik: चलिए उसमें नहीं जाते। हाँ, माफ़ कीजिए, मैंने असल में उसका ज़्यादातर हिस्सा दे दिया और जिनसे बहुत, बहुत प्यारी यादें जुड़ी हैं, वे रख लीं, लेकिन ज़्यादातर दे दिया। एक समय मेरे पास 400 या 500 DVDs थीं।

Jonathan: एक समय 400-500 DVDs थीं। ओह, यह मज़ेदार है।

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

Jonathan: और मैंने लगभग सात साल तक C# किया। मुझे वहाँ की कहानी सुनाइए। क्योंकि आपने स्वयंसेवक या योगदानकर्ता के रूप में शुरुआत की, है ना? और फिर वहाँ से आपने धीरे-धीरे इसे बनाया।

Erik: हाँ। हाँ, तो जब मैं यूनिवर्सिटी में काम कर रहा था, वे बहुत उदार थे और आपको चीज़ें सीखने या कॉन्फ्रेंस में जाने वगैरह की इजाज़त देते थे। तो एक समय मैंने फंक्शनल प्रोग्रामिंग नाम की कोई चीज़ सुनी। और मैंने सोचा, अरे, मुझे इसके बारे में नहीं पता। मुझे पता था कि उन्होंने यूनिवर्सिटी में एक वैकल्पिक पाठ पढ़ाया था, लेकिन मैंने उससे असल में कुछ नहीं किया था। और मैंने सोचा कि शायद मुझे फंक्शनल प्रोग्रामिंग सीखनी चाहिए, शायद मज़ेदार होगी। और मेरे एक और साथी ने भी शामिल होना चाहा। तो हमने Coursera पर एक मुफ़्त कोर्स किया, Scala का। अब अगर आप इसे करते हैं तो पैसे देने पड़ते हैं, लेकिन उन दिनों नहीं देने पड़ते थे। और वह Martin Odersky पढ़ाते थे, जो Scala के लेखक हैं, जो एक फंक्शनल भाषा है और हमारे पास Exercism पर भी है। और मुझे फंक्शनल प्रोग्रामिंग सीखने में बहुत मज़ा आया, हालाँकि कभी-कभी यह दिमागी जद्दोजहद भी थी, क्योंकि यह चीज़ों के बारे में सोचने का बिल्कुल अलग तरीका है। लेकिन मैं टिका रहा और मुझे यह बहुत पसंद आया। और वहाँ एक फोरम था जहाँ आप दूसरे विद्यार्थियों से बात कर सकते थे, जैसे उन अभ्यासों पर जो आप हल नहीं कर पाए। लेकिन कुछ लोगों ने पूछा कि अगर मुझे Scala के बारे में और सीखना हो तो कौन-कौन से संसाधन इस्तेमाल कर सकता हूँ? और किसी ने कहा कि Exercism आज़माओ, वहाँ यह शानदार चीज़ है जिसमें आप बहुत सारे अलग-अलग अभ्यास कर सकते हैं, छोटी-छोटी पहेलियों जैसे। और मैंने सोचा, अरे, यह अच्छा लगता है। तो मैं जुड़ गया और मैंने Scala ट्रैक किया। और मैंने सचमुच बहुत कुछ सीखा। और उसी से मैंने फंक्शनल प्रोग्रामिंग की दुनिया में पैर डाले। तो मैंने सोचा, शायद गहरी छलांग लगाऊँ। और मैं Haskell पर चला गया। और उस समय मेरे लिए वह सचमुच गहरी छलांग थी। लेकिन बहुत कुछ Exercism V1 वाला था। यानी लोग आपके कोड पर टिप्पणी करते थे, कोई औपचारिक मेंटरिंग व्यवस्था वगैरह नहीं थी। लेकिन Haskell वाले लोग बिल्कुल शानदार थे। तो असल में मैंने उनसे Haskell सीखा। मैंने बहुत गूगल किया और कुछ बहुत अजीब हल निकाले, मैंने कुछ अजीब हल बनाए, लेकिन वे हमेशा मुझे कुछ ऐसा दिखाने की कोशिश करते थे जो मुहावरेदार Haskell हो और अच्छा हो। और यह इतना अच्छा अनुभव था कि मुझे लगा कि मुझे भी यह दूसरों के लिए करना चाहिए। शायद मैं भी मदद कर सकता हूँ। मुझे मदद करना हमेशा पसंद रहा है। तो मैंने सोचा कि मैं C# करूँगा और दूसरों के C# कोड पर बस टिप्पणी करूँगा। तो मुझे वह अच्छा लगा। और फिर मैंने देखा कि C# ब्रिक में पता नहीं, 40 अभ्यास हैं और Haskell में उससे ज़्यादा। ऐसा क्यों? तो मैंने यह पता लगाने की कोशिश की कि ऐसा क्यों है। और अरे, आप Exercism पर पुल रिक्वेस्ट भेज सकते हैं और नए अभ्यास जोड़ सकते हैं। और यही चीज़ मुझे अंदर खींच ले गई। और फिर मैं हर वीकेंड अभ्यास जोड़ता रहा। और जब C# पूरा हो गया, तो मैंने सोचा, अरे, F#, चलो F# करते हैं। F# फंक्शनल है और Microsoft के इकोसिस्टम में है। तो मुझे दोनों पसंद हैं। तो चलो अपनी पसंदीदा चीज़ें मिला देते हैं। और मैंने F# किया और वही काम किया। तो मैं F# मेंटेनर था, अभ्यास बनाता था, और मुझे यह बहुत, बहुत पसंद था।

Jonathan: मुझे यह बहुत, बहुत पसंद था। आपके पास एक भाषा है, आप कहते हैं, ठीक है, मैं Scala आज़माऊँगा। मैंने उसमें दाँत गड़ाए और फिर आपने उसमें गहरी छलांग लगाई। अब, हर भाषा को समझने में जो समय लगा, क्या वह समय धीरे-धीरे कम होता गया? क्योंकि अब आपके पास कई भाषाएँ हैं। मेरा मतलब, यह कैसे निकला?

Erik: हाँ, हाँ। खैर, यह प्राकृतिक भाषाओं के साथ भी ऐसे ही चलता है। अगर आप फ्रेंच सीखते हैं और फ्रेंच अच्छी तरह जानते हैं, तो स्पेनिश सीखना बहुत आसान हो जाएगा, क्योंकि बहुत सारा ज्ञान साझा होता है, जैसे शब्दावली, लगभग बोलियाँ। तो कंप्यूटर प्रोग्रामिंग में भी वही है। अगर आपको C आती है और आप C++ पर जा रहे हैं, तो बहुत सारे नए विचार हैं, लेकिन बहुत कुछ बिल्कुल वैसा ही भी है। तो पूरा C जैसा परिवार, जो प्रोग्रामिंग में मुझे पसंद आने वाली चीज़ों में से एक है, जैसे पेड़ों के परिवार। एक Lisp शाखा है, एक ML शाखा है, एक C जैसी शाखा है। और यह लगभग इतिहास जैसा है, जहाँ आपके पास यह वंशावली होती है, पेड़ जैसा। यह मैंने ज़ोर से कह दिया। हाँ, वह Haskell या Prolog है। लेकिन मुझे वे अलग-थलग वाले भी बहुत पसंद हैं, क्योंकि उनमें अनोखे विचार होते हैं। आमतौर पर मैं वही आज़माना चाहता हूँ। तो कोई ऐसी भाषा ढूँढना जो कुछ अलग करती हो, भले ही सभी प्रोग्रामिंग भाषाएँ बहुत सारा ज्ञान साझा करती हों। उन सबमें बूलियन लॉजिक होता है, और बूलियन लॉजिक तो तय है, दिया हुआ है। तो वह हर जगह एक जैसा चलता है। हो सकता है आपको दो एम्परसैंड लिखने पड़ें, या and को शब्द की तरह लिखना पड़े, लेकिन मूल बातें वही रहती हैं। तो जब आपको ये मूल बातें आ जाती हैं, आप उन्हें अच्छी तरह जान लेते हैं, तो आप उन्हें दूसरी भाषाओं पर ज़्यादा आसानी से लागू कर पाते हैं।

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

Erik: उम, तो मैंने हमेशा लोगों को यह बढ़ावा देने की कोशिश की है कि वे कुछ ऐसा बनाएँ जो वे बनाना चाहते हैं। जब मैं PHP सीख रहा था, तो मैंने कुछ ऐसा बनाया जो उन IMDB की टॉप 250 फ़िल्मों का हिसाब रखता था जो मैंने देखी थीं। मैं बहुत फ़िल्में देखता था, तो मैं उन सबमें से हर एक को चेक करना चाहता था, और उससे मैंने बहुत सारी PHP और MySQL सीखी, बस ऐसी चीज़ बनाकर जो मैं बनाना चाहता था। क्योंकि तब आप उसमें उतर जाते हैं, अगर आपको कोई रुकावट मिले, तो आप रुकना नहीं चाहते, आप आगे बढ़ना चाहते हैं, आप उसे ठीक करना चाहते हैं, आप चाहते हैं कि वह काम करे। और मैंने यह सलाह कई लोगों को दी है जिन्होंने प्रोग्राम करना सीखना शुरू किया और उनके लिए यह अच्छी तरह काम करी। और आजकल, जब मैं कोड करना सीख रहा था उस दौर से बहुत अलग है, Stack Overflow वगैरह के साथ। और ऑनलाइन इतना ज्ञान मिल जाता है। सही संसाधन ढूँढना भी मुश्किल है। और मुझे लगता है कि यहीं Exercism असल में चमक सकता है, क्योंकि हम लगभग संरक्षक जैसे हो सकते हैं, हमारी कम्युनिटी में ऐसे लोग हैं जो जानते हैं कि सही संसाधन कौन से हैं। और मैं देखता हूँ कि नए लोग इसी में जूझते हैं। और यह भी कि यह। ऐसा लगभग कभी नहीं होता कि आपको ऐसे संसाधन मिलें जहाँ आप असल में शून्य से शुरुआत करें। आमतौर पर Exercism का दर्शक वह होता है जिसे कम से कम एक भाषा आती है। और फिर आप दूसरी भाषाओं पर बढ़ते हैं या उसी भाषा में गहरे उतरते हैं। लेकिन यह उन लोगों के लिए नहीं है जिनकी प्रोग्रामिंग की कोई पृष्ठभूमि नहीं है। यानी आपको नहीं पता कि for लूप क्या है। आपको नहीं पता कि वेरिएबल क्या हैं। स्ट्रिंग आपके दिमाग में बिल्कुल अलग चीज़ है। हाँ, जब मेरी पत्नी देखती है कि मैं स्ट्रिंग के बारे में बात कर रहा हूँ तो मुझे हमेशा अजीब नज़रों से देखा जाता है। नीदरलैंड्स में यह अलग चीज़ है।

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

Erik: मेरे पास ऐसी बहुत सारी राय हैं, लेकिन मुझे लगता है कि यहाँ जिसे मैं समझाना चाहूँगा वह यह है कि आपको उससे ज़्यादा भाषाएँ सीखनी चाहिए जितनी आप पहले से जानते हैं। तो ऐसी नई भाषाएँ आज़माइए जो आपको नहीं आतीं और ऐसी भाषाएँ आज़माइए जो आपके जाने-पहचाने से बहुत अलग हों। यह बहुत आसान है। जैसे, अगर आपको C# आती है, तो बस C# के साथ रहिए और यह ठीक है। लेकिन अगर आप समय और इच्छा निकाल पाएँ कि कुछ और आज़माएँ, जैसे F# या पता नहीं, Kotlin आज़माइए, तो बस कुछ अलग कीजिए और देखिए कि क्या-क्या फर्क है। आप कहीं बेहतर प्रोग्रामर बनेंगे। मुझे पूरा, 100 प्रतिशत यकीन है कि F# सीखने से मैं बेहतर C# प्रोग्रामर बना, भले ही वे अलग भाषाएँ हैं और उनके अलग सिद्धांत हैं। लेकिन आजकल भाषाओं के बीच बहुत ओवरलैप है। जब भाषाएँ अभी काफी नई थीं, जैसे Lisp, C जैसी बिल्कुल नहीं दिखती। तो फंक्शनल भाषाएँ इम्पेरेटिव भाषाओं से बहुत अलग थीं। लेकिन आधुनिक भाषाएँ, जैसे C#, जैसे Java, जैसे Kotlin, जैसे Rust, वे दूसरी भाषाओं से भी प्रेरणा लेती हैं, और फंक्शनल भाषाओं से भी। तो जब मैं यूनिवर्सिटी में था, तब हमेशा यह चुटकुला चलता था कि फंक्शनल प्रोग्रामिंग शानदार है, लेकिन कोई करता नहीं है। लेकिन अब यह सच नहीं है। तो भले ही आप किसी फंक्शनल भाषा में काम न कर रहे हों, फंक्शनल भाषाओं के विचार हर जगह हैं। JavaScript में बहुत सारे फंक्शनल विचार हैं। C# में, वहाँ उन्नत पैटर्न मैचिंग है, LINQ है, बहुत सारी फंक्शनल चीज़ें हैं। और आप देख रहे हैं कि भाषाएँ हर जगह से विचार उधार ले रही हैं। तो यह उतना स्पष्ट नहीं रहा कि कौन सी भाषा फंक्शनल है और कौन सी बस इम्पेरेटिव है। अब यह ज़्यादा मिला-जुला है। लेकिन मुझे अब भी लगता है कि अगर आप कोई नई भाषा सीखना शुरू करें तो बहुत कुछ पाने को है। कुछ लोग कहते हैं कि हर साल एक नई भाषा सीखो। मैं यह करने की कोशिश करता हूँ। मैं समझ सकता हूँ कि यह लोगों को चिढ़ाने वाला लगेगा, और वे घबरा जाएँगे। लेकिन कम से कम एक अलग भाषा आज़माइए और कोशिश कीजिए कि वह आपके आराम के दायरे से थोड़ी बाहर की हो। और मैं वादा करता हूँ, आप कुछ सीखेंगे, बहुत कुछ सीखेंगे और आम तौर पर बेहतर प्रोग्रामर बनेंगे। और उस भाषा के लिए भी, जिस पर आप पहले से काम कर रहे हैं।

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

Erik: नहीं, नहीं, मुझे लगता है लोग इसके लिए कहीं ज़्यादा राय वाले हैं। तो नई भाषाएँ हमेशा रहेंगी। हर दिन नई भाषाएँ आएँगी, और यह ठीक है। लेकिन पेड़ छँटेंगे भी। लोकप्रिय भाषाएँ अंत में शायद टिकी रहेंगी। तो मुझे नहीं लगता कि Java या C# जल्दी कहीं जा रही हैं। लेकिन जैसे, C या C++ हमेशा बहुत बड़ी भाषाएँ रही हैं। लेकिन अब हम Rust देख रहे हैं, जो उन्हीं समस्याओं को सुलझाने की एक नई कोशिश है, लेकिन ज़्यादा सुरक्षा के साथ। यानी अंदर ही अंदर सुरक्षा। और यह एक शानदार भाषा है जिसके बारे में मुझे असल में और सीखना चाहिए। लेकिन यह देखना दिलचस्प है कि Rust अब धीरे-धीरे उसी जगह बनाने लगी है, लोग इसे C या C++ की जगह इस्तेमाल करने लगे हैं, और मुझे निजी तौर पर लगता है कि यह बहुत अच्छी बात है। लेकिन जैसे, Linux में अब आप अपने ड्राइवर Rust में लिख सकते हैं। तो वहाँ हमेशा C++ रहा है। लेकिन अब वे Rust में ड्राइवर बनाने का समर्थन करते हैं। तो वह काफी बड़ा कदम था। तो मुझे लगता है भाषाएँ तो रहेंगी, क्योंकि आप ऐसी भाषा नहीं बना सकते जो हर मकसद के लिए सही हो। और इसीलिए भी मुझे लगता है कि आपको कई भाषाएँ सीखनी चाहिए, क्योंकि अलग-अलग स्थितियों के लिए अलग-अलग भाषाएँ चाहिए। तो आप कोशिश कर सकते हैं और यह ऐसा है जैसे किसी चीज़ का... हथौड़े को आरी की तरह इस्तेमाल करना। पता नहीं, यह कहावत क्या है।

Jonathan: कहावत? यह ऐसा है, ठीक है, आपको आरी चाहिए, लेकिन आपके पास सिर्फ हथौड़ा है। अब क्या करेंगे? ठीक है।

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

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

Erik: तो यह मज़ेदार है और काम का भी है। मुझे पहले से पता है मैं क्या कहूँगा। ठीक है। ठीक है, जो सबसे पहले दिमाग में आता है वह है कि अब हमारे पास जो Dig Deeper टैब है, उसे देखिए। हमने यह नया फीचर Dig Deeper जोड़ना शुरू किया है, जहाँ आप, एक बार अभ्यास हल कर लेने के बाद, या कम से कम उस पर काम कर लेने के बाद, अप्रोच देख सकते हैं, यानी वे अलग-अलग तरीके जिनसे कोई अभ्यास हल किया जा सकता है। और असल में Exercism V1 में हर कोई इसी तरह सीखता था, साथ में जुड़ी टिप्पणियों के साथ: दूसरों का कोड देखकर और यह देखकर कि उन्होंने इसे कैसे हल किया। मैंने Haskell बहुत हद तक इसी तरह सीखी, अपनी टिप्पणियों के अलावा, बस यह देखकर कि अरे, इसे इस तरह भी किया जा सकता है। और फिर आप खुद आज़माते और कहते कि अरे, यह तो बहुत सुंदर है और मैं इससे और चीज़ें कर सकता हूँ, और फिर इसे दूसरे अभ्यासों पर लागू करते। तो किसी चीज़ को करने के ये अलग-अलग तरीके ढूँढ पाना, यह लगभग प्रोग्रामिंग की कला की ओर इशारा करता है, कि आप चीज़ों को अलग-अलग तरीकों से हल कर सकते हैं। तो ये अलग-अलग अप्रोच हैं। मैंने स्ट्रिंग को उलटने पर लेख और अप्रोच लिखे हैं। यह IT इंटरव्यू में पूछे जाने वाले बुनियादी सवालों में से एक है। आप स्ट्रिंग को कैसे उलटेंगे? C# में इसके कुछ मुहावरेदार तरीके हैं, लेकिन वे अलग हैं और उनके प्रदर्शन के गुण अलग हैं, और उनमें से एक प्रदर्शन पर बहुत केंद्रित है, लेकिन कम पढ़ने लायक है। तो मुझे यह अच्छा लगता है कि वेबसाइट पर, एक बार आप किसी तरीके से हल कर लेने के बाद, आप कह सकते हैं कि अरे, और भी तरीके हैं। और इस तरह करने के ये फ़ायदे हैं। और ये नुकसान हैं। और यह सिर्फ इतना नहीं कि आप अलग-अलग अप्रोच देख सकते हैं, बल्कि हम एक परिचय लिखने की भी कोशिश करते हैं जिसमें हम उनके बीच चुनाव करने में मदद करते हैं। IT में हमेशा समझौते होते हैं। कोई ऐसा हल लगभग कभी नहीं होता जो बस सबसे अच्छा हो। तो आप चीज़ें हमेशा अलग तरीके से लिख सकते हैं। तो अक्सर, हाँ। सबसे पढ़ने लायक हल हमेशा सबसे अच्छा प्रदर्शन करने वाला नहीं होता। तो समझौते करने में, समझौतों को समझने में और अलग-अलग अप्रोच के बीच चुनाव करने में आपकी मदद करना। यह भी एक चीज़ है जो हम Dig Deeper टैब के ज़रिए करने की कोशिश करते हैं। और मैं अपने खाली समय में ये लिखता रहा हूँ। यह जानकारी लिखने और लोगों के साथ बाँटने में मुझे बहुत मज़ा आता है। तो मैं लोगों को सचमुच प्रोत्साहित करूँगा कि वे या तो ये लिखकर देखें या बस अप्रोच पढ़ें। मुझे पता है कि हर अभ्यास में ये नहीं हैं। हमने यह फीचर एक हफ्ते पहले ही शुरू किया है। तो यह कुछ C# अभ्यासों तक ही सीमित रहेगा, लेकिन हम इसे बहुत बढ़ाएँगे। और ऐसी चीज़ों के लिए हम कम्युनिटी से पुल रिक्वेस्ट लेते हैं। और मैं खुशी से आपकी मदद करूँगा इसे लिखने में और पूरा कराने में, और आप अपनी भाषा का ज्ञान बाँट सकते हैं। तो मुझे लगता है यह एक ऐसी चीज़ है जो लोगों को हमेशा पसंद आती है। अगर उन्हें कोई भाषा पसंद है, तो वे चाहते हैं कि दूसरों को भी पसंद आए। तो अप्रोच यह दिखाने का बहुत अच्छा तरीका है कि आपकी भाषा क्या-क्या कर सकती है। जाकर देखिए। हाँ।

Jonathan: जाकर देखिए। इस हफ्ते के लिए आपके पास और कुछ है?

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

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

Erik: mhm Ja, das kommt in das Video. नहीं, सच में नहीं। मैं तीसरी ढूँढने की कोशिश कर रहा था।

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

Erik: मुझे कोई आपत्ति नहीं। बढ़िया। मुझे भी अच्छा लगा। मुझे भी अच्छा लगा। बहुत-बहुत धन्यवाद।

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

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