Think Python, तीसरा संस्करण
(allendowney.github.io)- प्रोग्रामिंग पहली बार सीखने वालों या पिछली पढ़ाई में कठिनाई झेल चुके लोगों के लिए Python की शुरुआती किताब है; तीसरे संस्करण की प्रिंट कॉपी और eBook ऑर्डर की जा सकती है
- पूरी किताब Jupyter notebook के रूप में है, इसलिए टेक्स्ट पढ़ना, code चलाना और exercises हल करना एक ही flow में किया जा सकता है
- हर chapter notebook को Colab में सीधे चलाया जा सकता है, इसलिए बिना अलग installation के सीखना शुरू करना आसान है
- तीसरे संस्करण में मुख्य टेक्स्ट का revision, कुछ chapters के क्रम में बदलाव और exercises का विस्तार करके learning flow को फिर से व्यवस्थित किया गया है
- chapters के अंत में ChatGPT और Colab AI के उपयोग के सुझाव अटकने वाली जगहों पर अतिरिक्त explanation और exercises में मदद पाने के सहायक साधन के रूप में काम आते हैं
पहली बार सीखने वालों के लिए Python की शुरुआती किताब
- Think Python उन लोगों के लिए Python की शुरुआती किताब है जो पहली बार programming से परिचित हो रहे हैं, या जिन्होंने पहले कोशिश की लेकिन कठिनाई महसूस की
- तीसरे संस्करण की print book और eBook Bookshop.org और Amazon से ऑर्डर की जा सकती हैं
- Green Tea Press की book landing page Think Python 3rd Edition पर देखी जा सकती है
- तीसरे संस्करण में पूरी किताब को Jupyter notebook के रूप में बनाया गया है, जिसमें text, executable code और exercises एक ही जगह मिलते हैं
- notebooks Colab में चलाई जा सकती हैं, जिससे installation का बोझ कम होता है
- मुख्य text में काफी revision किया गया है और कुछ chapters का क्रम बदला गया है
- exercises की संख्या बढ़ाई गई है
- हर chapter के अंत में learning और exercises हल करने में ChatGPT और Colab AI का उपयोग करने के तरीके शामिल हैं
Colab notebooks और class में उपयोग की सामग्री
-
Chapter-wise notebooks
- सभी notebooks 19 chapters के रूप में उपलब्ध हैं
- Chapter 1: Programming as a way of thinking — Colab में चलाएँ
- Chapter 2: Variables and Statements — Colab में चलाएँ
- Chapter 3: Functions — Colab में चलाएँ
- Chapter 4: Functions and Interfaces — Colab में चलाएँ
- Chapter 5: Conditionals and Recursion — Colab में चलाएँ
- Chapter 6: Return Values — Colab में चलाएँ
- Chapter 7: Iteration and Search — Colab में चलाएँ
- Chapter 8: Strings and Regular Expressions — Colab में चलाएँ
- Chapter 9: Lists — Colab में चलाएँ
- Chapter 10: Dictionaries — Colab में चलाएँ
- Chapter 11: Tuples — Colab में चलाएँ
- Chapter 12: Text Analysis and Generation — Colab में चलाएँ
- Chapter 13: Files and Databases — Colab में चलाएँ
- Chapter 14: Classes and Functions — Colab में चलाएँ
- Chapter 15: Classes and Methods — Colab में चलाएँ
- Chapter 16: Classes and Objects — Colab में चलाएँ
- Chapter 17: Inheritance — Colab में चलाएँ
- Chapter 18: Python Extras — Colab में चलाएँ
- Chapter 19: Final Thoughts — Colab में चलाएँ
-
शिक्षकों के लिए सामग्री
- solutions वाली notebooks ThinkPythonSolutions GitHub repository से download की जा सकती हैं
- हर chapter के quizzes और पूरी किताब के लिए comprehensive quiz अनुरोध पर उपलब्ध हैं
- class में Jupyter को प्रभावी ढंग से इस्तेमाल करने के तरीके online book Teaching and Learning with Jupyter में पढ़े जा सकते हैं
- notebook-based classes में instructor code लिखता है और students अपनी notebooks में follow करते हैं—इस live coding तरीके का उपयोग किया जा सकता है
- programming education के लिए teacher training material The Carpentries के Instructor Training में देखा जा सकता है
- original text को बनाए रखते हुए अधिकांश code हटाए गए blank notebooks learners के लिए खाली जगह भरते हुए follow-along practice में उपयोगी हैं, और इन्हें blank notebooks में व्यवस्थित किया गया है
1 टिप्पणियां
Hacker News की राय
यह खबर सच में बहुत अच्छी लगी। जब Practical Deep Learning for Coders को Jupyter Notebook के साथ प्रकाशित किया गया था, तब Allen और उनकी कुछ किताबों को भी इसी तरीके से बनाने की बात हुई थी
अब यह सच में आगे बढ़ रहा है, और इससे भी बेहतर यह है कि इसमें नोटबुक के भीतर inline graphics दिखाने वाले Jupyter-आधारित turtle जैसे शानदार टूल भी जोड़ दिए गए हैं
मुझे लगता है कि रिलीज़ होने पर यह Python programming सीखने का सबसे अच्छा तरीका बन सकता है
याद है, पहले इस किताब के दूसरे संस्करण के कुछ हिस्से को nbdev notebook में बदलने का एक proof of concept भी दिखाया गया था: https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
वह notebook इस HTML में render होता है: https://fastai.github.io/nbdev_cards/deck.html
जब भी AdventOfCode जैसी चीज़ों से कोई नई भाषा सीखता हूँ, मेरा पहला काम हमेशा उस भाषा के लिए Jupyter image बनाना होता है
Think Python का दूसरा संस्करण मेरी ज़िंदगी की दिशा बदल गया। मैंने एक Java class ली थी, वह इतनी बुरी लगी कि मैंने programming छोड़ दी थी, लेकिन कुछ साल बाद network engineer के तौर पर काम करते हुए एक ऐसी समस्या आई जो script से हल हो सकती थी। फिर मैंने Think Python उठाई और Python और programming दोनों से प्यार हो गया
मैं अपनी ज़िंदगी की दिशा community/maker/teacher की भूमिका की तरफ़ बदलने के बारे में सोच रहा हूँ, और teaching के लिए freelance/small business ideas हैं, जिनके लिए “loose curriculum” सामग्री चाहिए
professional web developer के तौर पर काम करते हुए मुझे कभी Python की ज़रूरत नहीं पड़ी, इसलिए अब सीख रहा हूँ। Perl और Ruby सहित लगभग सभी web-केंद्रित भाषाएँ इस्तेमाल कर चुका हूँ
Python सामान्य concepts सिखाने के लिए उपयुक्त भाषा लगती है, और संदर्भ के लिए कोई किताब हो तो मदद मिलेगी
उसी समय हमारी टीम की मुख्य भाषा Java बन गई, और static typing के फायदे देखने के बाद फिर पीछे लौटना संभव नहीं लगा
उसके बाद Python भी optional typing support और उसे लागू करवाने वाले IDEs की वजह से काफ़ी आगे बढ़ा है, लेकिन अब मेरा झुकाव पूरी तरह static typed भाषाओं की ओर है
utility scripts लिखते समय मुझे अभी भी सिर्फ bash के बजाय कहीं अधिक polished Python पसंद है। लेकिन अगर किसी पूर्ण application के लिए भाषा चुननी हो, तो मैं Java/Scala आदि को प्राथमिकता दूँगा। Rust भी शानदार है, लेकिन ज़्यादातर आम लोगों के लिए उसकी learning curve बहुत कठिन है
मैंने PyCharm जैसे tools द्वारा समर्थित Python optional typing खुद कभी इस्तेमाल नहीं की, इसलिए संभव है कि tooling की वजह से अनुभव static typed भाषा जैसा हो गया हो। अगर किसी ने IntelliJ Community Edition में Python type enforcement चालू करके इस्तेमाल किया है, तो उसका अनुभव सुनना चाहूँगा
मुझे Think Python बहुत पसंद है, और मैंने इसे बहुत से learners को recommend किया है। नए programmers के लिए किसी किताब को जिन कई बातों का ध्यान रखना चाहिए, उनका संतुलन यह सच में बहुत अच्छे से बनाती है
Allen Downey ने इसी तरह के approach वाली कई और किताबें भी लिखी हैं: https://greenteapress.com/wp/
मुझे लगता है कि उनमें से कुछ ने rigor कम करने के मामले में थोड़ा ज़्यादा कर दिया, लेकिन जिन किताबों को मैंने देखा है वे कुल मिलाकर काफ़ी अच्छी थीं
एक बार किसी conference में मैं Allen के साथ एक ही table पर था, और जब मैंने बताया कि मैं उनकी किताबें कितनी बार recommend करता हूँ या लोगों के लिए ख़रीद चुका हूँ, तो शायद उन्हें लगा कि मैं बढ़ा-चढ़ाकर बोल रहा हूँ
विषय थोड़ा बदलने के लिए माफ़ कीजिए, लेकिन अगर किसी के पास पहले से practical experience है और वह काम करते हुए सीख रहा है, तो क्या intermediate/advanced Python developers के लिए इसी गुणवत्ता की कोई सामग्री है?
हमेशा लगता है कि भाषा और standard library में कोई बड़ा हिस्सा है जो मुझे अभी नहीं पता
https://docs.python.org/3/tutorial/index.html
https://docs.python.org/3/library/index.html
हर बार नया version आने पर मैं What’s New documents पढ़ता हूँ
इसके अलावा मुझे standard library और लोकप्रिय third-party packages का source code पढ़ना पसंद है। यह सलाह सिर्फ Python पर ही नहीं, बल्कि किसी नई भाषा को सीखने या दोबारा पकड़ने पर भी आम तौर पर लागू होती है
और Norvig के हर साल के Advent of Code implementations पढ़कर भी मुझे अक्सर सुंदर और संक्षिप्त Python code लिखने के बारे में अच्छी समझ मिलती है
लेखक अपने नवीनतम Python प्रोजेक्ट्स, मुख्य रूप से Bayesian data analysis के काम, https://www.allendowney.com/blog/ पर ब्लॉग के रूप में पोस्ट करते हैं, और उन्हें पढ़ना काफ़ी दिलचस्प लगता है
Python में intermediate से advanced programming के लिए कौन-सी किताबें हैं? Python और सामान्य programming तो पहले से जानता हूँ, लेकिन अपनी Python skill और बढ़ाना चाहता हूँ
अभी जो पढ़ रहा हूँ, उनमें सिर्फ Fluent Python और CPython Internals शामिल हैं
उदाहरण के लिए Effective Pandas 2, tabular data को संभालने के आम patterns दिखाती है। इस प्रक्रिया में comprehension, lambda, unpacking आदि का उपयोग करती है, pytest के साथ refactoring कैसे करना है यह भी दिखाती है, और data को समझने के लिए visualization के उपयोग को भी दर्शाती है
वैसे, इसका लेखक मैं ही हूँ
Fluent Pythonकाफ़ी है। भाषा की बाकी विशेषताएँ official reference manual पढ़ते-पढ़ते समझ में आ जाएँगीhttps://www.redblobgames.com/ पर भी बहुत चतुराई से लिखे गए लेख हैं
यह बहुत प्रसिद्ध तो नहीं है, लेकिन अलग-अलग constraints के तहत एक ही समस्या को हल करने वाले विभिन्न programming styles को explore करने वाली किताब है
एक स्तर की दक्षता, यानी बुनियादी practitioner स्तर से आगे बढ़ने के बाद, अंत में code पढ़ना और लिखना ही बचता है
संबंधित लेख:
Think Python 2e - https://news.ycombinator.com/item?id=35421096 - अप्रैल 2023, 30 टिप्पणियाँ
Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - अगस्त 2010, 9 टिप्पणियाँ
किस्मत अच्छी है। मैंने अभी Python mentoring शुरू की है, और मैं Downey का बहुत बड़ा प्रशंसक हूँ। वे सचमुच एक बेहतरीन शिक्षक और renaissance व्यक्ति हैं
मैं इस किताब पर ज़रूर नज़र रखूँगा
जब मैं पहली बार programming सीख रहा था, तब इस किताब ने मेरी ज़िंदगी बदल दी थी। करियर बदलने वाले अर्थ में नहीं, बल्कि इस वजह से कि किताब जिस तरह लिखी गई थी और उसके कुछ concepts ने, एकदम शुरुआती होने के बावजूद, मुझे चीज़ें अचानक समझा दीं
अब 10~15 साल बाद 3rd edition को देखकर बहुत nostalgia महसूस हो रहा है, और इस किताब की जितनी भी सिफारिश की जाए कम है
पिछले edition Think Java में मुझे यह अंश ख़ास तौर पर पसंद था: https://files.catbox.moe/v1vgdc.jpg
और एक और शानदार हिस्सा यह है: