Open Source Society University – कंप्यूटर साइंस के स्व-अध्ययन के लिए मुफ़्त रोडमैप
(github.com/ossu)- OSSU curriculum दुनिया की अग्रणी यूनिवर्सिटियों की online सामग्री के ज़रिए कंप्यूटर साइंस की पूर्ण शिक्षा मुफ़्त में उपलब्ध कराता है
- यह introduction, core, advanced और final project के ज़रिए यूनिवर्सिटी bachelor स्तर के कंप्यूटर साइंस curriculum की संरचना को दोहराता है
- सभी lectures और assignments मुफ़्त हैं या अधिकांशतः मुफ़्त हैं, हालांकि कुछ evaluated assignments पर शुल्क लग सकता है
- Discord community जैसी सक्रिय global learner support network और सामग्री updates लगातार संचालित होते रहते हैं
- learners स्वतंत्र रूप से या समूह में, अपनी स्थिति के अनुसार लचीले ढंग से प्रगति तय कर सकते हैं और चयन कर सकते हैं
OSSU क्या है और यह क्यों महत्वपूर्ण है
OSSU(Open Source Society University) एक open source curriculum है, जिसे इस तरह डिज़ाइन किया गया है कि कोई भी व्यक्ति बिना खर्च के कंप्यूटर साइंस में औपचारिक डिग्री-स्तर की शिक्षा स्वयं प्राप्त कर सके। यह Harvard, MIT, Princeton जैसी दुनिया की शीर्ष यूनिवर्सिटियों के public lectures और resources का उपयोग करता है, और इसका लक्ष्य एकबारगी ज्ञान देना नहीं, बल्कि संतुलित theory·practice·application आधारित learning experience प्रदान करना है।
- सभी learning materials online उपलब्ध उच्च-गुणवत्ता वाले मुफ़्त resources में से चुने गए हैं
- CS2013 standard की तरह, यह अंतरराष्ट्रीय computer engineering के बुनियादी bachelor curriculum मानकों को गंभीरता से प्रतिबिंबित करता है
- इसका मुख्य लक्ष्य ऐसे लोग हैं जो स्वयं प्रेरित रहकर लगातार सीखने की आदत बना सकें और global learning community से मदद ले सकें
curriculum की संरचना और विशेषताएँ
- Introduction to CS : कंप्यूटर साइंस और programming की बुनियादी अवधारणाओं और उसके आनंद का अनुभव किया जा सकता है। इसमें Python programming, computation theory, basic data structures और algorithms आदि शामिल हैं
- Core CS : यह यूनिवर्सिटी curriculum के तीसरे वर्ष के समकक्ष भाग है, जिसमें programming(functional, object-oriented, software design), mathematics(discrete math, statistics, probability, calculus), systems(computer architecture, OS, networking), theory(algorithms, NP problems आदि), security, applications और ethics को अनिवार्य रूप से शामिल किया गया है
- Advanced CS : यह अंतिम वर्ष के पाठ्यक्रम के समकक्ष है। इसमें advanced programming, systems, theory, information security और advanced mathematics में रुचि के अनुसार क्षेत्र चुना जा सकता है
- Final Project: सीखी गई जानकारी का उपयोग करके वास्तविक project किया जाता है, और global peer learners के साथ परिणाम साझा व सत्यापित किए जाते हैं। इसे practical skill proof और job portfolio के रूप में उपयोग किया जा सकता है
सीखने का तरीका और लागत
- curriculum को स्वतंत्र रूप से या समूह में पढ़ा जा सकता है
- प्रत्येक course को क्रम से पूरा करने की सिफारिश की जाती है, लेकिन यदि कुछ पहले से आता है तो उसे छोड़ा भी जा सकता है
- सभी lectures online मुफ़्त उपलब्ध हैं। कुछ platforms(Coursera, edX आदि) पर assignment/exam/project evaluation के समय शुल्क लग सकता है, लेकिन अधिकांश मामलों में सीखना स्वयं मुफ़्त है। आर्थिक बोझ कम करने के लिए financial aid(छात्रवृत्ति/Financial Aid) की जानकारी भी दी जाती है
- learning progress और expected completion date को manage करने में मदद के लिए Google स्प्रेडशीट template दिया गया है
community और support
- प्रतिभागियों के लिए Discord server चलाया जाता है – lecture discussion, questions और peer connection सक्रिय रूप से होते हैं
- GitHub Issue और curriculum improvement suggestions जैसे सक्रिय feedback channels मौजूद हैं
- LinkedIn profile में OSSU completion details जोड़ी जा सकती हैं
आधिकारिक साइट और GitHub repository के ज़रिए नवीनतम curriculum देखना अनुशंसित है
curriculum की विस्तृत सूची
prerequisites
- core CS के लिए high school स्तर की mathematics(अल्जेब्रा, ज्योमेट्री, pre-calculus) अनिवार्य है
- advanced CS केवल core courses पूरे करने के बाद चुना जा सकता है
- Advanced systems subjects के लिए high school स्तर की basic physics knowledge आवश्यक है
Introduction to CS
- कंप्यूटर साइंस की पहली सीढ़ी। इसमें basic computation, imperative programming, data structures, algorithms आदि का परिचय दिया जाता है
- अनिवार्य lecture: 'Introduction to Computer Science and Programming using Python' (14 सप्ताह)
Core CS
programming
- functional/object-oriented/testing/patterns/typing/language diversity आदि पर व्यापक अभ्यास
- Systematic Program Design, Programming Languages (A–C), Object-Oriented Design, Software Architecture आदि
mathematics
- discrete math, mathematical proof, basic statistics, O-notation, probability और calculus शामिल हैं
development tools और environment
- terminal, shell scripting, vim, command line, version control(git) जैसे व्यावहारिक रूप से आवश्यक tools
systems
- hardware से लेकर operating system और network तक, कंप्यूटर कैसे काम करता है इसकी समग्र समझ
- उदाहरण: Nand to Tetris project, OS Three Easy Pieces, Networking आदि
theory
- algorithm analysis, divide and conquer, graph, dynamic programming, NP problems आदि शामिल हैं
security
- information security basics, secure coding, vulnerability analysis, network/cryptography आदि के elective subjects शामिल हैं
applications
- database, machine learning, computer graphics, software engineering जैसे practical application क्षेत्रों तक व्यापक कवरेज
ethics
- technology का सामाजिक संदर्भ, professionalism, intellectual property rights, data privacy आदि के माध्यम से engineers के लिए आवश्यक ethics पर ज़ोर
Advanced CS
- career/interest के अनुसार चयन। parallel programming, compilers, Haskell/Prolog जैसी languages, software debugging/testing
- computer architecture, numerical analysis/logic/probability, computation theory, information security, system building आदि के व्यापक विकल्प
Final Project
- practical project का चयन, design, implementation और sharing
- उदाहरण विकल्प: full-stack service, robotics, data mining, big data, IoT, cloud computing, data science, game development आदि
- स्वयं भी कर सकते हैं या recommended course का उपयोग कर सकते हैं
learning पूरा होने के बाद
- CS क्षेत्र में bachelor degree के समकक्ष ज्ञान अर्जित होने का प्रमाण
- नौकरी की तैयारी, advanced reading(List provided), offline developer meetups आदि की सिफारिश
- नई technologies(Elixir/Rust/Idris languages आदि) को explore करने के लिए प्रोत्साहन
संचालन नियम और टीम
- OSSU आचार संहिता का पालन करें
- GitHub पर अपनी progress दिखाने और manage करने की विधि(kanban उपयोग) की जानकारी
OSSU के प्रमुख संचालक
- Eric Douglas(OSSU founder), Josh Hanson(technical maintainer), Waciuma Wanjohi(academic maintainer), तथा दुनिया भर के अन्य contributors
समापन
OSSU दुनिया भर के किसी भी व्यक्ति को मुफ़्त में कंप्यूटर साइंस की औपचारिक डिग्री-स्तर की क्षमता विकसित करने का रास्ता देता है, ताकि वे आधुनिक IT उद्योग के practical work और career paths में व्यापक रूप से प्रवेश कर सकें.
लचीली प्रगति, कठोर मानक, global community और उच्च-गुणवत्ता वाली मुफ़्त सामग्री का संयोजन इसे अन्य public curriculums की तुलना में एक बड़ी ताकत बनाता है.
4 टिप्पणियां
> “CS मत सीखो” जैसी खबरें मुझे लगती हैं कि असली मतलब को मिस कर देती हैं।
अनुवाद बड़ा मज़ेदार बन पड़ा है, हैरानी होती है हाहा
OSSU Open Source Society University - Computer Science स्वयं सीखें
इसे GeekNews के शुरुआती दिनों में पेश किया गया था। इस बीच इसमें काफ़ी कुछ जोड़ा गया है।
Hacker News राय
मैं एक अनुभवी इंजीनियर के रूप में सोचता हूँ कि अगर आप learners की मदद करना चाहते हैं, तो OSSU सचमुच एक बहुत अच्छी जगह है
मैं एक educational program चलाता हूँ जो छात्रों को self-directed तरीके से computer science पढ़ने में मदद करता है. हम अक्सर OSSU curriculum को reference material के रूप में भी इस्तेमाल करते हैं
self-learning के कई फायदे हैं, लेकिन छात्रों को यह ज़रूर समझना चाहिए कि कुछ सावधानियाँ भी हैं
‘signaling’ और networking आपको खुद कहीं अधिक मेहनत से करनी पड़ती है, और university से जुड़े होने पर जो social फायदे मिलते हैं, वे self-learning में कम होते हैं
degree न होना एक तरह से ‘marked’ स्थिति है; इसकी व्याख्या के लिए यहाँ देखें
अगर गलती हो जाए या मुश्किल आए, तो उसका कारण आसानी से degree न होने पर डाल दिया जाता है
कुछ hiring managers को लगता है कि बिना degree वाले व्यक्ति को hire करना politically risky है, इसलिए नौकरी पाना ही मुश्किल हो सकता है
यह असंभव नहीं है, लेकिन इसी वजह से हम शुरुआत से ही इसकी तैयारी करके इसे पार करने की कोशिश करते हैं
self-learning का फायदा है तेज learning speed, बेकार के steps दोहराए बिना हर चीज़ को context के साथ सीख पाना
अगर लगे कि fundamentals कमज़ोर हैं, तो बाद में वापस जाकर सीखा जा सकता है
मुझे लगता है कि tech roles में यह सीखने का तरीका लगभग अनिवार्य है, लेकिन यह हर छात्र के लिए सही नहीं है
अफ़सोस की बात है कि वास्तविकता में financial स्थिति के कारण बहुत से लोग college नहीं जा पाते और self-learning करने के लिए ‘मजबूर’ होते हैं
अगर trade-offs ठीक से न पता हों, तो यह और कठिन हो सकता है
संदर्भ: Divepod
मैंने कई लोगों की self-learning journey में mentoring की है
मैंने high school graduation के तुरंत बाद कम उम्र की नासमझी में CS degree ठीक से पूरी नहीं की और अच्छे मौके गँवा दिए
मुझे व्यक्तिगत रूप से लगता है कि Teach Yourself CS एक बेहतर alternative है
मैं इस बात का उदाहरण हूँ कि सिर्फ self-learning के सहारे भी career बनाया जा सकता है
मैं पहले ही 20 साल से ज़्यादा समय से industry में काम कर चुका हूँ
लेकिन, अगर आप यह रास्ता चुनते हैं, तो कुछ companies और roles ऐसे हैं जहाँ आप ‘कभी’ नहीं पहुँच पाएँगे
ये companies ज़्यादातर top-tier firms, सबसे ऊँची salary देने वाली जगहें, और अच्छे conditions वाली jobs होती हैं
degree से भी ज़्यादा अहम है alumni network. degree होने पर एक ‘बड़ा club’ होता है जहाँ उसी school के लोग आपको hire करने की प्रवृत्ति रखते हैं
self-learning करने पर आप वह network कभी नहीं पा सकते
वास्तविकता क्या है? आपके लिए अक्सर वही नौकरियाँ बचती हैं जिन्हें बाकी लोग ठुकरा देते हैं — अजीब जगहें, scams, underfunded startups, या पहले से संकट में चल रही companies
बहुत कम ही अच्छा role मिलता है, और मिले भी तो लंबे समय तक टिकना मुश्किल हो सकता है
salary कम होती है, और exploit होने का risk भी ज़्यादा रहता है
multiple offers मिलना भी कठिन होता है, इसलिए market में आपकी bargaining power घटती है
इससे पूरा career आर्थिक रूप से बिल्कुल अलग track जैसा लग सकता है
नौकरी ढूँढना बहुत कठिन होता है, और आपको दोगुनी मेहनत करनी पड़ती है
खुद से भी, और अपने peers से भी, ‘क्या मैं सच में योग्य हूँ?’ जैसा शक बार-बार झेलना पड़ता है
एक गलती का असर बहुत बड़ा हो सकता है
फिर भी, कुछ न करने से तो बेहतर है, लेकिन अगर मौका हो तो school जाना ज़्यादा अच्छा विकल्प है
मैं आपके अनुभव को कम करके नहीं आँकना चाहता, लेकिन मैंने 100% self-learning के साथ बड़ी companies, unicorns, startups जैसी कई तरह की जगहों पर काम किया है
मैंने कुछ वर्षों तक software developer के रूप में काम किया, फिर CS degree के लिए वापस school गया
इस बात में कुछ हद तक सच्चाई है, लेकिन ज़्यादातर यह सिर्फ शुरुआती चरण में लागू होती है और तब, जब आपकी skill अपने peer group के निचले हिस्से में हो
मैं ADHD के काफ़ी करीब हूँ, और autism spectrum पर भी कुछ हद तक हूँ
इस चर्चा में अक्सर यह भुला दिया जाता है कि computer science पढ़ने की सबसे बड़ी वजह सिर्फ नौकरी पाना या job skills बढ़ाना ही नहीं है
मुझे सोचकर हैरानी होती है कि क्या curriculum के ‘free and open source’ lectures तक सीमित होने के कारण उसकी अपनी कुछ सीमाएँ नहीं हैं
अगर सही से पढ़ना है, तो quality materials पर पैसे खर्च करने में हिचकना नहीं चाहिए
मैं इस राय से सहमत हूँ
मुझे लगता है कि degree अधिकांश social कमज़ोरियों की भरपाई कर देती है
बहुत सी टिप्पणियों में school network देता है, या कुछ कंपनियाँ सिर्फ खास schools के लोगों को hire करती हैं — ये बातें आपस में मिलकर सामने आती हैं
यह सही है कि university/career connections के ज़रिए job opportunities बढ़ती हैं
लेकिन जैसे-जैसे career आगे बढ़ता है, university के बाद बने connections की ताकत ज़्यादा हो जाती है
जिन positions के लिए किसी खास university degree या PhD की ज़रूरत होती है, वहाँ network से ज़्यादा उसका मतलब एक ‘signal’ के रूप में होता है
यानी hiring side के लिए यह एक भरोसेमंद संकेत है, जिससे उन्हें और पूछताछ की ज़रूरत नहीं पड़ती
self-learners को इसे bypass करना पड़ता है या अतिरिक्त मेहनत करनी पड़ती है
उन्हें अपने connections या अपने काम के ज़रिए ध्यान खींचना होता है, या referrals के सहारे सामान्य hiring process से बाहर निकलकर मौका बनाना पड़ता है
जब मैं यह सुनता हूँ कि “मौका ही पूरी तरह गायब हो जाता है”, तो मुझे यह बात याद आती है: luck strategy नहीं है, लेकिन कोशिशों की संख्या बढ़ाओ तो lucky होने की संभावना बढ़ती है
मुझे समझ नहीं आता कि असल लक्ष्य क्या है
अफ़सोस होता है कि ऐसी चर्चाओं में दोनों पक्ष अक्सर ज़रूरत से ज़्यादा defensive हो जाते हैं
वाकई कमाल है