2 पॉइंट द्वारा GN⁺ 2024-02-17 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • प्रोग्रामिंग पहली बार सीखने वालों या पिछली पढ़ाई में कठिनाई झेल चुके लोगों के लिए 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 में उपयोग की सामग्री

1 टिप्पणियां

 
GN⁺ 2024-02-17
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

    • मुझे Think Bayes और Think Stats बहुत पसंद थे, लेकिन जब बाकी सब notebook इस्तेमाल कर रहे थे तब यह थोड़ा असंगत लगता था
      जब भी AdventOfCode जैसी चीज़ों से कोई नई भाषा सीखता हूँ, मेरा पहला काम हमेशा उस भाषा के लिए Jupyter image बनाना होता है
    • इस तरह का छिपाया जा सकने वाला code documentation के लिए बहुत अच्छा लगता है। मैं काफ़ी समय से ऐसा कुछ ढूँढ रहा था
  • 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 सिखाने के लिए उपयुक्त भाषा लगती है, और संदर्भ के लिए कोई किताब हो तो मदद मिलेगी
    • एक उल्टा उदाहरण यह है कि मैंने bash/Perl से शुरुआत की, फिर Python पर गया, और शुरू में यह बहुत अच्छा लगा, लेकिन dynamic typing की वजह से समस्याएँ आने लगीं
      उसी समय हमारी टीम की मुख्य भाषा 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 चालू करके इस्तेमाल किया है, तो उसका अनुभव सुनना चाहूँगा
    • मेरा अनुभव भी ऐसा ही था। मैंने Java, Matlab, C, Perl थोड़ा-थोड़ा सीखा था, लेकिन Think Python 2nd edition पढ़ने के बाद ही सच में जुड़ पाया, और फिर कई किताबें पढ़ते हुए software career में आ गया
    • मेरे साथ भी ऐसा हुआ। शहर बदलने और नौकरी ढूँढने के दौरान मैंने इस किताब को print करके अध्याय-दर-अध्याय पढ़ना शुरू किया, और इसी किताब की वजह से मैं software engineer बना
    • C++ class, Java class आदि लेने के बाद भी जो object-oriented programming समझ नहीं आई थी, वह Think Python की वजह से पहली बार सही मायने में समझ आई
  • मुझे Think Python बहुत पसंद है, और मैंने इसे बहुत से learners को recommend किया है। नए programmers के लिए किसी किताब को जिन कई बातों का ध्यान रखना चाहिए, उनका संतुलन यह सच में बहुत अच्छे से बनाती है
    Allen Downey ने इसी तरह के approach वाली कई और किताबें भी लिखी हैं: https://greenteapress.com/wp/
    मुझे लगता है कि उनमें से कुछ ने rigor कम करने के मामले में थोड़ा ज़्यादा कर दिया, लेकिन जिन किताबों को मैंने देखा है वे कुल मिलाकर काफ़ी अच्छी थीं
    एक बार किसी conference में मैं Allen के साथ एक ही table पर था, और जब मैंने बताया कि मैं उनकी किताबें कितनी बार recommend करता हूँ या लोगों के लिए ख़रीद चुका हूँ, तो शायद उन्हें लगा कि मैं बढ़ा-चढ़ाकर बोल रहा हूँ

    • मेरे दोस्त का बेटा कॉलेज के अंतिम वर्ष में है, और हो सकता है कि वह मेरे सुझाए Olin जाए। Olin के बारे में मुझे भी Think Python की वजह से पता चला था
  • विषय थोड़ा बदलने के लिए माफ़ कीजिए, लेकिन अगर किसी के पास पहले से practical experience है और वह काम करते हुए सीख रहा है, तो क्या intermediate/advanced Python developers के लिए इसी गुणवत्ता की कोई सामग्री है?
    हमेशा लगता है कि भाषा और standard library में कोई बड़ा हिस्सा है जो मुझे अभी नहीं पता

    • मैंने Python 1.5.2 के समय official docs से सीखना शुरू किया था, और आज भी उन्हें अच्छा material मानता हूँ
      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 पर ही नहीं, बल्कि किसी नई भाषा को सीखने या दोबारा पकड़ने पर भी आम तौर पर लागू होती है
    • Effective Python अच्छी लगी। यह tips-format की किताब है, जिसमें इस्तेमाल के मामलों और लागू करने के उदाहरणों के साथ सिफ़ारिशें दी गई हैं
    • Fluent Python उस स्तर के लिए एक अच्छी किताब है, और काम करते समय reference book के रूप में भी अच्छी है
    • https://effectivepython.com/ पसंद है
      और Norvig के हर साल के Advent of Code implementations पढ़कर भी मुझे अक्सर सुंदर और संक्षिप्त Python code लिखने के बारे में अच्छी समझ मिलती है
    • Fluent Python और Effective Python दोनों अच्छी किताबें हैं। पहली बहुत मोटी है, और लगभग कई किताबों को एक में बाँध दिया गया हो जैसी लगती है
  • लेखक अपने नवीनतम Python प्रोजेक्ट्स, मुख्य रूप से Bayesian data analysis के काम, https://www.allendowney.com/blog/ पर ब्लॉग के रूप में पोस्ट करते हैं, और उन्हें पढ़ना काफ़ी दिलचस्प लगता है

  • Python में intermediate से advanced programming के लिए कौन-सी किताबें हैं? Python और सामान्य programming तो पहले से जानता हूँ, लेकिन अपनी Python skill और बढ़ाना चाहता हूँ
    अभी जो पढ़ रहा हूँ, उनमें सिर्फ Fluent Python और CPython Internals शामिल हैं

    • ऐसी किताबों पर भी विचार किया जा सकता है जो दिखाएँ कि तकनीकों को वास्तविक practical code में कैसे लागू किया जाता है
      उदाहरण के लिए Effective Pandas 2, tabular data को संभालने के आम patterns दिखाती है। इस प्रक्रिया में comprehension, lambda, unpacking आदि का उपयोग करती है, pytest के साथ refactoring कैसे करना है यह भी दिखाती है, और data को समझने के लिए visualization के उपयोग को भी दर्शाती है
      वैसे, इसका लेखक मैं ही हूँ
    • Fluent Python काफ़ी है। भाषा की बाकी विशेषताएँ official reference manual पढ़ते-पढ़ते समझ में आ जाएँगी
    • ज़्यादा सामान्य algorithms और data structures की किताबें या design से जुड़ी किताबें भी देख सकते हैं
      https://www.redblobgames.com/ पर भी बहुत चतुराई से लिखे गए लेख हैं
    • Cristina Videira Lopes की Exercises in Programming Style, 2nd edition भी देखने लायक है
      यह बहुत प्रसिद्ध तो नहीं है, लेकिन अलग-अलग constraints के तहत एक ही समस्या को हल करने वाले विभिन्न programming styles को explore करने वाली किताब है
    • आख़िर में बात documentation और source code की ही है, है न?
      एक स्तर की दक्षता, यानी बुनियादी 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
    और एक और शानदार हिस्सा यह है:

    आगे जो हुआ, वही सबसे शानदार हिस्सा है। Virginia के हाई स्कूल शिक्षक Jeff Elkner ने मेरी किताब [Think Java] को अपनाया और उसे Python में अनुवाद किया। उन्होंने मुझे उसका अनुवाद भेजा, और मुझे अपनी ही किताब पढ़ते हुए Python सीखने का एक अनोखा अनुभव हुआ."