Buku-buku top saya tentang Python

Halo, Habr! Saya Slava, kepala tim "Alat Profesional" di Tsian, anggota Moskow Python Conf dan anggota tim inti penulis di Yandex.Practicum.



Bersama teman-teman, kami sedang mengembangkan kursus pengembang Python tengah , dan hari ini saya ingin membagikan daftar buku pribadi saya yang akan membantu Anda menyusun dan memperdalam pengetahuan Anda tentang pengembangan Python.







Belajar Python oleh Mark Lutz







Bagian atas dibuka oleh buku Mark Lutz "Learning Python". Itu memegang tempat khusus dalam karir saya - melalui itu saya belajar Python. Sebagai seorang siswa, bagi saya ini adalah pekerjaan mendasar - ada hampir seribu lima ratus halaman di dalam buku!



Buku ini akan memungkinkan Anda untuk memasukkan Python, seperti yang mereka katakan, dari awal. Mengapa orang memprogram dengan Python? Siapa yang menggunakan Python hari ini? Apa yang dapat Anda lakukan dengan Python? Apa kekuatan Python? Menjawab pertanyaan-pertanyaan ini akan memberi Anda pemahaman umum tentang bahasa tersebut.



Buku ini memperkenalkan mode interaktif - baris perintah Python kepada pembaca. Anda akan belajar tentang cara mengeluarkan teks ke keluaran standar, tentang modul dan impornya, tentang keanehan menggunakan Python di Windows.



Berikut ini adalah deskripsi tipe data dan fitur untuk bekerja dengannya. Bab-bab terpisah mencakup karya dengan string dan kamus. Anda akan belajar tentang percabangan dan loop, iterator, generator, fungsi dan argumennya, modul dan paketnya sebagai cara untuk mengatur kode Anda. Ini diikuti dengan pengenalan OOP: class, inheritance, operator overloading, polymorphism, dan metaclass. Menjelaskan tentang pengecualian dan perannya dalam bahasa.



Menurut saya, "Belajar Python" dengan sangat lancar dan komprehensif memperkenalkan pembaca ke dunia Python, di satu sisi, tanpa menjelaskan secara detail, di sisi lain, memberikan gambaran secara keseluruhan.



Python Kinerja Tinggi: Panduan Praktis untuk Orang, Misha Gorelik, Jan Oswald







Tempat kedua di atas ditempati oleh buku karya M. Gorelik dan J. Oswald "High Performance Python: A Practical Guide for People".



Buku itu akan memberi Anda sedikit intip di balik tudung lidah. Apa kinerja tinggi dalam hal Python? Buku ini memperkenalkan mesin virtual Python, mengajarkan Anda cara menggunakan alat pembuatan profil untuk menemukan hambatan dalam penggunaan waktu prosesor, berbicara tentang tipe data dari sudut pandang struktur internalnya.



Anda akan belajar tentang multithreading, asynchronous dan multiprocessor execution, bagaimana mengatur komputasi cluster, dan bagaimana mengkonsumsi lebih sedikit RAM. Untuk yang lebih canggih, ada bab tersendiri tentang kompilasi kode Python di C.



Kode Anda mungkin benar, tetapi tidak cukup cepat. Untuk membuatnya bekerja lebih cepat, Anda perlu memahami cara kerja bahasa yang Anda tulis. Panduan praktis ini akan membantu Anda mendapatkan pemahaman yang mendalam tentang implementasi Python.



"Python. Test Driven Development ", Harry Percival







Buku teratas berikutnya adalah “Python. Pengembangan Berdasarkan Pengujian ”Harry Percival. Saya cukup beruntung berbicara dengan Harry sebagai bagian dari Pekan Python Rusia 2020 terakhir . Mereka bilang orang Inggris itu sopan, dengan selera humor yang aneh. Saya pikir ini adalah stereotip. Harry banyak bercanda dan lucu, tersenyum, menceritakan kisah-kisah dari kehidupan, sangat terbuka. Yang terbaik dari semuanya, Harry akan menceritakan tentang bukunya sendiri.





, , . Python «Dive Into Python» — 2008-. , , — . - 14- -. . , , -. : «, !» -, . — , . , . Python — - -? ! Django-, - — , . ? . .



