17 Buku Pemrograman Terbaik untuk Meningkatkan Keterampilan Coding pada 2021
Pemrograman adalah salah satu bidang yang paling dicari, yang memberikan peluang yang banyak bagi calon untuk belajar dan menghasilkan uang. Namun, untuk berkembang di bidang ini, Anda perlu terus belajar dan mengembangkan keterampilan Anda. Dan apa yang lebih baik dari buku untuk belajar?
Jenis buku pemrograman terbaik adalah yang tidak hanya memberitahu Anda tentang sintaks dan semantik bahasa tetapi juga membantu Anda berpikir, mengorganisir, dan menjadi coder yang lebih baik. Mereka mengajarkan Anda cara memecahkan masalah secara efisien, yang memang adalah pelajaran paling krusial bagi seorang programmer.
Ada banyak artikel di internet yang klaim menjadi daftar buku pemrograman yang harus dibaca, tetapi mereka semua merekomendasikan buku lama yang sama. Menemukan sumber daya yang baik dan segar menjadi sangat sulit.
Untuk memudahkan pekerjaan ini bagi Anda, kami telah mencantumkan beberapa buku pemrograman terbaik yang ditulis secara khusus untuk memberikan Anda dasar yang kokoh di semua area yang penting bagi coder yang lebih baik. Jika Anda membaca salah satu dari ini, Anda akan berada selangkah di depan hampir semua orang di sekitar Anda.
17. Don’t Make Me Think, Revisited
Penulis: Steve Krug
Dirilis pada: 2013
Cocok untuk: Pemula
Penulis membuat topik usability web benar-benar menyenangkan. Bersama gaya tulisan yang ringan, ia memberikan sentuhan kekocakan untuk menjaga perhatian Anda dari sampul hingga sampul.
Buku ini membuat Anda berpikir secara mendalam tentang usability dan aksesibilitas. Semua bab logis dan padat. Ada banyak contoh yang menjelaskan sudut pandang penulis dan menunjukkan bagaimana berbagai pemangku kepentingan dalam proyek web dapat berkontribusi pada usability situs.
Menurut pendapat saya, semua orang harus membaca buku ini — desainer harus membacanya untuk mempelajari aturan emas sebelum mereka meletakkan pena ke kertas, coder harus membacanya untuk memahami persyaratan teknis implementasi usability, dan manajer proyek harus membacanya untuk merangsak otak untuk berpikir dan melihat dunia dengan cara baru.
16. Peopleware: Productive Projects and Teams
Penulis: Tom DeMarco dan Tim Lister
Dirilis pada: 2013 (Edisi Ketiga)
Cocok untuk: Pemula
Ditulis oleh dua konsultan perangkat lunak, Peopleware adalah buku terkenal tentang manajemen organisasi perangkat lunak. Ini menekankan fakta bahwa sebagian besar masalah pengembangan perangkat lunak adalah manusia, bukan teknis.
Buku ini mengeksplorasi konflik antara perspektif pekerjaan individu, ideologi korporasi, dan teori ruang kerja. Sebagian besar subjek disajikan sebagai prinsip yang didukung oleh sumber otoritatif atau cerita konkret.
Setiap orang yang bekerja (tidak peduli apakah dia manajer atau sedang dikelola) harus membacanya karena ini memberitahu Anda tentang membangun tim yang sukses dan efektif dengan cara yang sangat padat dan lurus.
15. Working Effectively with Legacy Code
Penulis: Michael Feathers
Dirilis pada: 2004
Cocok untuk: Menengah
Buku Feathers berusia lebih dari 16 tahun. Namun, kontennya tidak usang. Ini mencakup katalog 24 metode untuk memutuskan ketergantungan yang memungkinkan Anda untuk membuat perubahan dengan aman dalam program Anda.
Buku ini mengajarkan Anda cara bekerja dengan program warisan yang besar dan tidak teruji, cara mengidentifikasi dengan akurat titik di mana perubahan kode diperlukan, dan cara menangani aplikasi yang tidak tampak memiliki struktur yang tepat.
Anda akan menemukan banyak teknik yang dapat diterapkan dalam bahasa atau platform apa pun, termasuk C, C++, C#, dan Java. Beberapa teknik tampak usang, tetapi Anda tidak akan pernah tahu kapan Anda mungkin membutuhkannya.
14. Make Your Own Neural Network
Penulis: Tariq Rashid
Dirilis pada: 2016
Cocok untuk: Pemula dan Menengah
Apa yang biasanya Anda harapkan saat membeli buku yang terkait dengan kecerdasan buatan. Definisi di setiap halaman? Teorema dan bukti? Banyak matematika? Paragraf yang kering? Nah, buku ini berbeda. Anda akan mendapatkan tepat apa yang Anda butuhkan untuk memahami topik dan menerapkannya—tidak lebih, tidak kurang.
Ini mengajarkan Anda cara membuat jaringan saraf Anda sendiri (dalam Python) dan melatihnya untuk mengenali angka tulisan tangan manusia. Buku ini dibagi menjadi tiga bagian:
- Bagian 1: memperkenalkan konsep matematika yang mendasari jaringan saraf.
- Bagian 2: mencakup dasar-dasar bahasa pemrograman Python dan cara membangun jaringan saraf yang dapat belajar untuk mengenali angka tulisan tangan.
- Bagian 3: mengeksplorasi teknik untuk meningkatkan performa jaringan saraf dan mengujinya pada tulisan tangan Anda sendiri.
Bagi orang yang sepenuhnya tidak menyadari cara kerja jaringan saraf, buku ini dapat menjadi pembuka mata yang sempurna dan memberikan dasar untuk pembelajaran di masa depan.
13. Code: The Hidden Language of Computer Hardware & Software
Penulis: Charles Petzold
Dirilis pada: 2000
Cocok untuk: Pemula dan Menengah
Buku ini membuka dunia komputasi melalui format cerita linear singkat. Dimulai dengan teknologi lebih tua seperti kode Morse, Braille, dan logika Boolean, penulis secara bertahap menangkap era modern dengan pembicaraan tentang HTTP dan WWW.
Kemudian ia menjelaskan perkembangan yang lebih baru, termasuk topik seperti ASCII, sistem operasi, dan matematika titik mengambang. Untuk membuat bab-bawaan menarik, ia juga menggunakan metafora dan analogi secara hemat.
Apapun keterampilan teknis Anda, buku ini akan mempesona Anda, dan bahkan mungkin membangunkan teknofil dalam diri Anda.
12. The C++ Programming Language
Penulis: Bjarne Stroustrup
Dirilis pada: 2000
Cocok untuk: Menengah hingga Ahli
Ditulis oleh ayah C++ sendiri, ini adalah buku C++ yang paling tepercaya dan banyak dibaca di dunia. Ini memberikan cakupan yang lengkap dan otoritatif tentang bahasa C++, teknik desain kunci, dan perpustakaan standarnya.
Buku 1300 halaman ini dapat dibagi menjadi tiga bagian. Bagian pertama (bab 2-5) adalah kursus intensif tentang C++. Bagian kedua (bab 6-29) adalah bagian tutorial terstruktur. Bagian terakhir (bab 30-44) mengeksplorasi perpustakaan standar, yang merupakan bagian penting dan integral dari C++ sama seperti bahasa itu sendiri.
Jika Anda ingin mempelajari bahasa dengan cepat, ini bukan untuk Anda. Namun, jika tujuan Anda adalah menjadi mahir (butuh banyak waktu dan usaha untuk sampai ke sana), ini adalah buku untuk Anda. Ini adalah bacaan yang panjang dan sangat teknis yang mencakup setiap aspek bahasa dari dasar hingga esoteris dengan sangat rinci.
11. Introduction to Algorithms
Penulis: Thomas Cormen, Clifford Stein, Ronald Rivest, Charles Leiserson
Dirilis pada: 2001
Cocok untuk: Pemula dan Menengah
Buku ini mencakup berbagai macam algoritma secara rinci, dari algoritma klasik dalam teori graf hingga algoritma khusus dalam teori bilangan, geometri komputasi, dan pencocokan string.
Semua dijelaskan dalam bahasa yang sangat sederhana tanpa mengorbankan kedalaman cakupan atau ketelitian matematis. Namun, jangan harapkan buku resep algoritma murni yang dapat disalin atau diunduh.
Jika Anda pemula, Anda perlu membaca setiap bab dengan hati-hati. Latihan di akhir setiap bab akan membantu Anda memahami konsep yang baru saja Anda baca dengan lebih baik. Cukup keluarkan cukup jam kerja ke dalam buku teks ini, dan Anda akan mempelajari pendekatan konkret untuk menentukan seberapa keras Anda membuat komputer bekerja.
10. Effective Java
Penulis: Joshua Bloch
Dirilis pada: 2017
Cocok untuk: Pemula hingga Ahli
Sejak edisi pertamanya (diterbitkan pada tahun 2001), Effective Java telah berubah secara dramatis. Penulis telah memperbarui judul untuk memanfaatkan fitur versi dan perpustakaan Java baru.
Seperti edisi sebelumnya, setiap bab berisi beberapa bagian (setiap bagian ditulis dalam bentuk esai sederhana dan mandiri yang memberikan wawasan tentang hal-hal yang halus platform Java) dan cuplikan kode yang diperbarui.
Buku ini mencakup hampir semua fitur penting Java serta praktik baik dan buruk dari beberapa perpustakaan yang kita gunakan saat ini. Karena sulit untuk mengingat semuanya (bahkan bagi programmer yang berpengalaman), saya menyarankan Anda untuk menjadikannya sebagai buku referensi saat Anda coding.
9. Fluent Python
Penulis: Luciano Ramalho
Dirilis pada: 2015
Cocok untuk: Ahli
Selalu menyenangkan untuk mengikuti penulis yang benar-benar memahami bahasa pemrograman dan memiliki didaktika yang baik. Luciano Ramalho adalah salah satu penulis tersebut. Ia menulis tentang Python dengan gairah tetapi tanpa menyembunyikan jebakan dan kekurangannya.
Sementara beberapa bab tampil sederhana, yang lainnya mencakup kekuliaran dan kerumitan, menyentuh inti bahasa. Ini mencakup model data Python, struktur data, fungsi sebagai objek, alur kontrol, dan metapemrograman.
Secara keseluruhan, buku 700 halaman ini akan memperkenalkan Anda pada fitur inti dan perpustakaan Python dan mengajarkan Anda cara membuat kode Anda lebih cepat, lebih pendek, dan lebih mudah dibaca.
8. Code Complete
Penulis: Steve McConnell
Dirilis pada: 2014 (Edisi Kedua)
Cocok untuk: Pemula hingga Ahli
Buku klasik ini telah diperbarui dan direvisi sepenuhnya dengan ratusan contoh kode baru dan praktik terdepan, menggambarkan ilmu dan seni pengembangan perangkat lunak.
Buku ini dibagi menjadi tujuh bagian: enam bagian pertama mendasarkan dasar, menulis program berkualitas tinggi, variabel, pernyataan, dan peningkatan kode. Bagian ketujuh tentang kearifan perangkat lunak (karakter, gaya, tata letak, dan dokumentasi).
Menurut pendapat saya, setiap programmer dengan 2-3 tahun pengalaman harus membaca buku ini. Meskipun tidak berlaku untuk semua proses pengembangan perangkat lunak dan dapat usang di beberapa tempat, ini pasti menyampaikan ide yang harus dipahami dan diadopsi oleh semua programmer.
7. Deep Learning
Penulis: Ian Goodfellow, Yoshua Bengio dan Aaron Courville
Dirilis pada: 2016
Cocok untuk: Ahli
Ini menyediakan detail yang sangat besar untuk jaringan saraf dan versi dalamnya. Penulis telah mengkategorikan topik-topik yang sulit dengan cara yang menyampaikan ide dengan lancar.
Buku ini dibagi menjadi tiga bagian:
- 150 halaman latar belakang: mencakup konsep yang relevan dalam komputasi numerik, teori probabilitas, teori informasi, dan machine learning.
- 300 halaman aplikasi: Ini adalah bagian inti yang mencakup jaringan feedforward dalam, pemodelan urutan, jaringan konvolusional, dan algoritma optimisasi. Ini meninjau berbagai aplikasi dalam pemrosesan bahasa alami, bioinformatika, dan videogame.
- 200 halaman topik penelitian: mencakup topik teoretis seperti representasi learning, metode Monte Carlo, dan model generatif dalam.
Buku ini untuk orang yang sudah familiar dengan konsep deep learning dan ingin menjelajahi latar belakang teoretisnya. Ini juga sangat bagus untuk mahasiswa Ph.D. dan peneliti yang karya mereka berputar di sekitar kecerdasan buatan.
6. Artificial Intelligence: A Modern Approach
Penulis: Stuart Russell, Peter Norvig
Dirilis pada: 2015
Cocok untuk: Pemula dan Menengah
Buku ini tidak hanya menjadi pengantar yang bagus untuk kecerdasan buatan tetapi juga berfungsi sebagai kursus tinjauan dalam penulisan teknis. Ia tidak mengasumsikan latar belakang yang banyak selain paparan pada notasi matematika dan pemahaman dasar tentang efisiensi algoritma atau kompleksitas komputasi.
Buku ini berisi segala sesuatu yang mungkin ingin Anda ketahui seputar kecerdasan buatan. Setiap konsep dijelaskan dengan sangat baik dan dipenuhi dengan contoh untuk membantu Anda memahami arti sebenarnya di baliknya.
Ini juga mencakup implikasi praktis di bidang yang sama, seperti pengenalan suara, terjemahan mesin, robotika, dan banyak lagi. Baca, baca lagi, dan treatment dengan hati-hati — Anda akan memanen imbalannya untuk waktu yang panjang mendatang.
5. Clean Code: A Handbook of Agile Software Craftsmanship
Penulis: Robert Cecil Martin
Dirilis pada: 2007
Cocok untuk: Pemula dan Menengah
Penulis Clean Code paling dikenal karena mengembangkan banyak prinsip desain perangkat lunak. Dalam buku ini, ia telah memperkenalkan praktik agile terbaik untuk membersihkan kode ‘secara langsung.’
Ini menampilkan banyak cuplikan kode, dan Anda perlu mengidentifikasi apa yang salah dengan itu dan apa yang benar tentang kode tersebut. Buku ini mengajarkan Anda bagaimana kode yang buruk tampaknya dan bagaimana seharusnya ditulis sejak awal.
Ada tiga bagian. Pertama memperkenalkan pola, prinsip, dan praktik penulisan kode bersih. Kedua berisi banyak studi kasus yang berbeda. Ketiga berisi daftar heuristik yang dikumpulkan saat membuat studi kasus.
Sementara sebagian besar contoh berpusat pada Java, siapa pun yang tertarik untuk menghasilkan kode yang lebih baik dapat membaca buku ini — baik Anda pengembang perangkat lunak, pemimpin tim, analis sistem, atau manajer proyek.
4. Cracking the Coding Interview
Penulis: Gayle Laakmann McDowell
Dirilis pada: 2011
Cocok untuk: Pemula dan Menengah
Cracking the Coding Interview adalah panduan yang paling luas dan terperinci tentang cara sukses dalam wawancara pemrograman atau pengembangan perangkat lunak.
Ini dimulai dengan menjelaskan ‘mengapa’ wawancara teknis, cara berlatih untuk pertanyaan non-teknis, cara menganalisis dan memecah masalah, cara menulis kode yang efisien, dan cara merespons penerimaan dan penolakan.
Kemudian Anda akan menemukan lebih dari 180 pertanyaan dan jawaban pemrograman, yang membentuk inti buku. Setiap bagian dimulai dengan diskusi tentang pengetahuan inti dan pendekatan untuk mengatasi masalah serupa, menyelam ke dalam teknik tepat untuk menyelesaikannya. Anda juga akan menemukan tautan dalam buku sehingga Anda dapat mengunduh, mengompilasi, dan menganalisis solusi sendiri.
3. Grokking Algorithms
Penulis: Aditya Bhargava
Dirilis pada: 2015
Cocok untuk: Menengah dan Ahli
Ini adalah pendekatan yang tidak memusingkan dari topik inti ilmu komputer. Buku ini mengajarkan Anda cara menerapkan algoritma pada masalah kehidupan nyata yang Anda hadapi dalam kehidupan sehari-hari sebagai coder.
Ini dimulai dengan masalah sederhana seperti pencarian dan pengurutan. Saat Anda membangun keterampilan berpikir Anda, Anda akan menangani topik yang lebih kompleks seperti hashing, graf, algoritma gulir, MapReduce, P vs. NP, kompresi data, dan banyak lagi. Semua dijelaskan menggunakan ilustrasi dan contoh visual.
Baik Anda mengembangkan aplikasi seluler, video game, atau alat bisnis, Anda akan mempelajari metode algoritmik untuk memecahkan masalah yang sebelumnya di luar jangkauan Anda. Misalnya, Anda akan dapat memahami cara kerja kompresi data menggunakan Huffman coding, menulis pemeriksa ejaan menggunakan algoritma graf, dan banyak lagi.
2. Design Patterns: Elements of Reusable Object-Oriented Software
Penulis: Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides
Dirilis pada: 1994
Cocok untuk: Pemula dan Menengah
Mengkaji kekayaan pengalaman tentang desain perangkat lunak berorientasi objek, “Gang of Four” menyajikan katalog solusi sederhana dan padat untuk masalah desain umum.
Buku ini dimulai dengan mendeskripsikan apa itu pola dan bagaimana mereka dapat berguna dalam alat berorientasi objek. Ini mengajarkan Anda bagaimana pola ini masuk ke dalam fase pengembangan perangkat lunak, dan bagaimana pengembang dapat menggunakannya untuk menyelesaikan masalah desain mereka sendiri dengan paling efisien.
Buku ini dibagi menjadi dua bagian, dengan dua bab pertama menjelaskan keuntungan dan kerugian pemrograman berorientasi objek, dan bab yang tersisa mengeksplorasi 23 pola desain perangkat lunak klasik. Ini mencakup banyak contoh dalam Smalltalk dan C++.
Ini dianggap sebagai sumber penting untuk teori dan praktik desain berorientasi objek. Lebih dari setengah juta kopi telah terjual dalam 14 bahasa.
1. The Pragmatic Programmer: Your Journey to Mastery
Penulis: Andrew Hunt dan David Thomas
Dirilis pada: 2019
Cocok untuk: Pemula dan Menengah
Ini adalah edisi kedua dari buku berpengaruh the Pragmatic Programmer yang diterbitkan pada tahun 1999. Dua dekade kemudian, edisi baru ini meninjau ulang apa artinya menjadi coder modern.
Ini mencakup beberapa tips untuk meningkatkan proses pengembangan dengan cara yang praktis. Ini mencakup berbagai topik yang berguna, dari pengembangan karir dan tanggung jawab pribadi hingga metode arsitektur untuk menjaga kode tetap fleksibel dan mudah dipelihara.
Buku ini akan mengajarkan Anda cara
- Menangkap kebutuhan nyata
- Menulis kode yang dinamis dan dapat disesuaikan
- Melindungi kode Anda dengan asserasi dan pengecualian
- Menguji kode secara ketat
- Menggunakan otomatisasi untuk membuat pengembangan lebih efektif
Jika Anda sudah merasa frustrasi dengan metodologi sebagian besar buku pemrograman, Anda harus mencoba yang satu ini. Ini memiliki semua yang Anda butuhkan untuk menjadi programmer yang praktis.