Think Python, 3. Baskı
(allendowney.github.io)- Programlamayı ilk kez öğrenenler veya önceki öğrenme deneyimlerinde zorlananlar için bir Python giriş kitabı; 3. baskının basılı ve e-kitap sürümleri sipariş edilebiliyor
- Kitabın tamamı Jupyter notebook biçiminde olduğu için metin okuma, kod çalıştırma ve alıştırma çözme tek bir akış içinde ilerleyebiliyor
- Her bölüm notebook’u Colab üzerinde doğrudan çalıştırılabildiğinden ek kurulum olmadan öğrenmeye başlamak kolaylaşıyor
-
- baskı, ana metindeki revizyonlar, bazı bölümlerin sırasının yeniden düzenlenmesi ve alıştırmaların genişletilmesiyle öğrenme akışını yeniden kurguluyor
- Bölüm sonlarındaki ChatGPT ve Colab AI kullanım önerileri, takılınan noktalarda ek açıklama ve alıştırma desteği almak için yardımcı bir araç olarak sunuluyor
Yeni başlayanlar için Python giriş kitabı
- Think Python, programlamayla ilk kez tanışanlar ya da daha önce denemiş ama zorlanmış kişiler için hazırlanmış bir Python giriş kitabıdır
-
- baskının basılı ve e-kitap sürümleri Bookshop.org ve Amazon üzerinden sipariş edilebiliyor
- Green Tea Press’in kitap açılış sayfası Think Python 3rd Edition adresinde görülebilir
-
- baskı, kitabın tamamını Jupyter notebook olarak kurgulayarak metni, çalıştırılabilir kodu ve alıştırmaları tek bir yerde topluyor
- Notebook’lar Colab üzerinde çalıştırılabildiği için kurulum yükü azalıyor
- Ana metin önemli ölçüde gözden geçirildi ve bazı bölümlerin sırası yeniden düzenlendi
- Alıştırma sayısı artırıldı
- Her bölümün sonunda, ChatGPT ve Colab AI’yi öğrenme ve alıştırma çözümünde nasıl kullanabileceğinize dair içerikler yer alıyor
Colab notebook’ları ve ders materyalleri
-
Bölüm bazlı notebook’lar
- Tüm notebook seti 19 bölümden oluşuyor
- Bölüm 1: Programming as a way of thinking — Colab'da çalıştır
- Bölüm 2: Variables and Statements — Colab'da çalıştır
- Bölüm 3: Functions — Colab'da çalıştır
- Bölüm 4: Functions and Interfaces — Colab'da çalıştır
- Bölüm 5: Conditionals and Recursion — Colab'da çalıştır
- Bölüm 6: Return Values — Colab'da çalıştır
- Bölüm 7: Iteration and Search — Colab'da çalıştır
- Bölüm 8: Strings and Regular Expressions — Colab'da çalıştır
- Bölüm 9: Lists — Colab'da çalıştır
- Bölüm 10: Dictionaries — Colab'da çalıştır
- Bölüm 11: Tuples — Colab'da çalıştır
- Bölüm 12: Text Analysis and Generation — Colab'da çalıştır
- Bölüm 13: Files and Databases — Colab'da çalıştır
- Bölüm 14: Classes and Functions — Colab'da çalıştır
- Bölüm 15: Classes and Methods — Colab'da çalıştır
- Bölüm 16: Classes and Objects — Colab'da çalıştır
- Bölüm 17: Inheritance — Colab'da çalıştır
- Bölüm 18: Python Extras — Colab'da çalıştır
- Bölüm 19: Final Thoughts — Colab'da çalıştır
-
Eğitmen materyalleri
- Çözümleri içeren notebook’lar ThinkPythonSolutions GitHub deposu üzerinden indirilebiliyor
- Her bölüm için kısa sınavlar ve tüm kitap için kapsamlı bir sınav istek üzerine sağlanıyor
- Jupyter’nin derste etkili kullanımı hakkında, çevrimiçi kitap Teaching and Learning with Jupyter okunabilir
- Notebook tabanlı derslerde, eğitmenin kod yazdığı ve öğrencilerin kendi notebook’larında onu takip ettiği canlı kodlama yaklaşımı kullanılabiliyor
- Programlama eğitimi için öğretmen eğitimi materyalleri The Carpentries’nin Instructor Training sayfasında bulunabilir
- Ana metni koruyup kodun büyük kısmını kaldıran boş notebook sürümleri, öğrencilerin boşluk doldurarak takip ettiği alıştırmalar için faydalıdır; bunlar blank notebooks sayfasında derlenmiştir
1 yorum
Hacker News görüşleri
Bu habere gerçekten sevindim.
Practical Deep Learning for CodersJupyter Notebook olarak yayımlandığında, Allen'ın da bazı kitaplarını aynı şekilde yapma fikri konuşulmuştuŞimdi bu gerçekten hayata geçiyor; üstelik daha da güzel tarafı, not defterinin içinde satır içi grafik gösterebilen Jupyter tabanlı turtle gibi harika araçlar da eklenmiş
Yayımlandığında, Python programlamayı öğrenmenin en iyi yolu olma ihtimali çok yüksek
Eskiden bu kitabın 2. baskısının bir kısmını nbdev not defterlerine dönüştüren bir kavram kanıtı da gösterilmişti diye hatırlıyorum: https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
O not defteri şu HTML olarak render ediliyor: https://fastai.github.io/nbdev_cards/deck.html
Think BayesveThink Statskitaplarını gerçekten seviyordum ama herkes not defteri kullanırken biraz uyumsuz hissettiriyorduAdventOfCodegibi şeylerle yeni bir dil öğrenirken ilk işim her zaman o dil için bir Jupyter imajı hazırlamak oluyorThink Python2. baskı hayatımın yönünü değiştirdi. Bir Java dersi almıştım ve o kadar nefret etmiştim ki programlamayı bırakmıştım; birkaç yıl sonra ağ mühendisi olarak çalışırken script ile çözülebilecek gibi görünen bir sorun çıktı,Think Pythonu elime aldım ve Python'a ve programlamanın kendisine kapıldımHayatımın yönünü topluluk/maker/eğitmen rolü tarafına çevirmeyi düşünüyorum ve eğitim işi için aklımda freelance/küçük ölçekli iş fikirleri var; bunun için “gevşek müfredat” materyallerine ihtiyacım var
Profesyonel web geliştiricisi olarak çalışırken Python'a hiç ihtiyaç duymadım, o yüzden şimdi öğreniyorum. Perl ve Ruby dahil web odaklı dillerin neredeyse hepsini kullandım
Python, genel kavramları öğretmek için uygun bir dil gibi görünüyor ve başvurabileceğim bir kitabın olması faydalı olur
O sıralarda ekibin ana dili Java oldu ve statik tiplerin avantajlarını gördükten sonra geri dönemedim
Sonrasında Python da isteğe bağlı tip desteği ve bunu zorlayan IDE'ler sayesinde çok gelişti ama şimdi tamamen statik tipli dillere kaymış durumdayım
Yardımcı script'ler yazarken, sadece bash kullanmaktan çok daha rafine olduğu için Python'ı hâlâ seviyorum. Ama tamamlanmış bir uygulama için dil seçme şansım varsa Java/Scala gibi dilleri tercih ederim. Rust da harika ama çoğu sıradan insan için öğrenme eğrisi fazla dik
PyCharmgibi araçların desteklediği Python isteğe bağlı tiplerini hiç bizzat kullanmadım; bu yüzden araç desteğiyle statik tipli dillere benzer bir deneyime dönüşmüş olabilir.IntelliJ Community Editioniçinde Python tip zorlamasını açıp kullanmış biri varsa deneyimini duymak isterimThink Python2. baskıyı okuyunca gerçekten içine girdim; sonrasında başka kitaplar da okuyup yazılım kariyerine geçiş yaptımThink Pythonsayesinde ilk kez gerçekten kavradımThink Pythonı seviyorum ve birçok öğrenciye önerdim. Yeni programcılar için bir kitabın dikkat etmesi gereken pek çok unsurun dengesini gerçekten çok iyi kuruyorAllen Downey benzer yaklaşımla başka birçok kitap da yayımladı: https://greenteapress.com/wp/
Bazılarında titizliği azaltma tarafına biraz fazla gidildiğini düşünüyorum ama incelediklerim genel olarak oldukça iyiydi
Bir keresinde bir konferansta Allen'la aynı masadaydım; ona kitaplarını ne kadar sık önerdiğimi ya da hediye olarak aldığımı söyleyince sanırım abarttığımı düşündü
Think Pythonsayesinde tanımıştımKonuyu biraz değiştiriyorum, kusura bakmayın ama hâlihazırda pratik deneyiminiz varsa ve bunu iş üzerinde geliştirmeye devam ediyorsanız, orta/ileri seviye Python geliştiricileri için benzer kalitede kaynaklar var mı?
Dilde ya da standart kütüphanede bilmediğim büyük parçalar hep varmış gibi geliyor
https://docs.python.org/3/tutorial/index.html
https://docs.python.org/3/library/index.html
Her yeni sürüm çıktığında
What’s Newbelgelerini okurumBunun dışında standart kütüphanenin ve popüler üçüncü taraf paketlerin kaynak kodunu okumayı seviyorum. Bu tavsiye yalnızca Python için değil, yeni bir dili öğrenirken ya da yeniden alışırken de genelde geçerli
Effective Pythoniyiydi. Kullanım senaryoları ve uygulama örnekleriyle birlikte öneriler sunan ipuçları formatında bir kitapFluent Pythonbu seviye için iyi bir kitap ve çalışırken başvuru kaynağı olarak kullanmak için de uygunAyrıca yalnızca Norvig'in her yılki Advent of Code çözümlerini okuyarak bile zarif ve özlü Python kodu yazma konusunda sık sık içgörü kazanıyorum
Fluent PythonveEffective Pythoniyi kitaplar. İlki çok kalın; hatta neredeyse bir araya getirilmiş birkaç kitap gibiYazar, en güncel Python projelerini, çoğunlukla Bayesçi veri analizi çalışmalarını https://www.allendowney.com/blog/ adresindeki blogunda paylaşıyor; ben de oldukça keyifle takip ediyorum
Orta ve ileri seviye Python programlama için hangi kitaplar var? Python’ı ve genel olarak programlamayı zaten biliyorum ama Python becerilerimi daha da geliştirmek istiyorum
Şu anda okuduğum
Fluent PythonveCPython Internalsdışında pek bir şey bilmiyorumÖrneğin
Effective Pandas 2, tablo biçimindeki veriyle çalışırken sık görülen kalıpları gösteriyor. Bu süreçte comprehension, lambda ve unpacking kullanıyor; ayrıcapytestile nasıl refactor yapılacağını ve veriyi anlamak için görselleştirmenin nasıl kullanılacağını da gösteriyorBu arada yazarı benim
Fluent Pythonyeterli. Geri kalan dil özelliklerini resmî başvuru kılavuzunu okuyarak anlarsınhttps://www.redblobgames.com/ sitesinde de oldukça zekice yazılar var
Exercises in Programming Style2. baskısına da göz atmaya değerÇok bilinen bir kitap değil ama aynı problemi farklı kısıtlar altında çözmenin çeşitli programlama stillerini inceliyor
Belirli bir ustalık seviyesini, yani temel profesyonel düzeyi aştıktan sonra geriye kalan tek şey kod okuyup yazmak oluyor
İlgili yazılar:
Think Python 2e- https://news.ycombinator.com/item?id=35421096 - Nisan 2023, 30 yorumThink Python: How to Think Like a Computer Scientist- https://news.ycombinator.com/item?id=1586000 - Ağustos 2010, 9 yorumÇok şanslıyım. Python mentörlüğüne daha yeni başladım ve Downey’nin büyük bir hayranıyım. Gerçekten olağanüstü bir eğitimci ve Rönesans insanı
Bu kitabı kesinlikle takip edeceğim
Ben de programlamayı ilk öğrenirken bu kitap hayatımı değiştirmişti. Kariyer değiştirmemden çok, kitabın yazılma biçimi ve bazı kavramları ele alış şekli, tamamen acemi olan benim bir anda anlamamı sağlamıştı
Şimdi 10–15 yıl sonra 3. baskıyı görünce yoğun bir nostalji hissediyorum; bu kitabı ne kadar tavsiye etsem az
Önceki
Think Javabaskısında özellikle şu alıntıyı seviyordum: https://files.catbox.moe/v1vgdc.jpgBir başka harika kısım da şu: