कभी-कभी हमें ऐसे लोग मिलते हैं जो प्रोग्रामिंग सीखने में सीधे गहरे पानी में कूद पड़ते हैं! Carl, जिन्हें ऑनलाइन 'Meatball' के नाम से जाना जाता है, उन्होंने Exercism में Python ट्रैक का उपयोग करके कोड सीखना शुरू किया... यह सचमुच बड़ी उपलब्धि है, लेकिन चैलेंज किसे पसंद नहीं!
Jonathan: तो नमस्ते, और Exercism पॉडकास्ट में आपका स्वागत है। मेरा नाम Jonathan है। आप जहाँ भी हों, आपके साथ जीवन और कहानियाँ साझा करते हुए मुझे बहुत खुशी है। तो आज हमारे साथ एक मेहमान हैं, जिनका नाम Carl है। मैं सीधे बात शुरू करता हूँ और Carl से कहता हूँ कि वे अपना थोड़ा परिचय दें। तो Carl, बताइए, आप कहाँ से हैं? इस समय क्या कर रहे हैं? और Exercism तक कैसे पहुँचे?
Carl: मैं स्वीडन के गोथेनबर्ग शहर में रहता हूँ और इस समय पूर्णकालिक छात्र हूँ। लेकिन जब मैं टेक्नोलॉजी और प्रोग्रामिंग की दुनिया में आया, तब मैंने Exercism इस्तेमाल किया। मैंने Python ट्रैक से शुरू किया और मुझे लगता है कि ज़्यादातर शुरुआती लोगों के लिए Python ट्रैक सबसे अच्छा है, क्योंकि Python का सिंटैक्स काफी सीधा है और मेरी राय में काफी स्वाभाविक भी। और जब प्रोग्रामिंग भाषा में टाइप की बात आती है, तो Python आपके साथ काफी नरमी बरतती है। उसमें ज़्यादा टाइप, डेटा टाइप नहीं होते, लेकिन... हाँ। तो मैंने कॉन्सेप्ट अभ्यास करने और सिलेबस का पालन करने से शुरू किया। और मैं यह हर दूसरे वीकेंड पर करता था, एक-दो अभ्यास। और कुछ समय बाद, जब मैंने सचमुच... क्योंकि शुरू में मैंने बहुत गलतियाँ कीं, जिन्हें मैं अब पीछे मुड़कर देखता हूँ। अब जब मैं बड़ा हो गया या... अब जब मैंने ज़्यादा समय तक प्रोग्राम किया है, तो मैं उन गलतियों को पहचान सकता हूँ। तो ज़रूरी नहीं कि शुरू में आपका कोड परफेक्ट हो। और मुझे जो अच्छा लगा, वह यह था कि जब मैंने Python ट्रैक पर बहुत सारे अभ्यास कर लिए, तो मैं Ruby ट्रैक पर चला गया। Python से आगे बढ़ने के लिए Ruby बढ़िया भाषा क्यों है? क्योंकि दोनों में बहुत सी समानताएँ हैं। और Ruby का सिंटैक्स भी काफी समान है, लेकिन कुछ फर्क भी हैं। जैसे, Ruby कहीं ज़्यादा OOP है, यानी ऑब्जेक्ट ओरिएंटेड। तो मुझे लगता है कि एक शुरुआती के लिए यह काफी अच्छी यात्रा हो सकती है, पहले Python से शुरू करना और फिर Ruby पर आ जाना। और अगली बार मिलते हैं।
Jonathan: आपने Python से शुरू किया। मेरा मतलब है, अक्सर जब लोग Exercism पर आते हैं, तो उनके पास डेवलपमेंट का थोड़ा अनुभव होता है। अगर आपके पास पहले से डेवलपिंग और कोडिंग का थोड़ा ज्ञान और अनुभव है, तो लोग Exercism का इस्तेमाल अक्सर किसी खास भाषा में अपनी स्किल बढ़ाने के लिए करते हैं। लेकिन क्या मैं यह सही समझ रहा हूँ कि आप बिना किसी कोडिंग या प्रोग्रामिंग अनुभव के आए और Exercism से शुरुआत की?
Carl: मैंने पहले Scratch जैसा कुछ किया है, यानी विज़ुअल प्रोग्रामिंग, लेकिन असली कोड कभी नहीं। शुरू से शुरुआत करना कठिन होता है। और मुझे लगता है कि हर प्रोग्रामर यही कहता है। शुरुआत एक पहाड़ी जैसी होती है, और एक बार जब आप पहाड़ी चढ़ जाते हैं, तो सब आसान हो जाता है। आपकी तरह।
Jonathan: मुझे लगा था कि आप कहेंगे कि आप पहाड़ी पर चढ़ते हैं और फिर पहाड़ी और बड़ी हो जाती है, फिर आप थोड़ा और चढ़ते हैं और वह और बड़ी, और बड़ी, और बड़ी होती जाती है। क्या आपको ऐसा महसूस होता है? एक समय ऐसा आया जब चीज़ें समझ में आने लगीं। क्या कोई ऐसा पल था जब आपने कहा, ठीक है, हाँ, मुझे यह समझ आ गया?
Carl: मेरा मतलब है, सचमुच, किसी चीज़ को पूरी तरह समझने में बहुत समय लगता है, और शुरुआत में ज़्यादातर लोग जो करते हैं, वह यह है कि वे while लूप बहुत इस्तेमाल करते हैं, क्योंकि उन पर आप for लूप के मुकाबले कहीं ज़्यादा नियंत्रण रख सकते हैं। क्योंकि for लूप में आपको शुरू करने से पहले ही बताना पड़ता है कि लूप कब तक चलेगा। और मुझे लगता है... जब मैंने सचमुच सीखा कि for लूप का ठीक से कैसे इस्तेमाल करना है और while लूप का ज़रूरत से ज़्यादा इस्तेमाल करना छोड़ा, तब मुझे लगा कि प्रोग्रामिंग समझ आ गई, या लूप समझ आ गए कि लूप कैसे काम करते हैं।
Jonathan: ठीक है, तो वह एक ऐसा पल था जब आपको लगा कि ठीक है, यह कॉन्सेप्ट मेरी समझ में आ गया। और फिर क्या लूप की आपकी समझ दूसरे कॉन्सेप्ट में भी उतरी, जो धीरे-धीरे और ज़्यादा समझ में आने लगे? मैं अपना अनुभव बताता हूँ। मैं भी Go ट्रैक पर Go सीख रहा हूँ। और लूप तब तक कभी समझ नहीं आए जब तक मैंने लगभग तीन दिन अभ्यास और डॉक्युमेंटेशन से गुज़रते हुए, एक-एक टुकड़ा अलग करके उसे जोड़ने में नहीं लगाए। और लूप को समझने की कोशिश का मेरे कोड की समझ पर, और फंक्शन वगैरह कैसे काम करते हैं, उस पर वाकई बहुत बड़ा असर पड़ा। क्या आपके साथ भी ऐसा ही हुआ, आप क्या कहेंगे?
Carl: Python में अलग-अलग चीज़ें हल करने के लिए आप अक्सर चीज़ों पर इटरेशन करते हैं। Python में मोटे तौर पर आप यही करते हैं। Python में समस्याएँ हल करने के लिए आप चीज़ों पर इटरेशन करते हैं। इसका मतलब है कि लूप को पूरी तरह समझना बहुत ज़रूरी है। जब आप Python के लूप पूरी तरह समझ लेते हैं, तो आप बहुत कुछ कर सकते हैं, क्योंकि सब कुछ ऑब्जेक्ट पर इटरेशन पर ही आधारित है।
Jonathan: यह बढ़िया है। तो आप इस समय पढ़ाई कर रहे हैं, आपने रिकॉर्डिंग से पहले थोड़ा ज़िक्र किया, जैसे गणित, भौतिकी। इस समय आप कौन-कौन से विषय पढ़ रहे हैं? इस समय आप किन विषयों या किन विषयों की पढ़ाई कर रहे हैं?
Carl: मैं प्रोग्रामिंग, गणित और भौतिकी की पढ़ाई कर रहा हूँ।
Jonathan: ठीक है, ये सब आपको कैसे लग रहे हैं?
Carl: बात यह थी कि मैंने उन प्रोग्रामिंग कोर्स की तैयारी के लिए Exercism किया था। और मुझे एहसास हुआ कि अब मुझे उससे बहुत ज़्यादा आता है जितना वे कोर्स कवर करते हैं।
Jonathan: यह तो कमाल है।
Carl: उनसे मैं ज़्यादा नहीं सीखता, क्योंकि उनकी जगह मैं मार्क्सवाद के बारे में सीखता हूँ।
Jonathan: तो Carl, आप यह कह रहे हैं कि लोगों को यूनिवर्सिटी की डिग्री की जगह Exercism ही करना चाहिए?
Carl: मेरा मतलब है, कंप्यूटर साइंस जैसा नहीं, मुझे लगता है वहाँ आपको यह भी थोड़ा और पता चलता है कि कंप्यूटर कैसे काम करता है, बिट्स वगैरह। जबकि XSYSM आपको सिर्फ प्रोग्रामिंग और समस्याएँ हल करना और उसमें शामिल सारा लॉजिक सिखाता है। मुझे लगता है कि यूनिवर्सिटी जाने का महत्व अब भी है।
Jonathan: मैं तो बस आपकी टाँग खींच रहा था, क्योंकि मुझे लगता है कि अगर आप यूनिवर्सिटी की डिग्री वाले लोगों से कहेंगे कि उन्हें कुछ नहीं आता, तो हम बहुत लोगों को नाराज़ कर देंगे। तो हम उस बात को छोड़ देते हैं। और Carl, बताइए, अब मैं आपसे बड़े होने के बारे में कुछ और सवाल पूछता हूँ। आपका... मैं इसे शब्दों में ढालने की कोशिश कर रहा हूँ। जैसे, बचपन में आपको समस्याएँ हल करने में मज़ा आता था? आपको Lego जैसी चीज़ों में दिलचस्पी थी? और मैं यह इसलिए पूछ रहा हूँ क्योंकि अक्सर जब लोग प्रोग्रामिंग करते हैं, तो समस्याएँ हल करने में एक स्वाभाविक मज़ा होता है। तो बड़े होते हुए, आपके पास ऐसे बहुत से शौक या चीज़ें थीं जो ज़्यादा तकनीकी थीं? इसके बारे में थोड़ा बताइए।
Carl: मेरा मतलब है, मुझे Lego पसंद था। मैंने... नहीं। मेरा मतलब है, मैं... जब मैं छोटा था तो गणित में अच्छा था। वह भी समस्याएँ हल करना ही है, अलग-अलग गणित की समस्याएँ हल करने की कोशिश करना। मुझे लगता है, मुझे लगता है कि जिस चीज़ ने मुझे सचमुच प्रोग्रामिंग में लाया, वह बस... टेक्नोलॉजी में मेरी सामान्य दिलचस्पी, मुझे कंप्यूटर बहुत पसंद हैं। और मुझे बहुत पसंद है... धन्यवाद। जब भी किसी के कंप्यूटर में कोई दिक्कत आती है, वे कहते हैं, ओह, क्या आप मेरी मदद कर सकते हैं? जो कभी-कभी थोड़ा चिढ़ाने वाला हो सकता है, लेकिन सचमुच अक्सर बहुत मज़ेदार होता है। तो सचमुच मेरी कंप्यूटर में बहुत दिलचस्पी हो गई और उसी ने मुझे मज़ेदार प्रोग्रामिंग की तरफ ले आया।
Jonathan: ठीक है, तो अब तक, जहाँ तक मैं समझता हूँ, आपने Exercism पर चार-पाँच ट्रैक पूरे किए हैं, या आपने Exercism का इस्तेमाल करके चार-पाँच भाषाएँ सीखी हैं, क्या यह सही है?
Carl: क्या यह सही है? हाँ, मैंने... मैंने छह ट्रैक पर शुरुआत की है। ठीक है। लेकिन ठीक से तो मैं सिर्फ चार ही जानता हूँ।
Jonathan: ठीक है, और उनमें से कौन-कौन? Python, Ruby?
Carl: Python, Ruby, JavaScript और TypeScript, लेकिन Elixir भी मुझे ठीक-ठाक आता है।
Jonathan: ठीक है, तो उन सारी भाषाओं में से सीखने के मामले में आपको सबसे ज़्यादा कौन-सी पसंद आई?
Carl: मुझे Elixir बहुत पसंद है। जिस तरह आप उस भाषा में टाइप करते हैं, वह मुझे बहुत पसंद है। मुझे लगता है कि यह टाइप करने के लिए बहुत मज़ेदार भाषा है, लेकिन यह दूसरी भाषाओं की मेरी आदत से बहुत अलग है। यह किसी हद तक शुरू से शुरुआत करने जैसा है। हाँ। लेकिन मुझे लगता है कि अगर किसी को सचमुच कोई बहुत, बहुत शक्तिशाली भाषा सीखनी है, तो JavaScript मौजूद है। मेरी राय में यह उन सबसे शक्तिशाली भाषाओं में से एक है जो आप जान सकते हैं।
Jonathan: ठीक है, तो JavaScript, अगर मैं गलत हूँ तो सुधारिए, ज़्यादा इंटरप्रेटेड भाषा होगी। यह कहना ठीक होगा? और Elixir शायद ज़्यादा फंक्शनल है। है ना?
Carl: हाँ।
Jonathan: ठीक है, तो ये दोनों अपने स्वभाव में काफी अलग हैं। तो मेरे लिए यह दिलचस्प है कि आपको इन दोनों भाषाओं का पूरा दायरा पसंद है। Elixir में ऐसा क्या है जो आपको मज़ेदार या अच्छा लगता है? क्या आप इसे ठीक से पकड़ पाएँगे?
Carl: मेरा मतलब है, यह वही फंक्शनल प्रोग्रामिंग है। जैसे, आपके पास ये... आपके पास ये फंक्शन होते हैं और आपको उन सबको एक साथ जोड़ना होता है। और इन सारे फंक्शन के साथ आपको समस्या हल करनी होती है। और इसका मतलब मेरे लिए कम से कम यह है कि Elixir का डॉक्युमेंटेशन बहुत ज़रूरी है, सचमुच कुछ करने के लिए। और मेरी राय में Elixir का डॉक्युमेंटेशन बहुत बढ़िया है। तो आप सही मेथड ढूँढने के लिए उसमें खोजते हैं, जो मुझे बहुत मज़ेदार लगता है।
Jonathan: तो यह लगभग पहेली जोड़ने जैसा है, आप कह सकते हैं, जहाँ आप सब कुछ एक साथ जोड़ते हैं ताकि आप समस्या देख सकें।
Carl: सब कुछ एक साथ जोड़ना ताकि आप एक पहेली को साथ-साथ देख सकें। और जैसा मैंने कहा, मुझे यह भी बहुत पसंद है कि आप उस भाषा में कैसे लिखते हैं। तो यह एक बहुत अच्छी पहेली है।
Jonathan: ठीक है, बढ़िया। तो उस ट्रैक पर आप कहाँ तक हैं? आप प्रैक्टिस अभ्यास पूरे कर चुके हैं या अब भी कॉन्सेप्ट अभ्यास पर हैं?
Carl: उस भाषा में कॉन्सेप्ट अभ्यास बहुत हैं। मुझे लगता है करीब 20 या शायद उससे भी ज़्यादा। मैं अभी कॉन्सेप्ट अभ्यास पर हूँ, मैंने करीब... शायद 90% कर लिए हैं, तो मैं लगभग पूरा कर चुका हूँ।
Jonathan: बहुत बढ़िया, यह तो कमाल है। यह सचमुच बहुत बढ़िया है। तो Carl, मैं ज़िंदगी के बारे में थोड़ा और जानना चाहता हूँ, सिर्फ कोडिंग और डेवलपमेंट से आगे। तो कुछ ऐसी चीज़ें कौन-सी हैं जो आपको अपने खाली समय में करने में मज़ा आता है, या आपके शौक? ऐसा कुछ है जो आप सचमुच... अगर आप अपना सारा समय कोडिंग के बाहर किसी चीज़ में लगा सकते, तो वह क्या होता?
Carl: अगर मुझे प्रोग्रामिंग कहने की अनुमति नहीं है, तो मुझे खाली समय में कुछ वीडियो गेम खेलना पसंद है और मुझे साइकिल चलाना भी पसंद है। वह भी मज़ेदार है।
Jonathan: पहाड़ी इलाकों में साइकिल चलाना या सड़क पर?
Carl: सड़क पर साइकिल चलाना।
Jonathan: तो आप साइकिल चलाते हैं? मेरा मतलब है, थोड़ा बताइए, क्योंकि आप स्वीडन में हैं, है ना? हाँ। और जहाँ आप रहते हैं, वहाँ मैदानी इलाका है? पहाड़ी है? वहाँ सुंदर समुद्र है? क्योंकि स्वीडन के बारे में मेरा यही अनुमान है कि वहाँ समुद्र हैं।
Carl: कि वहाँ समुद्र हैं। हाँ, जहाँ मैं रहता हूँ, वहाँ काफी मैदानी इलाका है। लेकिन अगर आप उत्तर की तरफ जाएँ, तो वहाँ ज़्यादा पहाड़ी है।
Jonathan: स्वीडन में इस समय बर्फ पड़ रही है? लगता है अब ठंड शुरू होने वाली है।
Carl: मुझे लगता है पिछले हफ्ते बर्फ पड़ रही थी, लेकिन अब बहुत बर्फ है।
Jonathan: ठीक है, और क्या आप बर्फ में साइकिल चलाते हैं?
Carl: हाँ।
Jonathan: आप चलाते हैं। तो हमारे एक और हैं, आप Brian को जानते होंगे। Brian, वे Elixir के मेंटर में से एक हैं। Brian Underwood, वे भी स्वीडन में रहते हैं, मुझे लगता है स्टॉकहोम में, और वे सर्दी के बीच में दौड़ने जाते हैं, स्वीडन में रात के अंधेरे में दौड़ते हैं। तो मुझे लगा कि यह काफी, मुझे लगा यह काफी, काफी बढ़िया था। तो आप अक्सर साइकिल चलाते हैं, जैसे हफ्ते में एक बार, हफ्ते में दो बार? या यह कोई ऐसी चीज़ है जो आप नियमित रूप से करते हैं? या यह बस...
Carl: मैं, मैं, मैं, जब मैं, मैं यात्रा करता हूँ, तो मैं, मैं साइकिल से बस स्टेशन तक जाता हूँ और फिर बस स्टेशन से बस लेता हूँ।
Jonathan: ठीक है, और फिर आप एक अच्छी जगह ढूँढते हैं और फिर... तो आप बस से यात्रा करते हैं।
Carl: मैं साइकिल से बस स्टेशन तक जाता हूँ और फिर बस से यात्रा करता हूँ।
Jonathan: समझ गया। ठीक है, ठीक है, बढ़िया। और Carl, आप जहाँ रहते हैं, वहाँ से यूनिवर्सिटी कितनी दूर है? आप इस समय घर पर रहते हैं या किराए पर कोई जगह ले रखी है? आपकी व्यवस्था क्या है?
Carl: आपकी व्यवस्था क्या है? मैं घर पर ही रहता हूँ। वह 30 किलोमीटर दूर है। यह, यह, इसमें लगता है, मुझे नहीं पता। ओह, रुकिए। हाँ, 30 किलोमीटर, यह ठीक ही होगा। इसमें करीब 40 मिनट लगते हैं या कुछ ऐसा।
Jonathan: ठीक है, तो यह उतना बुरा नहीं है, लेकिन फिर भी यह काफी लंबा सफर है। तो अब, वास्तविक दुनिया में कदम रखने से पहले, कहने की बात है, आपकी पढ़ाई के कितने साल बाकी हैं? आपकी पढ़ाई के चार और साल बाकी हैं। क्या आप इस समय पहले साल में हैं?
Carl: हाँ।
Jonathan: ठीक है, वाह। तो आपका पहला साल पूरा हो गया और यह चार साल की डिग्री है। ठीक है। और क्या, आपको कोई अंदाज़ा है कि भविष्य में आपका सपना क्या है, या आप करियर के तौर पर क्या करना चाहेंगे, या इसके बारे में कोई सोच?
Carl: मेरा मतलब है, मैं हमेशा से अंतरिक्ष से जुड़ा काम करना चाहता था, क्योंकि मुझे लगता है वह कमाल का है। खगोल भौतिकी जैसा कुछ नहीं, बल्कि शायद अंतरिक्ष से जुड़ी चीज़ों के लिए कुछ प्रोग्रामिंग करना। और हमारे पास यूरोपियन स्पेस एजेंसी है, वह तो कुछ होगा, लेकिन... अगर वह नहीं, तो मुझे लगता है बस... मुझे नहीं पता, कोई आरामदायक बैकएंड जॉब अच्छी रहेगी।
Jonathan: बस एक आरामदायक बैकएंड, आपने यह जिस तरह कहा, वह मुझे बहुत पसंद आया। मेरे कानों में यह इतना सीधा और आसान लगता है। और क्या आपको कभी लगता है कि आप स्वीडन के अलावा कहीं और जाना चाहेंगे? या आपको स्वीडन पसंद है? इस बारे में कुछ सोच? मेरा मतलब है, सुनिए, मैं आपसे ऐसे सवाल पूछ रहा हूँ जिनके बारे में आपने शायद अब तक सोचा भी न हो, क्योंकि ये चुनाव करने से पहले आपके पास अभी कुछ साल बाकी हैं। लेकिन अंतरिक्ष बहुत दिलचस्प लगता है। आप यह कैसे करेंगे? इसकी शुरुआत कैसे करेंगे?
Carl: मुझे सचमुच कोई अंदाज़ा नहीं है। मैंने कभी सचमुच नहीं सोचा कि कैसे, लेकिन... मेरा मतलब है, देखते हैं। यह सचमुच किसी योजना से ज़्यादा एक सपना है। लेकिन आपके पहले सवाल का जवाब देने के लिए, मैंने सोचा है कि शायद कनाडा जैसे कहीं रहूँ, लेकिन मुझे लगता है मैं अब भी दुनिया के उत्तरी हिस्से में ही रहूँगा।
Jonathan: ठीक है, तो ठंड, बर्फ और बर्फ। आप इससे खुश हैं? हाँ। Carl, आपके भाई-बहन हैं?
Carl: मेरा एक छोटा भाई है।
Jonathan: ठीक है, तो आप दो भाई हो। और क्या उसे प्रोग्रामिंग पसंद है? क्या आप उसे सिखाते हैं जो आप सीखते हैं और जानते हैं?
Carl: ओह, उसे सचमुच प्रोग्रामिंग पसंद नहीं है। मुझे नहीं पता।
Jonathan: ओह, सच? तो कोई मेल नहीं है। लेकिन क्या आप उसके साथ गेम भी खेलते हैं?
Carl: हाँ, मैं कभी-कभी उसके साथ गेम खेलता हूँ।
Jonathan: क्या वह आपसे बहुत छोटा है, या मुझे लगता है वह इस समय स्कूल में होगा?
Carl: वह मुझसे करीब पाँच साल छोटा है।
Jonathan: ठीक है, तो यह काफी उम्र का अंतर है। ओह, यह बढ़िया है। यह कमाल है। तो Exercism और आपकी भागीदारी पर वापस आते हैं, तो अब आप Python ट्रैक में मेंटेन कर रहे हैं, अगर मैं गलत नहीं हूँ? हाँ, या योगदान दे रहे हैं। योगदान, ठीक है, बढ़िया। एक दिन मेंटेन भी करेंगे। लेकिन आपको यह कैसा लग रहा है? इस अनुभव से आपने कौन-सी चीज़ें सीखी हैं?
Carl: मेरा मतलब है, Python ट्रैक के लोग बहुत बढ़िया हैं और उनके साथ काम करना बहुत मज़ेदार है... क्योंकि इस समय मैंने बहुत सारा डॉक्युमेंटेशन किया है और आप सचमुच सीखते हैं कि डॉक्युमेंटेशन कैसे करना है, और आपको अक्सर बहुत रिसर्च भी करनी पड़ती है। हाँ, तो आपके सामने बहुत सारा डॉक्युमेंटेशन होता है और आप बहुत कुछ सीखते हैं, क्योंकि आपको दूसरे लोगों का सारा डॉक्युमेंटेशन पढ़ना पड़ता है। तो आप कॉन्सेप्ट में बहुत गहराई तक जाते हैं।
Jonathan: तो योगदान के मामले में यह अलग तरह का काम आपको पसंद आया?
Carl: हाँ, और मेरा मतलब है कि उन डॉक्युमेंटेशन को पढ़ते हुए मैं बहुत कुछ सीखता हूँ।
Jonathan: नहीं, यह सचमुच बढ़िया है। तो इस समय Python में योगदान देने के मामले में, क्या आप सोच रहे हैं कि Elixir और Ruby में भी योगदान देना शुरू करेंगे? आप इसे कैसे देखते हैं?
Carl: मेरा मतलब है, हाँ, मैं Ruby ट्रैक में योगदान देते हुए खुद को देख सकता हूँ, लेकिन Elixir, शायद नहीं। मेरा यह लंबे समय की योजना है कि मैं TypeScript ट्रैक में योगदान दूँगा, लेकिन देखते हैं। मुझे लगता है कि अगले छह महीने मैं सचमुच Python ट्रैक पर ही रहूँगा।
Jonathan: ठीक है, यह बढ़िया है। तो बताइए, क्या आप मुझे TypeScript के बारे में थोड़ा समझा सकते हैं? जैसे, मुझे थोड़ा अंदाज़ा दीजिए कि यह चीज़ क्या है। मैं यह इसलिए पूछ रहा हूँ क्योंकि मैंने इसके बारे में सुना है। लेकिन मैंने सुना है कि यह JavaScript को... मज़बूत बनाता है, लेकिन फिर, अगर मैं पूरी तरह गलत हूँ तो आप बता सकते हैं। यह JavaScript की थोड़ी सुरक्षा जाँच में मदद करता है, लेकिन मैं गलत भी हो सकता हूँ। यह क्या है?
Carl: यह क्या है? मेरा मतलब है, यह काफी अच्छा वर्णन है। मेरे एक फ्रंटएंड क्लास थी और शिक्षक JavaScript इस्तेमाल करते थे और उन्होंने HTML में कुछ बुनियादी JavaScript की। क्योंकि मैंने उस कोड को कॉपी-पेस्ट करके TypeScript में डाला। और TypeScript ने कहा, अरे नहीं, आपको ऐसा नहीं करना चाहिए। यह असुरक्षित है। तो बहुत कुछ इसी के बारे में है, यानी अपने कोड को सुरक्षित रखना। जैसे क्रैश वगैरह से बचाव। तो इसने टाइप लाए, ताकि आपके साथ टाइप का टकराव न हो। और हाँ, आम तौर पर यह आपको सुरक्षित चीज़ें करने को कहता है, असुरक्षित कोड नहीं। हाँ, यह एक अलग भाषा है, लेकिन JavaScript से बहुत मिलती-जुलती है। आप TypeScript को अक्सर JavaScript जैसा मान सकते हैं, बस उस पर कवच चढ़ा दिया गया हो। तो यह सुरक्षित जैसा हो जाता है।
Jonathan: ठीक है, तो यह अपनी अलग भाषा है। मेरे मन में यह धारणा थी कि यह लगभग JavaScript के लिए प्लग-इन जैसा है, लेकिन आप कह रहे हैं कि यह सचमुच पूरी तरह अपनी अलग तरह की भाषा है।
Carl: मुझे लगता है यह है। मेरा मतलब है, दोनों बहुत मिलती-जुलती हैं, तो शायद वे एक ही हैं, जैसे यह एक प्लग-इन है, लेकिन मैं इसे अपनी अलग भाषा मानना पसंद करता हूँ क्योंकि इसमें कुछ बुनियादी फर्क हैं।
Jonathan: मैंने शायद यह कहकर TypeScript के हर फैन को नाराज़ कर दिया है कि यह JavaScript के लिए एक प्लग-इन है। मुझे यकीन है कि इससे कुछ दिलचस्प राय उड़ती फिरेंगी। लेकिन तो आपके लिए TypeScript का सुरक्षा वाला हिस्सा ही इसे और जानने लायक फीचर बनाता है। सही है?
Carl: मेरा मतलब है। जैसे, सचमुच मुझे TypeScript में जो लाया, वह यह था कि मेरी React लाइब्रेरी सामान्य JavaScript को सपोर्ट नहीं करती थी और सिर्फ TypeScript को सपोर्ट करती थी। मुझे TypeScript की आदत हो गई और मुझे लगता है यह बहुत अच्छी है। यह कोड को और साफ़ भी बनाती है जब आप टाइप इस्तेमाल करते हैं, क्योंकि आप सचमुच देख सकते हैं कि ठीक है, यह इनपुट में एक संख्या ले रहा है और आउटपुट में एक स्ट्रिंग दे रहा है। पढ़ना और आसान हो जाता है।
Jonathan: ठीक है, आपने वहाँ React Native का ज़िक्र किया। आपको फ्रंटएंड डेवलपमेंट पसंद है या बैकएंड? मेरी समझ से आपको बैकएंड पसंद है। लेकिन क्या आप फ्रंटएंड में थोड़ा हाथ आज़माते हैं?
Carl: मैंने फ्रंटएंड में थोड़ा हाथ आज़माया है, लेकिन मैं CSS में बहुत कमज़ोर हूँ। इसलिए मैं आम तौर पर कोई अच्छी UI लाइब्रेरी ढूँढकर उसका इस्तेमाल करता हूँ।
Jonathan: जब आप कहते हैं कि CSS में कमज़ोर हैं, तो आपका मतलब क्या है? जैसे, आपको यह समझ ही नहीं आता या यह उलझन भरा है या बहुत सारी चीज़ें हैं... जैसे, इसमें ऐसा क्या है जिससे आप जूझते हैं?
Carl: जिससे मैं जूझता हूँ। यह ऐसा है, यह ऐसा है कि किसी ऑब्जेक्ट को आप बहुत सारी चीज़ें असाइन कर सकते हैं, बहुत बढ़िया। ओह, जैसे जब आप CSS या HTML में कोई लिंक बनाते हैं, तो टेक्स्ट के नीचे एक लाइन आ जाती है। और उसे हटाने के लिए आपको text-decoration जोड़कर none लिखना पड़ता है। तब वह सचमुच हट जाती है। और ऐसी बहुत सारी चीज़ें हैं जो आपको याद रखनी पड़ती हैं। और CSS में सबसे चिढ़ाने वाली बात यह है कि अगर आप कोड में या CSS में कोई बदलाव करते हैं, तो अक्सर किसी और चीज़ में गड़बड़ हो जाती है। तो आपको सचमुच करना पड़ता है, ठीक है, मैंने यह समस्या हल कर ली। अब यह समस्या आ गई और मुझे यह भी हल करनी है, और बस ऐसे ही चलता रहता है।
Jonathan: तो यह बस समस्या को आगे सरका देता रहता है, कहीं और। तो यह बहुत चिढ़ाने वाला होगा। मेरा CSS के साथ शायद इतना ही अनुभव है, सीखते हुए, साथ ही React सीखने की कोशिश करते हुए। और आपके पास बहुत सारे वेरिएबल होते हैं, जैसा आप कहते हैं, बहुत सारे विकल्प। जैसे, आप इसे बढ़ाएँ या इसे सीमित करें? और अगर आप ऐसा करते हैं, तो इस बटन में बदलाव आ जाता है। और पता चलने से पहले ही, अगर आप सावधान नहीं रहे, तो आपके सारे कंपोनेंट अलग-अलग तरह से काम करने लगते हैं। Exercism पर Jeremy, वे CSS में सचमुच बहुत अच्छे हैं, लेकिन मुझे लगता है उन्हें इसके सारे अलग-अलग पहलू इतने अच्छे से पता हैं। तो आपके लिए, फ्रंटएंड उतना पसंद नहीं है जितना बैकएंड वाला हिस्सा।
Carl: फ्रंटएंड के प्रोग्रामिंग वाले हिस्सों में मुझे कोई दिक्कत नहीं है, लेकिन उसका दिखने वाला रूप मुझे सचमुच पसंद नहीं है। लेकिन बैकएंड, कम से कम मेरे लिए, ज़्यादा यह भावना है कि अगर काम कर रहा है, तो उसे बिगाड़ो मत।
Jonathan: हाँ, इसे छेड़ो मत, जैसा है वैसा रहने दो। मुझे दिलचस्प लगता है कि लोग एक या दूसरे को ज़्यादा पसंद करते हैं। क्या आपको पता है कि बैकएंड की चीज़ों में ऐसा क्या है? आप कहते हैं कि आपको यह बात पसंद है कि यह बस काम करता है। क्या बैकएंड में लॉजिक से सोचना और चीज़ों को प्रोसेस करना? क्या यही वह पहलू है जो आपको उसमें सबसे ज़्यादा पसंद है?
Carl: हाँ, मुझे यह इसलिए पसंद है क्योंकि इसमें ज़्यादातर लॉजिक होता है और अलग-अलग डेटाबेस स्ट्रक्चर बनाना होता है। बस इतना ही, भले ही मैं डेटाबेस में अच्छा नहीं हूँ।
Jonathan: यह बढ़िया है। यह कमाल है। तो Carl, मेरे पास आपके लिए कुछ और सवाल हैं। मुझे यह जानकर बहुत अच्छा लगा कि आप कहाँ से हैं और आपको क्या करने में मज़ा आता है। क्या आप कुछ अहम सुझाव या बातें बता सकते हैं जो आप कोड सीखना शुरू करने वाले किसी व्यक्ति को देंगे? और आप यह इस तरह भी कर सकते हैं कि अगर उनकी पृष्ठभूमि ज़्यादा वैज्ञानिक है, तो उस तरह के लोगों के लिए कुछ सुझाव। लेकिन अगर आप इसे बिल्कुल दूसरे नज़रिए से देखें, तो आप क्या कहेंगे कि लगातार करने के लिए एक... एक अच्छी बात क्या है?
Carl: लगातार? मेरा मतलब है, मुझे लगता है कि आपको... जैसे किसी आसान भाषा से शुरू करना चाहिए। Rust, C++ या C जैसी भाषा से शुरू न करें। लेकिन फिर सचमुच। जैसे, जब... मुझे पता है Jun ने इस तरह थोड़ा कहा था, लेकिन... जैसे जब आप कोई समस्या देखें, तो समस्या पढ़िए, एक ब्रेक लीजिए, सोचिए कि आप उसे कैसे हल करेंगे और फिर वापस आकर उसे सचमुच हल कीजिए, क्योंकि... अच्छा होता है कि आपका दिमाग यह प्रोसेस कर ले कि आप समस्या सचमुच कैसे हल करने वाले हैं। दूसरी बात मुझे लगती है कि... सचमुच कोशिश कीजिए कि बहुत तेज़ न बढ़ें। अभी थोड़ा कीजिए, फिर थोड़ा कीजिए, क्योंकि मान लीजिए आप बहुत सारे कॉन्सेप्ट अभ्यास कर रहे हैं, तो बेहतर है कि आप उस जानकारी को बैठने दें, बजाय इसके कि सारे कॉन्सेप्ट एक ही दिन में कर डालें, और उस समय आप शायद सिर्फ उलझन में पड़े रह जाएँगे।
Jonathan: और सब कुछ कैसे लागू होता है। ठीक है, बढ़िया। तो जल्दबाज़ी न कीजिए। खुद को चीज़ों के बारे में सोचने की जगह दीजिए। और क्या आप कहेंगे कि धीरे चलना, यानी धीरे-धीरे चलकर चीज़ों को गहराई तक बैठा लेना, तेज़ी से सतह छू लेने से बेहतर है? ऐसा ही लगता है जो आप कह रहे हैं।
Carl: कुछ भाषाओं में शायद आपको सिर्फ सिंटैक्स और... और बुनियादी चीज़ें सीखनी होती हैं और फिर वास्तविक दुनिया के ज़्यादा करीब के परिदृश्यों में उतरना होता है और तब गहराई में जाना होता है। JavaScript की बात करें, तो मैंने बुनियादी बातें सीखीं और फिर मैंने React प्रोजेक्ट किए और वहाँ... जैसे कुछ नई चीज़ें सीखीं और भाषा में और गहराई तक गया।
Jonathan: ओह, यह बढ़िया है। ठीक है, अच्छा। कमाल है। ठीक है, तो Carl, इस हफ्ते के लिए मेरे पास आपसे एक और सवाल है। इस हफ्ते समुदाय के लिए आपका क्या सुझाव है? आपका खास सुझाव, और यह लगभग कुछ भी हो सकता है। यह हो सकता है, आप जानते हैं, बर्फ में साइकिल चलाने जाइए। यह हो सकता है कि किसी बर्फीली ठंडी झील में कूद जाइए, या स्वीडन में हैं तो सॉना चले जाइए। इस हफ्ते समुदाय के लिए आपका क्या सुझाव होगा?
Carl: हाँ, मेरा मतलब है, मैं नहीं, मुझे लगता है यह, यह, यह, बर्फ में साइकिल चलाना बहुत कठिन है। तो मैं, मैं लोगों को इसका सुझाव नहीं दूँगा।
Jonathan: हाँ।
Carl: लेकिन मुझे लगता है मैं वही कहूँगा जो पहले कहा था। देखिए, अगर आप किसी समस्या पर अटके हुए हैं, तो एक ब्रेक लीजिए। वहाँ बैठकर कुछ और घंटे सिर्फ उसे हल करने की कोशिश मत कीजिए। बेहतर है कि आप थोड़ा ब्रेक लें और फिर समस्या पर वापस आएँ।
Jonathan: ठीक है, बढ़िया। तो इस हफ्ते आपका सुझाव है कि अगर आपको कुछ सीखना है, तो धीरे चलिए, ब्रेक लीजिए, कॉफी पीजिए। आप कॉफी पीते हैं?
Carl: अभी नहीं।
Jonathan: अभी नहीं। ठीक है। कभी नहीं।
Carl: मैं सचमुच सिर्फ पानी पीता हूँ। मेरे बारे में खास बात शायद यही है।
Jonathan: ठीक है, कमाल है। यह आगे की ज़िंदगी में आपका बहुत पैसा बचाएगा, मैं बता दूँ। यह कमाल है। ठीक है, Carl, आज आपसे बात करना सचमुच सौभाग्य की बात रही। आपके समय के लिए धन्यवाद और अलग-अलग ट्रैक में आपके सारे योगदान के लिए और Exercism से जुड़े रहने के लिए धन्यवाद। हम सचमुच इसकी कद्र करते हैं। पिछले कुछ महीनों में आपको जानकर मुझे सचमुच बहुत अच्छा लगा, खासकर उस Discord सर्वर के ज़रिए जो हमने चलाया था। मुझे लगता है वह Ex-Orts था, क्या आप Elixir Discord पर थे?
Carl: कोहोर्ट में था या एक्सपर्ट्स में।
Jonathan: हाँ, मुझे यकीन है कि मैंने आपको वहाँ काफी देखा, जो बढ़िया था। और हाँ, योगदान देने के लिए धन्यवाद। बहुत अच्छा रहा। तो जल्द ही बात करने की उम्मीद के साथ, और आपके समय के लिए बहुत-बहुत धन्यवाद। तो बस कॉल पर बने रहिए और हम वहीं से सब समेट लेंगे। लेकिन सभी का सुनने के लिए धन्यवाद। आपकी बातचीत मेरे, Jonathan और Carl के साथ हुई, और जल्द ही फिर मिलने की उम्मीद। बाय।
Carl: बाय।
हमारी कम्युनिटी के सदस्यों को सुनिए, उनसे सीखिए और प्रेरणा पाइए।