2 puan yazan GN⁺ 2024-02-17 | 1 yorum | WhatsApp'ta paylaş
  • 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
    1. 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
    1. 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
    1. 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

1 yorum

 
GN⁺ 2024-02-17
Hacker News görüşleri
  • Bu habere gerçekten sevindim. Practical Deep Learning for Coders Jupyter 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 Bayes ve Think Stats kitaplarını gerçekten seviyordum ama herkes not defteri kullanırken biraz uyumsuz hissettiriyordu
      AdventOfCode gibi şeylerle yeni bir dil öğrenirken ilk işim her zaman o dil için bir Jupyter imajı hazırlamak oluyor
    • Böyle gizlenebilir kod, dokümantasyon için çok iyi görünüyor. Bir süredir buna benzer bir şey arıyordum
  • Think Python 2. 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ım

    • Tam da şu anda okumam gereken şey buymuş
      Hayatı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
    • Karşı örnek olarak, bash/Perl ile başlayıp Python'a geçtim; başta gerçekten güzeldi ama sonra dinamik tipler yüzünden sorunlar çıkmaya başladı
      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
      PyCharm gibi 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 Edition içinde Python tip zorlamasını açıp kullanmış biri varsa deneyimini duymak isterim
    • Benim için de benzerdi. Java, Matlab, C ve Perl'i biraz biraz öğrenmiştim ama ancak Think Python 2. baskıyı okuyunca gerçekten içine girdim; sonrasında başka kitaplar da okuyup yazılım kariyerine geçiş yaptım
    • Benim için de öyleydi. Şehir değiştirip iş ararken bu kitabın çıktısını alıp bölüm bölüm okumaya başladım ve bu kitap sayesinde yazılım mühendisi oldum
    • C++ dersi, Java dersi derken yine de anlayamadığım nesne yönelimli programlamayı, Think Python sayesinde ilk kez gerçekten kavradım
  • Think 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 kuruyor
    Allen 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ü

    • Bir arkadaşımın oğlu üniversitenin son sınıfında ve benim önerdiğim Olin'e gidebilir. Olin'i de Think Python sayesinde tanımıştım
  • Konuyu 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

    • Python 1.5.2 zamanında resmi dokümantasyonla öğrenmeye başladım ve hâlâ iyi bir kaynak olduğunu düşünüyorum
      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 New belgelerini okurum
      Bunun 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 Python iyiydi. Kullanım senaryoları ve uygulama örnekleriyle birlikte öneriler sunan ipuçları formatında bir kitap
    • Fluent Python bu seviye için iyi bir kitap ve çalışırken başvuru kaynağı olarak kullanmak için de uygun
    • https://effectivepython.com/ hoşuma gidiyor
      Ayrı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 Python ve Effective Python iyi kitaplar. İlki çok kalın; hatta neredeyse bir araya getirilmiş birkaç kitap gibi
  • Yazar, 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 Python ve CPython Internals dışında pek bir şey bilmiyorum

    • Tekniklerin gerçek, pratik kodlarda nasıl uygulandığını gösteren kitaplara bakmaya değer olabilir
      Ö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ıca pytest ile nasıl refactor yapılacağını ve veriyi anlamak için görselleştirmenin nasıl kullanılacağını da gösteriyor
      Bu arada yazarı benim
    • Fluent Python yeterli. Geri kalan dil özelliklerini resmî başvuru kılavuzunu okuyarak anlarsın
    • Daha genel algoritmalar ve veri yapıları kitaplarına ya da tasarım üzerine kitaplara da bakabilirsin
      https://www.redblobgames.com/ sitesinde de oldukça zekice yazılar var
    • Cristina Videira Lopes’un Exercises in Programming Style 2. 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
    • Sonunda iş dönüp dolaşıp belgelere ve kaynak koda gelmiyor mu?
      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 yorum
    Think 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 Java baskısında özellikle şu alıntıyı seviyordum: https://files.catbox.moe/v1vgdc.jpg
    Bir başka harika kısım da şu:

    Sonra olanlar işin en güzel kısmıydı. Virginia’da lise öğretmeni olan Jeff Elkner, benim kitabım Think Javayı derslerinde kullandı ve onu Python’a çevirdi. Çeviriyi bana gönderdi; ben de kendi kitabımı okuyarak Python öğrenme gibi sıra dışı bir deneyim yaşadım.