, , . - , 12 -, -, .



– . , , . . … , -. . , , ! , , !



. , , , — .



, . , : «- ? ?» : — . — . . : « ? , !» : «-, , ». , , , . ! - ! , - , — . .



Pengembangan yang didorong oleh pengujian bukanlah hal yang wajar; dibutuhkan latihan untuk memahaminya. Di buku saya hanya mencoba memberikan sedikit latihan.


Buku ini akan memungkinkan Anda untuk memikirkan kembali pekerjaan Anda dan pendekatannya, itu benar-benar akan mengubah pikiran Anda. Banyak hal rutin akan mendapat arti baru, minat akan muncul di dalamnya. Kualitas pengujian akan meningkat secara nyata, dan ini pasti akan mempengaruhi kualitas kode dan arsitektur aplikasi.



Pola Arsitektur dengan Python: Mengaktifkan Test-Driven Development, Domain-Driven Design, dan Event-Driven Microservices, Harry Percival, Bob Gregory







Saya tidak bisa tidak berbicara dengan Harry Percival tentang buku baru yang dia tulis bersama Bob Gregory, Pola Arsitektur dengan Python. Buku tersebut dapat dibaca gratis di www.cosmicpython.com . Harry melanjutkan.

. -, , API, , , — e2e-, ; , . , , — . , : , , , . , — , .



. , , - e2e- . . .



: , . , . Java C# ( -) Python. , Java Python ( ), , pythonic way.



Pertanyaan utama yang saya coba jawab dalam buku ini adalah bagaimana arsitektur aplikasi dapat membantu kita mendapatkan pengujian kualitas tertinggi.


Buku itu harus dibaca sebagai kelanjutan dari “Python. Pengembangan Berbasis Uji ". Jika Anda menyukai buku pertama, dan ide yang disajikan di sana beresonansi dengan Anda, maka buku kedua akan menjawab semua pertanyaan Anda dan membantu menghidupkan pendekatan - di tempat kerja atau dalam proyek pribadi Anda.



"Python. Ke puncak keunggulan ", Luciano Ramallo







Buku “Python. To the height of excellence ”oleh Luciano Ramalho yang luar biasa. Buku tersebut menjadi sangat sukses dan telah diterjemahkan ke dalam delapan bahasa.



Jika saya mencoba menjelaskan dalam satu baris tentang apa buku ini, maka saya akan mengatakan ini: ini tentang bagaimana menggunakan Python 3 dengan cara terbaik.



Luciano berusia 66 tahun dan tinggal dan bekerja di Sao Paulo, Brasil. Saya cukup beruntung untuk berbicara dengannya sebagai bagian dari Pekan Python Rusia 2020 yang lalu . Terlepas dari usianya, bagi saya Luciano tampak sebagai teman bicara yang sangat lincah, terbuka, dan ceria.







Luciano saat ini sedang mengerjakan edisi kedua buku tersebut. Dia berbagi bahwa perubahan utama dalam buku baru akan menjadi bab "Pengenalan Petunjuk Jenis" - ini belum selesai, tetapi sudah 60 halaman, dan ini akan menjadi bab terbesar dari buku itu!



Suatu ketika Luciano dipanggil untuk bermain bola voli.



“Saya tidak tahu cara bermain bola voli,” kata Luciano.

- Ya, tidak ada yang tahu cara bermain bola voli, kami hanya perlu satu orang lagi untuk membentuk tim, - jawab orang-orang.



Di tim, hanya kapten yang profesional. Dia menjelaskan bahwa pemain di lapangan mengoper bola ke pemain di tengah, dia mengoper bola ke pemain di bawah jaring, yang kemudian mengirim bola ke sisi lawan. Ini adalah Praktik Terbaik, jadi mainkan Pro.



Permainan dimulai, tim bertindak sesuai instruksi dan akhirnya mulai kalah.



Kenyataannya adalah bahwa tidak seorang pun kecuali kapten yang tahu cara bermain dengan cukup baik, dan seringkali selama operan tim kehilangan bola - bola jatuh ke tanah, dan gerakan tersebut diteruskan ke lawan.



Luciano membentuk tim.



