- Python सीखने के प्रयोग में भाषाई क्षमता और problem-solving क्षमता ने learning speed का सबसे अच्छा अनुमान लगाया, जिससे संकेत मिलता है कि coding की शुरुआत गणित की तुलना में भाषा सीखने के अधिक करीब हो सकती है
- शोधकर्ताओं ने 42 लोगों को शामिल कर Codecademy के Learn Python के 10 lessons कराए, और कोर्स पूरा करने वाले 36 प्रतिभागियों के pre-test, quizzes और final assignments की तुलना की
- learning achievement मुख्य रूप से problem-solving और working memory से अलग-अलग दिखा, लेकिन learning speed में general cognitive ability और language aptitude दोनों ने भूमिका निभाई
- language aptitude ने Python सीखने की speed में अंतर का लगभग 20% समझाया, जबकि math pre-test ने speed में अंतर का सिर्फ 2% समझाया और achievement से उसका कोई संबंध नहीं था
- resting-state EEG की beta oscillations भी तेज learning और अधिक programming knowledge से जुड़ी थीं, लेकिन causal relationship और mechanism अभी स्पष्ट नहीं हैं
Python learning का अनुमान लगाने वाली क्षमताएं
- University of Washington के शोधकर्ताओं की study के अनुसार, Python सीखने में भाषाई क्षमता और problem-solving क्षमता learning speed का सबसे अच्छा अनुमान लगाती हैं
- यह study Scientific Reports में प्रकाशित हुई, और behavioral tests व brain activity measurements के जरिए तुलना की गई कि प्रतिभागी programming कितनी जल्दी और कितनी अच्छी तरह सीखते हैं
- शुरुआती परिकल्पना यह थी कि Python या Java जैसी programming languages सीखना, French, Spanish, Chinese जैसी natural languages सीखने से उम्मीद से ज़्यादा मिलता-जुलता हो सकता है
study design और measurement method
- कुल 42 लोग भर्ती किए गए और उन्होंने Codecademy का “Learn Python” online coding course किया
- course में 45 मिनट के 10 lessons थे
- study को अंत तक पूरा करने वाले प्रतिभागी 36 थे
- online classes से पहले प्रतिभागियों ने कई pre-tests किए
- math ability
- working memory
- problem-solving
- second-language learning ability
- classes के दौरान online software में शामिल quizzes के जरिए learning speed और performance track की गई
- study के अंत में overall coding knowledge जांचने के लिए quiz और coding assignment अलग से कराए गए
learning speed और achievement को अलग करने वाले factors
- प्रतिभागियों ने Python सीखने की speed और final programming ability में अलग-अलग results दिखाए
- Python को उन्होंने कितना अच्छा सीखा, यह मुख्य रूप से general cognitive ability पर निर्भर था
- problem-solving ability
- working memory
- Python को उन्होंने कितनी जल्दी सीखा, इसे general cognitive ability और language aptitude ने मिलकर समझाया
- language aptitude ने Python learning speed में अंतर का लगभग 20% हिस्सा explain किया
- math pre-test performance ने learning speed में अंतर का सिर्फ 2% समझाया, और Python को कितनी अच्छी तरह सीखा गया, उससे उसका बिल्कुल संबंध नहीं था
- इन results में coding सीखना mathematical ability की तुलना में भाषाई क्षमता पर अधिक निर्भर दिखता है
EEG से मिले अतिरिक्त evidence और limitations
- online learning से पहले प्रतिभागियों का resting-state EEG measurement किया गया
- EEG, खोपड़ी के जरिए रिकॉर्ड होने वाले electrical patterns से brain activity मापने की method है
- resting-state electrical activity में कई patterns होते हैं, जिनमें से एक धीमी electrical activity beta oscillations कहलाती है
- पहले की studies में resting-state में beta oscillations के ऊंचे स्तर को second-language learning ability से जोड़ा गया था
- इस study में भी beta oscillations का ऊंचा स्तर तेज learning और अधिक programming knowledge से जुड़ा रहा
- हालांकि beta oscillations learning outcomes से कैसे जुड़ती हैं, यह अभी स्पष्ट नहीं है, इसलिए और research की जरूरत है
programming education और preconceived notions पर असर
- study के results इस बात का समर्थन करते हैं कि programming में, कम से कम Python सीखने में, भाषाई क्षमता एक महत्वपूर्ण factor है और math ability learning speed या achievement का मजबूत predictor नहीं है
- programming को अक्सर “math-intensive” field माना जाता है, लेकिन यह study programming सीखने की prerequisites को लेकर पुरानी धारणाओं पर फिर से सोचने को कहती है
- कुछ fields math और programming ability दोनों मांगती हैं, लेकिन यह तय नहीं है कि संभावित programming jobs की majority ऐसी ही है
- सभी computer science majors के लिए advanced math classes अनिवार्य करने का तरीका इस study के results के आधार पर अनावश्यक लगता है, और math requirements में flexibility student recruitment और retention में मदद कर सकती है
- जब programming कई jobs की prerequisite बन रही है, तब “math person” न होने पर भी कोई computer science के लिए suitable हो सकता है
diversity और teaching methods पर comments
- महिलाएं अक्सर महसूस करती हैं कि वे “typical computer programmer” की image से मेल नहीं खातीं
- औसतन, लड़कियों में लड़कों की तुलना में भाषाई क्षमता अधिक होने की प्रवृत्ति होती है, और अगर भाषाई क्षमता programming सीखने की ability का अनुमान लगाती है, तो महिलाओं की programming में अच्छी होने की reputation भी बढ़ सकती है
- programming और language ability को explicitly जोड़ना, और advanced math की मांग न करने वाले educational options देना diversity सुधारने में मदद कर सकता है
- तेजी से लोकप्रिय हो रहे bootcamp-style options प्रतिभागियों पर calculus थोपे बिना उन्हें programming career की ओर ले जा सकते हैं
- peer commentary में कहा गया कि programming education Fibonacci numbers निकालने या sorting algorithms implement करने जैसे math-centric tasks की ओर झुक सकती है, और अधिक creative व language-oriented tasks ज्यादा students की learning में मदद कर सकते हैं
1 टिप्पणियां
Hacker News की राय
अगर पेपर को सच में पढ़ें, तो शीर्षक clickbait के करीब है, और नतीजों को भी काफी बढ़ा-चढ़ाकर पेश किया गया है
sample बहुत छोटा है—पूरा करने वाले सिर्फ 36 लोग थे—और numeracy के लिए R²=.27, language के लिए करीब R²=.31 है
इसके बाद वे stepwise regression से variance contribution निकालते हैं, लेकिन पहले के नतीजों को लगभग नज़रअंदाज़ करते हुए ऐसा दिखता है जैसे numeracy का योगदान लगभग न के बराबर हो। वजह यह है कि दोनों variables में लगभग 10% shared variance है, और stepwise regression greedy होता है, इसलिए जो variable पहले आता है वह उसे ले जाता है
अगर एक और मिलता-जुलता language test जोड़ दें, तो यह भी दिख सकता है कि उसका unique variance contribution लगभग नहीं है
measurements भी human raters, completion time वगैरह सब काफी noisy हैं, लेकिन इसे handle करने की कोई कोशिश नहीं दिखती
दिए गए values से “language learning, numeracy से अधिक meaningful है” को Steiger test से देखें तो p-value 0.772 है, यानी बिल्कुल significant नहीं
आखिर में बात बस इतनी है कि numeracy variance का 27% समझाती है, language ability 31% समझाती है, लेकिन correlated variable जोड़ने के बाद numeracy का unique contribution घटकर 2% रह गया
regression में positive slope आना भी outlier की position से काफी प्रभावित लगता है, और language aptitude scatterplot में कम से कम दोनों variables के बीच ऊपर-दाईं ओर जाता संबंध आँखों से दिखता है
मुझे लगता है अच्छा code सिर्फ समस्या हल करने पर खत्म नहीं होता, बल्कि उसे पढ़ने में आसान और modular तरीके से हल करता है
coding के problem-solving हिस्से में mathematical ability चाहिए, और उसे structure करने वाले हिस्से में writing ability चाहिए। गंदा code बाद में दोबारा पढ़ना या extend करना मुश्किल बना देता है, जिससे problem-solving खुद बाधित होती है
लंबे mathematical proofs में भी structure की क्षमता चाहिए, लेकिन mathematics में ऐसे “बड़े leaps” या स्वभाव से जटिल concepts ज़्यादा लगते हैं जिन तक सिर्फ writing से पहुँचना मुश्किल है
इसके उलट programming में “छोटे steps” बहुत होते हैं, इसलिए अगर आप बहुत ज़्यादा smart न भी हों, पर धैर्य से component-by-component बनाते जाएँ और dependencies बहुत ज़्यादा न हों, तो प्रभावशाली programs बना सकते हैं
असल में mathematical manipulation से ज़्यादा समय database और interface schemas पढ़कर behavior समझने में जाता है
game engine जैसे exceptions जरूर हैं, लेकिन 3D graphics में भी अक्सर शुरुआती linear algebra से आगे की जरूरत नहीं पड़ती
non-modular code अक्सर ज़्यादा readable और fast होता है, और low-level languages या manual memory management वाली languages में best या सही solution कई बार readability से दूर होता है
readability देखने वाले पर निर्भर करती है, और formal requirements के बाद आती है
निजी तौर पर मैं लंबे, अच्छी तरह organized functions पसंद करता हूँ जो सिर्फ न्यूनतम रूप से modularized हों। file boundaries, नए function context जैसे context switches maintenance और extension के दौरान complexity और bugs के सबसे बड़े source रहे हैं
modularization ऐसे boundaries बढ़ाकर complexity छिपा सकती है और organizational problems को reason तथा fix करना मुश्किल बना सकती है। लंबे functions शुरुआत में कम readable लग सकते हैं, लेकिन वे ज़्यादा साफ mental model बनाते हैं और बेहतर solutions तक ले जाते हैं, ऐसा मुझे लगता है
दूसरी चीज़ों के साथ complex interactions रखने वाली चीज़ों के उलट, जो concept अपने-आप में complex हो वह general-purpose object से ज़्यादा proof के अंदर बने custom tool जैसा लगता है
“programming में छोटे steps बहुत होते हैं” वाली बात अच्छी तरह कही गई है। मैं अक्सर सोचता हूँ कि maintainable code लिखने वाले programmer के लिए average working memory उलटे मददगार हो सकती है
क्योंकि अगर आपको 3 मिनट पहले लिखा हुआ याद नहीं रहता, तो आप चलने वाला spaghetti code नहीं बना पाएँगे। बेशक यह काफी self-justifying hypothesis है
components के बीच unnecessary dependencies से बचना, और problem को analyze करके अलग किए जा सकने वाले हिस्से ढूँढना भी ऐसा ही है
programming सिखाते समय परेशान करने वाली बात यह दबाव है कि “हर कोई अनिवार्य रूप से programming सीख सकता है” वाला attitude हमेशा बनाए रखना पड़ता है
programming सीखने की कोशिश कर रहे बहुत से लोगों की motivation ही confused या गलत होती है, और उनके लिए कोई दूसरी skill विकसित करना कहीं ज़्यादा efficient हो सकता है। यह elitism का मामला नहीं है; मतलब बस इतना है कि मैं भी वे चीज़ें नहीं कर पाता जो दूसरे लोग naturally कर लेते हैं
दिमाग में लंबी division करने की मेहनत, उलझे हुए spaghetti code को follow करने की मेहनत जैसी है
mental division में आप तेज़ और अच्छे हो सकते हैं, लेकिन calculus के fundamental theorem को शायद कभी न समझ पाएँ
कुछ लोग garbage code में रास्ता निकालने में अच्छे होते हैं, और पैसे मिलते हैं तो मजबूरी में इसमें अच्छे हो जाते हैं, लेकिन programming के किस हिस्से में वे अच्छे हुए—यह अस्पष्ट है
जब मुझे काम में लगता है कि मैं सिर्फ मानसिक long division जैसी practice कर रहा हूँ, तो मैं हमेशा नई नौकरी ढूँढता हूँ। पीछे छूटने की कीमत अगर हो, तो कितना भी पैसा हो, वह worth it नहीं है
Prat et al. (2020) का अध्ययन यह सुझाव तो देता है कि Python सीखने में भाषाई aptitude, numeracy से बेहतर predictor है, लेकिन इसे आसानी से oversimplify किया जा सकता है, इसलिए सावधानी से पढ़ना चाहिए
अध्ययन ने जिस चीज़ को मापा, वह रोज़मर्रा की संख्यात्मक समस्याएँ हल करने की functional numeracy थी। यह formal logic, symbolic abstraction, formal language जैसी उन advanced mathematics से काफी अलग है जिन्हें अक्सर programming से जोड़ा जाता है
recursion, type inference और algorithm design को समझने में अहम चीज़ basic arithmetic नहीं, बल्कि ऐसी अधिक abstract क्षमताएँ हैं। इसलिए इस अध्ययन में functional numeracy की predictive power कम होने का मतलब यह नहीं है कि गहरी mathematical reasoning का programming से कोई संबंध नहीं है
साथ ही, अध्ययन की target language Python थी, जिसे natural language के करीब और readable बनाने के लिए design किया गया है। यह मजबूत language skills वाले लोगों के लिए फायदेमंद हो सकती है, लेकिन इसे C, Lisp, Haskell जैसी अधिक symbolic और logical density वाली languages तक generalize करना सही नहीं हो सकता
भाषा और गणित विरोधी क्षेत्र नहीं हैं; वे working memory, executive attention और hierarchical structure processing जैसी cognitive foundations साझा करते हैं। मुख्य सवाल यह नहीं है कि कौन “जीतता” है, बल्कि यह है कि अलग-अलग programming contexts में वे कैसे interact और complement करते हैं
academia दशकों से programming के कई पहलुओं को formalize करने की कोशिश करती रही है, लेकिन ऐसा लगता है कि वह अब भी यह नहीं समझ पाई कि computer science graduates और innovative programmers के बीच correlation कम क्यों है
असल दुनिया में अच्छा प्रदर्शन करने वाले बहुत-से लोग recursion को तब सीखते हैं जब किसी और तरीके से दीवार से टकराने के बाद उनके मन में “अच्छा, इसलिए recursion होता है” वाला पल आता है। यह symbolic abstraction, denotational semantics या type theory पढ़कर नहीं होता
असुविधाजनक सच यह है कि professional programming और innovative programming का लगभग पूरा हिस्सा degree programs में अनिवार्य advanced mathematics का इस्तेमाल नहीं करता
मुझे लगता है कि ऐसी शिक्षा की कठोरता काफी हद तक “मैंने किया, तो तुम्हें भी करना चाहिए” और academic gatekeeping से बनी रहती है
जब आप programming में बहुत अच्छे हो जाते हैं और जीवन के सबसे productive phase में पहुँचते हैं, तो यह भाषा जैसी महसूस होती है। आप बस बोलने की तरह express कर पाते हैं
इस अध्ययन के नतीजे काफी समझ में आते हैं। मैं हमेशा बहुत अच्छी और तेज़ reading करता रहा हूँ, और यह क्षमता मेरी programming career में बेहद उपयोगी रही
SAT math में 710 score था, जो ठीक था, लेकिन 1990s के आखिर में SAT verbal में पूरे 800 थे
जब मैंने wireless sensor network वाला master’s project शुरू किया, तो advisor ने TinyOS source code print करके दिया और कहा कि एक हफ्ते तक इसे पढ़ो, फिर जब लगे कि पर्याप्त समझ आ गया है तो वापस आना
वह अनुभव formative था, और उसके बाद जब भी किसी नए project में शामिल हुआ, मैंने code पढ़ने और यह समझने में समय लगाया कि पूरा सिस्टम कैसे एक साथ fit होता है
अब मैं senior web developer हूँ, और रोज़मर्रा की ज़िंदगी के लिए ज़रूरी basic math से आगे अब भी ज़्यादा अच्छा नहीं हूँ। हालांकि food service industry में 18 साल की वजह से percentages का approximate calculation काफी जल्दी कर लेता हूँ
जिन बेहतरीन programmers के साथ मैंने काम किया, उनमें अब भी linguistic thinking मजबूत थी। वे ज़रूरत न होने पर भी कई languages जानते थे, या लंबे समय तक कठिन literature पढ़ते रहे थे
कम-से-कम उनमें एक खास तरह की metacognitive और metalinguistic wit होती थी
मुझे लगता है कि आज भी ऐसा है, लेकिन degrees और career paths के mainstream होने से wild में इसे पहचानना मुश्किल हो गया है। ऊपर से, असल में अच्छे design और explanation skills, algorithms को scratch से बनाने की तुलना में कहीं ज्यादा बार जरूरी होते हैं, फिर भी leetcoding optimization करने पर naturally mathematical brain को फायदा मिलता है
लेकिन math में मैं बहुत खराब हूँ और उसे नापसंद करता हूँ। ज्यादातर mathematical writing पढ़ते समय मुझे dyslexia जैसा महसूस होता है
primary school में मैं अच्छा था, लेकिन जैसे ही focus algorithms की बजाय equations, abstractions और ऐसी चीज़ों पर गया जिनका use पता नहीं चलता था, मैं जल्दी frustrate होने लगा
इसके विपरीत, programming naturally और आसानी से सीख ली। pointers या recursion जैसे “difficult” topics सीखते समय वे वास्तव में इतने आसान लगे कि खुद को यह समझाने में ज्यादा समय लगा कि “इतना आसान हो ही नहीं सकता, शायद मैं कुछ miss कर रहा हूँ”
हर job में मैं वही व्यक्ति रहा जिसे “hard” problems या “low-level” problems दिए जाते थे
जब मुझे math पढ़नी होती है, तो सब कुछ steps में बदलना पड़ता है, और example values को उन steps से गुजरते हुए, एक-दूसरे को affect करते हुए बनाना पड़ता है; तभी समझ आता है। सब कुछ algorithm में बदलना पड़ता है
equations और proofs से meaning express करने की कोशिश मुझ पर ठीक से काम नहीं करती; मुझे हर symbol के बीच की boundary को एक-एक step में बदलकर चलना पड़ता है, तभी मुश्किल से समझ पाता हूँ
programming आम तौर पर जिस तरह encounter और learn की जाती है, वह algorithm-centric होती है, और अन्य mathematical expression styles बहुत कम होते हैं, इसलिए शायद वह मेरे लिए fit रही। variables और routines क्या mean करते हैं, इसका context भी symbols के ढेर की तुलना में कहीं ज्यादा rich होता है
अगर Perl को line noise कहा जाता है, तो mathematical writing आखिर क्या है। मानसिक रूप से टूटे हुए Cthulhu cultist की शुद्ध बकवास की तुलना में Perl दुनिया की सबसे स्पष्ट चीज़ है
समस्या उन languages में आती है जिनकी syntax mathematical है। single-letter variables और equality declarations से काम चलाने वाली idiomatic style पढ़ना कठिन है, और Haskell तो मुझसे बिल्कुल नहीं पढ़ी जाती
monads या type classes जैसे वही tricky concepts अगर किसी ज्यादा ordinary language में देखें तो आसान लगते हैं, लेकिन Haskell से सीखने की कोशिश करूँ तो बिल्कुल progress नहीं होती। Haskell में लिखा fizzbuzz-level program समझने में भी बहुत समय लगता है
मेरा verbal score कहीं ज्यादा था, और मैंने एक ऐसी बड़ी company के large-scale professional projects में, जिसे हर कोई जानता होगा, कई languages साथ इस्तेमाल करते हुए एक शानदार software engineering career बनाया है
“भाषाई दिमाग” या “गणितीय दिमाग” जैसी बात तब तक मान्य नहीं है, जब तक प्रयोगों से यह न दिखे कि संबंधित न्यूरॉन भाषा और गणित के लिए समर्पित दो अलग-अलग, बिना ओवरलैप वाले क्षेत्रों में बंटे हैं
गणित खुद भी इंसानों द्वारा बनाई गई एक formal language है, और logic व set theory की definitions और axioms से शुरू होती है, लेकिन वे definitions और axioms भी पहले मानवीय भाषा में ही दिए जाने होते हैं
अनुभवी गणितज्ञ ब्लैकबोर्ड पर Greek letters में लिखे प्रमेयों को साधारण English की तरह पढ़ते हैं, जिससे संकेत मिलता है कि वे उनके बारे में सामान्य English की तरह ही सोचते हैं
बेशक, चाहें तो वे उस भाषा के isomorphic किसी visual representation को मन में भी ला सकते होंगे
“भाषाई दिमाग” और “गणितीय दिमाग” कहना सिर्फ एक उपयोगी कल्पना है; असल में वे अलग-अलग मांस के हिस्से हैं या नहीं, यह महत्वपूर्ण नहीं है
फिर भी, ज्यादातर लोग मानेंगे कि समस्या हल करना, विचारों को शब्दों में व्यक्त करना, और विचारों को गणित में व्यक्त करना बहुत अलग skills हैं
Henri Poincaré के कथन की तरह, “कविता एक ही चीज़ को अलग-अलग नाम देने की कला है, और गणित अलग-अलग चीज़ों को एक ही नाम देने की कला है”; आखिरकार मुझे लगता है कि यह खासकर abstractions को अच्छे नाम देने की क्षमता के करीब है
हालांकि मेरे अनुभव में, 20 साल पहले SAT में verbal section भी analogy जैसी abstractions को काफी छूता था, और math भी वैसा ही था। एक बार दिए गए test में मेरा verbal 660 और math 650 था, यानी लगभग समान
Oliver Sacks ने brain trauma के विचित्र side effects पर लिखा था
गणितज्ञों या लेखकों के दिमाग के कई हिस्सों में चोट पहुंचाकर प्रयोग करना भी संभव होगा, लेकिन brain regions की neural stimulation या anesthesia भी कुछ दिखा सकती है
यह दावा कई तरह से अजीब है। मुझे नहीं लगता कि “भाषाई दिमाग” या “गणितीय दिमाग” जैसी कोई ठोस चीज़ है, लेकिन साथ ही बहुत से लोग नहीं जानते कि गणित क्या है, और वही सबूत उल्टा “गणितीय दिमाग” का समर्थन करता दिख सकता है
गणित calculation नहीं, बल्कि patterns के बारे में है। algebra में जाते ही लगता है, “गणित में letters क्यों आ गए?”, लेकिन आगे बढ़ने पर सोचने लगते हैं, “गणित में numbers क्यों आ गए?”
math education की बड़ी tragedy यह है कि वह calculation पर बहुत ज्यादा केंद्रित है। group theory, combinatorics, graphs, set theory, category theory जैसे उपयोगी topics की बुनियाद बच्चे भी समझ सकते हैं, फिर भी उन्हें undergraduate math major या graduate school में ही पढ़ाया जाता है
इन topics में बहुत गहराई है, लेकिन सोचने के तरीके को formalize करने वाले कई हिस्से बच्चे भी समझ सकते हैं। उदाहरण के लिए Visual Group Theory[0] की सिफारिश करूंगा
गणित abstraction के बारे में है, लेकिन अजीब बात है कि हम उसे “game के late stage” तक बचाकर रखते हैं
मैं यकीन से कह सकता हूं कि ऐसी चीजें समझने से सीखना तेज होता है और सोचने के तरीके पर गहरा असर पड़ता है। बस उस abstraction को सच में स्वीकार करना चाहिए, और खुद को यह कहकर सीमित नहीं करना चाहिए कि यह सिर्फ किसी खास application के लिए इस्तेमाल होने वाला tool है
बहुत से लोगों को word problems मुश्किल लगती हैं, लेकिन cousin Throckmorton 500 तरबूज खरीदना चाहता है जैसी हास्यास्पद स्थिति भी आखिरकार गणित और वास्तविकता को जोड़ने का एक हिस्सा है
“advanced” math ने मेरी learning इसलिए तेज की, क्योंकि उस स्तर का गणित abstraction, यानी सोचने का तरीका सिखाता है। equations न लिखें तब भी यह बेहद मददगार है
गणित असल में equations लिखना नहीं है, लेकिन जब चीजें जटिल हो जाती हैं तो equations बहुत मदद करती हैं, इसलिए उनका इस्तेमाल किया जाता है
[0] https://www.youtube.com/watch?v=UwTQdOop-nU&list=PLwV-9DG53N...
उदाहरण के लिए मैंने कभी यह नहीं सुना था कि matrices linear equations को व्यक्त करने के लिए एक उपयोगी abstraction, या shorthand representation हैं
यही बात imaginary numbers पर भी लागू होती है कि उन्हें कुछ calculations को आसान बनाने के लिए बनाए गए abstraction के रूप में समझाया गया हो
अच्छा होता अगर इन्हें इस नजरिए से पढ़ाया जाता कि ऐसी abstractions कैसी दिखती हैं और क्यों उपयोगी हैं
“music class में हम staff paper निकालते हैं, और teacher board पर notes लिखते हैं तो हम उन्हें copy करते हैं या किसी दूसरी key में transpose करते हैं। clefs और key signatures सही लिखने होते हैं, और teacher इस बात को लेकर बहुत सख्त होते हैं कि quarter notes पूरी तरह भरे हैं या नहीं। एक बार मैंने chromatic scale वाला सवाल सही किया था, लेकिन stem direction गलत होने की वजह से marks नहीं मिले।”
https://en.m.wikipedia.org/wiki/A_Mathematician%27s_Lament
मैंने खुद abstract algebra self-study करते हुए learning और reasoning ability के तेज होने का अनुभव किया है
मूल रूप से चार tracks थे: एक में senior year में Algebra 1 खत्म होता था, एक में senior year में trigonometry होती थी, एक और भी trigonometry तक था लेकिन pre-calculus नहीं था, और सिर्फ आखिरी track trigonometry और pre-calculus तक जाता था
वह आखिरी class भी और subdivided थी: कुछ सिर्फ pre-calculus तक, कुछ Calculus 1 और AP Calculus AB या IB Math SL लेते थे, और एक छोटा group AP Calculus BC या IB Math HL देता था
मेरे batch में AP Calculus AB exam देने वाले students graduating class के 500–600 में से लगभग 20 थे
“भाषाई क्षमता और problem-solving ability” वाली अभिव्यक्ति ही पहला warning signal है। शीर्षक ने इसे सिर्फ भाषा का मामला बना दिया है
problem-solving ability का संबंधित होना काफी स्पष्ट है, लेकिन भाषा के मामले में बात कम स्पष्ट है
मैंने अपनी जिंदगी का ज्यादातर हिस्सा programming करते हुए बिताया है, लेकिन खुद को अच्छा बोलने वाला नहीं मानता। भाषा क्षमता भी बस ठीक-ठाक है, और नई natural language सीखने की उम्मीद कम है
इसलिए मैं संशय में हूं, और study देखने पर पहले तो “गणित” numeracy में बदल गया है। मुझे लगता है programming algebra के ज्यादा करीब है, लेकिन वह भी कम कठोर है और debugging आसान है
study में numeracy measurement कई scales पर 18 numeracy questions को evaluate करने के बाद सबसे ज्यादा predictive power वाले 8 items चुनने वाला Rasch-based scale था
ऊपर से यह study अब 5 साल पुराने data पर आधारित है
अगर कोई समस्या हल तो कर सकता है, लेकिन यह नहीं समझा सकता कि समस्या क्या है और उसका समाधान समस्या को क्यों हल करता है, तो उसे अच्छा problem solver कहना मुश्किल है
जो व्यक्ति समस्या को अच्छी तरह explain करता है लेकिन solution नहीं सोच पाता, वह पहले से ही दुनिया के कई programmers से बेहतर है, और मैं उसके साथ उस व्यक्ति से ज्यादा काम करना चाहूंगा जो “solution process” के बिना बस solution फेंक देता है
दरअसल ऐसी अभिव्यक्ति क्षमता के बिना problem solving को उसके आदिम अर्थ में समझना भी कठिन है
इस context में creativity, समस्या को ज्यादा approachable तरीके से reframe करने की क्षमता हो सकती है। कई मामलों में ऐसी framing obvious solution या स्पष्ट trade-offs वाले solutions के set की ओर इशारा करती है
programming जल्दी/अच्छी तरह सीखने वालों और English spelling bee में अच्छा करने वालों के बीच काफी दिलचस्प correlation देखा है
लगता है समानता यह है कि वे algorithmic process करते हुए भी बहुत सारी anecdotes और अजीब rule exceptions को दिमाग में रख पाते हैं
मेरा दिमाग शायद इस तरह के data को store और retrieve करने के लिए उपयुक्त है, और इसका CLI interfaces और अजीब command structures जैसी चीजों से भी high correlation है
“भाषाई दिमाग” और “गणितीय दिमाग” को define करना झूठा द्वैत है और घटिया neuroscience है, ऐसा मैं मजबूती से मानता हूं
गणित खुद concepts को व्यक्त करने के लिए बनाई गई symbols की एक collection, यानी एक भाषा है
यह study ऐसा लगता है जैसे यह वही बात कहने की कोशिश कर रही है जो ज्यादातर लोग पहले से जानते हैं: interest, drive और opportunity हो तो कोई भी अच्छा programmer, mathematician या कुछ भी बन सकता है
mathematicians, और आगे चलकर computer scientists, के बारे में social perception में बदलाव दिखाने वाली एक दिलचस्प किताब “Duel at Dawn” है
आधुनिक, अपेक्षाकृत recent image एक ऐसे एकांतप्रिय genius की है जिसके पास numbers और information process करने की alien, superhuman और जन्मजात क्षमता है, कभी-कभी autism के संकेतों के साथ भी। TV show “the big bang theory” के “Sheldon Cooper” जैसा stereotype
लेकिन यह गलत है
कोई भी किसी चीज में superhuman स्तर की क्षमता लेकर पैदा नहीं होता। जो लोग किसी काम में बहुत अच्छे होते हैं, वे लोग होते हैं जिन्होंने perception से परे जाकर उस काम में अच्छा होने के लिए बहुत मेहनत की होती है
शुरुआत में मैंने सिर्फ article देखकर study की आलोचना की थी, लेकिन actual cited paper पर नजर डालने के बाद अपनी specific criticism revise की। फिर भी paper खुद psychology और statistics की terminology में लिपटा एक कमजोर eugenic argument से ज्यादा नहीं दिखता
article बेहद misleading है, और मैं तो लगभग इसे malicious भी कहना चाहूंगा
study खुद कहती है कि fluid reasoning और working memory capacity 34%, language aptitude 17%, resting-state EEG के beta और low-gamma band power 10%, और numeracy 2% explain करते हैं
लेकिन यहां math ability को numeracy के बराबर मान लिया गया है। study खुद भी ऐसा imply करती है, लेकिन मैं इससे मूल रूप से सहमत नहीं हूं
मेरे हिसाब से math ability, numeracy की तुलना में fluid reasoning के कहीं ज्यादा करीब है