जैसा कि हमने पिछले महीने के अपने ब्लॉग पोस्ट में बताया था, अगले साल के लिए हमारा एक मुख्य लक्ष्य यह है कि हम ट्रैकों की संरचना दोबारा बनाएँ, ताकि इन्हें सीखने में छात्रों को आनंद आए और मेंटर के लिए यह काम आसान हो। पिछले एक साल में हमने इस दिशा में बहुत प्रगति की है, खासकर Maud de Vries के नेतृत्व में चले Track Anatomy प्रोजेक्ट के साथ। इसी काम से हमें पता चला कि ट्रैकों की मौजूदा संरचना में कुछ बुनियादी समस्याएँ हैं, जिन्हें हम प्राथमिकता के साथ सुलझाना चाहते हैं। पिछले दो महीनों से हमारी लीडरशिप टीम यह चर्चा कर रही है कि इस मामले में हमें कैसे आगे बढ़ना चाहिए और ट्रैकों को उस स्थिति में लाने के लिए क्या करना होगा जहाँ अलग-अलग भाषाओं के आइडियम सही समय पर सिखाए जा सकें।
आज मुझे यह घोषणा करते हुए बहुत खुशी हो रही है कि हम The University of Chicago के James Evans और Gary Lupyan के साथ मिलकर एक प्रोजेक्ट शुरू कर रहे हैं, जिसे Sloan Foundation फंड दे रहा है। इससे हमें Exercism के ट्रैकों को एकदम बुनियाद से नए सिरे से सोचने और उन बदलावों को कई भाषाओं में लागू करने पर पूरा ध्यान और ऊर्जा लगाने का मौका मिलेगा। साथ ही, मुझे यह बताते हुए खुशी है कि हमने इस प्रोजेक्ट का नेतृत्व करने के लिए Erik Schierboom को टीम में शामिल किया है।
पृष्ठभूमि
पिछले दो सालों से James और Gary यह जाँच रहे हैं कि एक प्रोग्रामर जिन भाषाओं का इस्तेमाल करता है, उनका असर उसकी कार्यकुशलता, रचनात्मकता और सहयोग पर कैसे पड़ता है। Sloan Foundation से मिले एक अनुदान के सहयोग से उन्होंने पाया कि इस शोध का एक अहम हिस्सा यह समझना है कि प्रोग्रामर अलग-अलग भाषाएँ कैसे सीखते हैं, और उनका मौजूदा ज्ञान नई चीज़ें सीखने में कैसे मदद करता है या रुकावट डालता है। Exercism के भाषा ट्रैकों को लेकर हम भी खुद से यही सवाल पूछते रहे हैं। किसी का पिछला अनुभव यह कैसे तय करता है कि हमारे ट्रैकों में उसे कौन-से रास्ते चाहिए, और मेंटर के साथ बातचीत का कौन-सा तरीका और कौन-सी सामग्री उस पर सबसे अच्छी तरह काम करती है?
James, Gary और Sloan Foundation ने अपने कुछ संसाधन इस काम में लगाने का फैसला किया है, ताकि Exercism अपने ट्रैकों को इस तरह नए सिरे से बनाने पर ध्यान दे सके कि उनमें हर भाषा की अपनी खास बातें उभरकर सामने आएँ और छात्र के मौजूदा अनुभव के हिसाब से वे ज़्यादा व्यक्तिगत बनें।
प्रोजेक्ट
आने वाले हफ्तों और महीनों में हम इस बारे में ब्लॉग पर बहुत कुछ लिखेंगे, लेकिन अभी मैं उन मुख्य उद्देश्यों की रूपरेखा बताना चाहूँगा जिन्हें हम इस प्रोजेक्ट से हासिल करना चाहते हैं, और यह कि इनका Exercism पर क्या असर पड़ेगा।
ट्रैकों के मूल हिस्से नए सिरे से सोचना: हमारे ट्रैकों का उद्देश्य प्रोग्रामिंग भाषाएँ सिखाना है, प्रोग्रामिंग खुद नहीं। हम इसे अपने ट्रैकों में उतारना चाहते हैं और अपने मुख्य रास्तों को इस तरह नए सिरे से सोचना चाहते हैं कि उनका पूरा ध्यान उन आइडियम को सिखाने पर रहे जो किसी भाषा को खास बनाते हैं। हम ऐसे नए अभ्यास बनाने और विकसित करने की योजना बना रहे हैं जिनमें हर अभ्यास किसी एक आइडियम पर ही केंद्रित हो। उदाहरण के लिए, Ruby में हमारे पास ऐसा अभ्यास हो सकता है जो लूप के बजाय इन्यूमरेशन सिखाए, या JavaScript में प्रोटोटाइप या बाइंडिंग का कॉन्सेप्ट।
मुख्य अभ्यासों के लिए पूरी स्वचालित विश्लेषण कवरेज बनाना: हम चाहते हैं कि छात्र किसी ट्रैक के मुख्य हिस्से से तेज़ी से गुज़र सके। अभ्यास डिज़ाइन करते समय हम जानबूझकर इस पर ध्यान देंगे कि संभावित हलों के लिए 95% स्वचालित विश्लेषण कवरेज कैसे दिया जाए। इसका मतलब है कि मेंटरों का काम उन 5% छात्रों के साथ होगा जिन्हें सचमुच उनकी मदद चाहिए, या फिर ज़्यादा दिलचस्प और अलग-अलग तरह के अतिरिक्त अभ्यासों पर। इसी क्रम में हम ऐसे टूल बनाना चाहते हैं जिनसे हमारे मेंटर एनालाइज़रों में योगदान दे सकें, बिना कोडबेस की गहराई में उतरे।
पिछले अनुभव के आधार पर हर छात्र के लिए अलग स्वचालित मदद और मेंटर के लिए अलग संकेत देना: ऊपर बताए काम पूरे होने के बाद हम यह देखना चाहते हैं कि छात्र को मिलने वाले फीडबैक को उसके पिछले अनुभव के हिसाब से कैसे ढाला जाए, चाहे वह फीडबैक छात्र को अपने आप मिलने वाले स्वचालित जवाबों के रूप में हो, चाहे मेंटर को दिए जाने वाले संकेतों के रूप में। जब कोई एक खास भाषा सीख रहा हो, तो उसे किस तरह का फीडबैक चाहिए, यह काफी हद तक उसके पहले के ज्ञान पर निर्भर करता है। हर किसी का पहले का ज्ञान अलग होता है, जिससे वे नई बातें जोड़ते हैं, और पुराना ज्ञान छोड़ पाना कभी-कभी ज़्यादा मुश्किल होता है। इसलिए किसी के पिछले अनुभव को ध्यान में रखकर हम छात्रों को उनके लिए ढाला हुआ और ज़्यादा काम का अनुभव दे सकते हैं।
ब्राउज़र में कोडिंग की सुविधा जोड़ना: मुख्य ट्रैकों को नए सिरे से सोचने के साथ-साथ हम अपनी सबसे ज़्यादा माँगी गई सुविधाओं में से एक जोड़ने जा रहे हैं: ब्राउज़र में अभ्यास हल करने की सुविधा। यह CLI के इस्तेमाल की जगह नहीं लेगा, क्योंकि हम मानते हैं कि CLI से सीखना बहुत काम का तरीका है, लेकिन इससे लोग किसी भाषा और उससे जुड़े टूल इंस्टॉल किए बिना उसे जल्दी आज़मा और समझ सकेंगे।
फंडिंग
James और Gary के ज़रिए Sloan Foundation से मिलने वाली फंडिंग की वजह से Jeremy, Nicole, Charles और Karlo अगले 12 महीनों में अपना ज़्यादातर समय उन प्रोडक्ट से जुड़े कामों, डेवलपमेंट के कामों और आर्किटेक्चर पर लगा सकेंगे जो ऊपर बताए उद्देश्यों को पूरा करने के लिए ज़रूरी हैं।
इससे हमें Erik को भी टीम में शामिल करने का मौका मिलेगा, जो प्रोजेक्ट के "पाठ्यक्रम" वाले हिस्से का नेतृत्व करेंगे। Erik 2016 से Exercism में एक अहम योगदानकर्ता रहे हैं। वे C#, F# और Scala के ट्रैक संभालते रहे हैं, एनालाइज़र बनाते रहे हैं, अभ्यास डिज़ाइन करते रहे हैं, project-specifications में योगदान देते रहे हैं और मेंटर का काम करते रहे हैं। उन्हें प्रोग्रामिंग भाषाओं का शौक भी है और उन्होंने Exercism के काफी सारे ट्रैक पूरे किए हैं। सबसे अहम बात यह है कि Exercism की पूरी कम्युनिटी उन्हें पसंद करती है और उनका सम्मान करती है। इसलिए वे यह समझने में हमारी बहुत अच्छी मदद कर सकते हैं कि ऐसे ट्रैक और सिस्टम कैसे बनाए जाएँ जिनमें 50 अलग-अलग प्रोग्रामिंग भाषाओं की समानताएँ और अंतर साफ दिखाई दें।
इस काम में शामिल होना
हम इस प्रोजेक्ट में मदद के लिए एक अलग टीम बनाएँगे। यह टीम ट्रैकों में आइडियम तय करने, नए मुख्य अभ्यास डिज़ाइन करने, एनालाइज़रों के लिए फ्रेमवर्क और मानक बनाने में हमारी मदद करने, और यह सोचने की ज़िम्मेदारी संभालेगी कि पहले से मौजूद ज्ञान सीखने पर कैसे असर डालता है।
अगर आप एक अनुभवी मेंटर और मेंटेनर हैं और इस काम में शामिल होना चाहते हैं, तो हमें आपसे सुनना बहुत अच्छा लगेगा। Slack पर मुझसे संपर्क कीजिए।
निष्कर्ष
हम इस अगले चरण को लेकर बहुत उत्साहित हैं। हमें भरोसा है कि इससे Exercism बड़े कदम आगे बढ़ेगा और हमारे छात्रों और मेंटरों, दोनों की बेहतर सेवा कर पाएगा। हम James, Gary और Sloan Foundation के सहयोग के लिए बहुत आभारी हैं।