- Mari berhenti berpura-pura bahwa kita Pro - kita benar-benar tidak tahu cara bermain profesional! Ayo segera lemparkan bola ke samping lawan tanpa mengopernya ke dalam - seperti yang kita lakukan dulu di sekolah!



Dan itu berhasil! Itu bukanlah Praktik Terbaik, tetapi taktik ini paling cocok untuk situasi dan tim yang mereka miliki. Dan pada akhirnya itu membuahkan kemenangan.



Cerita kecil ini juga penting bagi dunia Python. Anda perlu memahami bahwa Python digunakan oleh banyak orang yang bukan pengembang profesional - ini adalah fisikawan, ahli biologi, sosiolog, dan lainnya. Alat tersebut tidak mengharuskan mereka untuk melakukan Praktik Terbaik, tetapi memungkinkan mereka menyelesaikan tugas yang mendesak. Dan Python mengizinkannya.



Luciano sangat menyukai pemrograman. Dia mulai belajar Python 20 tahun lalu dan telah mengajarkannya kepada banyak orang sejak saat itu. Luciano menemukan bahwa karena Python sangat mudah dipelajari, terkadang orang bahkan tidak membaca keseluruhan tutorial. Karena itu, terkadang, ketika membaca kode orang lain, Anda dapat menemukan bahwa seseorang menulis kode Java dengan Python atau kode Ruby dengan Python, yaitu, dia mencoba mengulang dalam bahasa lain apa yang biasa dia gunakan. Luciano menciptakan kursus Python untuk Mereka yang Tahu Python. Setelah itu, dia banyak berbicara tentang topik bagaimana melakukan hal-hal tertentu dengan cara pythonic. Maka lahirlah buku itu.



Buku itu menjadi sangat sukses baik di dunia maupun untuk Luciano sendiri: dia mendapat pekerjaan di ThoughtWorks. Ia sangat ingin bekerja di sana, namun tidak berani mengirimkan resume kepada mereka karena persyaratan calon yang tinggi. Setelah buku itu diterbitkan, mereka sendiri mendatanginya. Saat ini, ThoughtWorks mendukung Luciano sebagai pembicara publik, seperti halnya Martin Fowler.



Judul Rusia untuk buku tersebut disarankan oleh pengembang inti Python Yuri Selivanov . Menurut Luciano, ini terjemahan yang bagus untuk bukunya.



Jika Anda serius ingin membangun karier sebagai pengembang Python, buku ini cocok untuk Anda.



Mengapa membaca buku



Saya sangat yakin bahwa membaca buku itu penting bagi orang-orang dari segala usia. Bukan hanya sastra profesional, tapi juga fiksi. Buku bertindak atas seseorang seperti batu asahan bertindak di atas pedang - mereka menambah ketajaman pada pengetahuan.



Stephen R. Covey menyebut ini "mengasah gergaji" dalam bukunya The 7 Habits of Highly Effective People. Keterampilan ini adalah sumber daya dan sarana pribadi Anda. Dia mendukung dan mengembangkan sumber daya Anda yang paling berharga - diri Anda sendiri.



"Bagaimana Anda mempelajari hal-hal baru?" - pertanyaan yang biasanya saya tanyakan pada kandidat dalam wawancara. Jawabannya sangat penting bagi saya, dan di sini tidak cukup bagi saya untuk mendengar tentang membaca artikel, menonton video di YouTube, atau mendengarkan podcast. Hanya buku yang memberikan struktur pengetahuan, tanpa jeda dan dengan konteks penuh, membawa pembaca menuju pencerahan.



Untuk memparafrasekan Anton Ptushkin, saya akan berkata: "Bacalah, itu sepadan!"



PS Daftar buku yang kita bahas hari ini mengaku tidak lengkap. Jika menurut Anda ada buku yang tidak kalah layaknya untuk menempati peringkat tersebut, maka saya mengundang Anda untuk bergabung dengan papan Trello., di mana kami - komunitas pengembang Python Rusia - membuat peringkat buku kami sendiri tentang pengembangan Python. Serasa di rumah sendiri - pilih yang sudah ada, tambahkan buku baru, atau seluruh kategori!



PPS Masih ada pertanyaan? Cari saya di web: slavabezborodov.com



All Articles