Apakah Seni Pemrograman Komputer diperhitungkan sebagai satu buku atau beberapa?
David Thornley
2
@ David Saya pikir secara teknis satu buku dalam beberapa volume.
Paddyslacker
Jawaban:
69
Kode Lengkap oleh Steve McConnell. Saya bahkan tidak berpikir itu perlu penjelasan. Ini buku definitif tentang konstruksi perangkat lunak. Ditulis dengan sangat baik dan mencakup semua aspek sisi praktis (pemrograman) pembuatan perangkat lunak.
+1 untuk memilih edisi kedua juga - begitu banyak perbaikan dibandingkan edisi pertama yang merupakan buku yang berbeda.
Paddyslacker
+1 - Saya memiliki terjemahan Italia. Setelah itu, saya tidak pernah membeli buku pemrograman atau teknis lain yang diterjemahkan dalam bahasa saya, karena terjemahannya sangat buruk. Saya harus membeli edisi bahasa Inggris untuk benar-benar memahami beberapa kalimat!
Saya tidak bisa setuju. Sangat menarik bahwa kata tidak berubah bahkan tidak ada dalam buku ini.
Jonas
2
Meskipun saya menyimpan salinan edisi pertama, saya pikir saya belum pernah kembali ke sana. Alasannya mungkin karena mendapatkan buku tentang setiap topik yang menurut McConnell penting.
+1 karena realistis. Buku ini relevan, mudah dibaca, dan mungkin buku yang banyak pengembang sebenarnya dapat manfaat dari membaca sebenarnya. Terlalu banyak orang lain dalam daftar ini yang sulit dan saya ragu telah membaca sampul depan.
spong
Jawaban ini berulang.
buka
+1 - buku pemrograman favorit kedua saya di belakang Code Complete (dan jujur, kadang-kadang, ini yang pertama)
Alan
36
Struktur dan Interpretasi Program Komputer, alias SICP
Ketika saya melihat bahwa SICP belum terdaftar, saya meringis kesakitan. :)
Mengapa: Tidak ada lagi yang ditambahkan ke dalam buku Norvig yang memuji buku ini sebagai pengantar terbesar untuk ilmu komputer yang pernah ditulis. Baiklah, karena Mengapa? diminta: SICP mencakup dasar-dasar perangkat lunak dengan cara yang sangat mendalam, mengangkat banyak perspektif dan pertanyaan tentang sifat komputasi - beberapa di antaranya masih merupakan masalah terbuka - sambil mengarahkan pembaca untuk melihat melampaui aspek dangkal dari memberitahu mesin apa untuk melakukan, atau bagaimana melakukannya.
Semua memuji SICP. IMO, itu harus menjadi buku teks untuk kursus pemrograman pengantar wajib di semua sekolah CS. Itu pasti akan menyingkirkan orang-orang yang tidak bisa benar-benar memotongnya dalam pemrograman (apalagi CS) sambil memperkuat keterampilan CS dan pemrograman untuk mereka yang berpotensi.
luis.espinal
1
@ luis.espinal SICP tampaknya berlebihan untuk pemrograman pengantar (kecuali kita berbicara sekolah pascasarjana). Ada alasan mengapa MIT membatalkan kursus SICP sebagai kursus intro-nya .... Masih saya setuju bahwa sangat berharga untuk membaca buku ini (dan melakukan latihan-latihan ...) tetapi melakukan hal itu dalam semester kuliah standar akan sulit bahkan untuk siswa rata-rata di atas. Juga intro dengan Java / Python / Ruby / C lebih relevan dengan tenaga kerja, semakin cepat Anda membiasakan seseorang dengan bahasa imperatif, semakin baik ... SICP bagus setelah itu untuk memperluas cakrawala Anda. Tapi mungkin mengecewakan sebagai kursus intro ...
Cervo
1
@Cervo - Ini masalah yang sahih, dan memang terlihat seperti kerja keras, tapi (dan ini adalah posisi yang sepenuhnya subjektif yang saya akui), saya sangat percaya ini memberikan fondasi yang lebih dalam daripada yang biasanya ditemukan dengan pendekatan arus utama lainnya . Juri masih keluar dengan MIT sekarang bahwa mereka telah beralih ke Python (beberapa alasannya adalah bahwa ia juga memiliki kemampuan FP dan sangat setuju untuk komputasi ilmiah dan robotika, yang Skema tidak.) Tidak ada yang salah dengan Python (sebenarnya saya cinta bahasanya), tetapi juri akan keluar sampai versi Python'esque dari SICP keluar.
luis.espinal
2
@ con't - Artinya, saya sarankan SICP bukan karena Skema, tetapi karena konten pedagogisnya. Saya sebenarnya menyarankan untuk memulai dengan perakitan (orang-orang melakukannya dengan cukup sukses), tetapi tidak ada buku perakitan (dan mungkin tidak akan pernah ada) seperti SICP. Yang paling dekat adalah ensiklopedia Knuth (dan itu akan menjadi kerja keras.) Untuk java , saya telah bekerja dengannya selama 12 tahun, dan saya tidak akan merekomendasikannya untuk mengajar .. menyelesaikan pekerjaan, tetapi ini sangat menghebohkan karena sebuah PL. C, Python atau Ruby adalah bahasa yang dirancang jauh lebih baik.
luis.espinal
1
@ con't - juga, saya akan memperingatkan agar tidak menggunakan bahasa sebagai alat pedagogis karena itu adalah arus utama. Mainstream berubah setiap 2-3 tahun, dan dengan Java, bahasanya sederhana, tetapi tugasnya adalah mempelajari JVM, perpustakaan, dan arsitektur. Saya akan mengatakan untuk belajar Java dan pengembangan perusahaan NET di tahun ke-4 kuliah. Dan saya percaya (saya tahu, subyektif ) yang penting untuk memberikan ketelitian sejak dini. Kami memiliki terlalu banyak programmer point-n-klik di luar sana yang membutuhkan ketelitian sejak dini. Saya telah menghasilkan banyak uang dengan membersihkan sampah yang mereka tinggalkan, tetapi masih;)
Jika saya hanya bisa membaca satu buku tentang pemrograman, dan setelah saya selesai membacanya, itu hilang dan saya tidak pernah melihat buku lain selama sisa waktu, ini dia. Jika saya harus menyimpan buku di rak saya untuk melihat nanti ... Mungkin itu, volume yang lebih berorientasi referensi. Tetap beri +1!
SingleNegationElimination
Saya menikmati buku ini dan membacanya sampai tuntas. Namun banyak materi hanya berlaku untuk proyek skala sangat besar dengan ratusan atau bahkan ribuan orang yang mengerjakannya seperti OS; karena inilah yang dia dapatkan dari pengalamannya. Saya pikir Code Complete jauh lebih bermanfaat dalam hal pengetahuan yang bisa saya gunakan setiap hari dan itu berlaku bagi saya.
Kami memiliki edisi keempat tetapi ini adalah buku yang bagus tentang algoritma!
Chris
@ Chris: Saya tidak berpikir ada edisi keempat. Edisi ketiga adalah dari September 2009, jadi ini baru.
Jonas
Errr, edisi kedua dengan sampul hijau.
Chris
Ini adalah buku teks wajib untuk kelas saya istilah ini. Saya senang bahwa itu ada dalam daftar di sini, dan itu sangat dinilai pada pertanyaan SO asli!
Ini adalah yang buku untuk dibaca pada desain OOP dan arsitektur. Polanya bagus jika digunakan dengan benar, tetapi saya pikir nilai sebenarnya dari buku ini adalah memberi Anda kotak alat ide untuk digunakan saat mendesain.
Saya baru saja menghitung buku saya hari ini. 23 dari mereka Itu tergantung pada apa yang saya kerjakan. Saya kira jawaban abadi adalah "bahasa C", Oleh Kernighan dan Ritchie .
Ini berisi banyak tips bagus tentang cara mendapatkan basis kode yang ada yang sedang diuji dan dikelola, yang sebagian besar tidak saya ketahui sampai saya membaca buku ini. A harus membaca, bahkan jika kode lama yang Anda gunakan adalah kode Anda sendiri yang Anda tulis kemarin.
Saya tidak yakin ini memenuhi syarat sebagai "1 buku" (kecuali jika Anda benar-benar bermaksud "hanya Volume 1")
Inaimathi
Saya memiliki seluruh seri, tetapi saya akan puas dengan Volume 1. (Kelas ilmu komputer pertama saya diajarkan sejak tahun 1967. Ini sangat berharga). "Ketahuilah struktur datamu".
Ira Baxter
15
Buku-buku Java yang harus dimiliki:
Java Efektif oleh Josh Bloch
Java Concurrency in Practice Oleh Brian Goetz, et. Al.
Ha! Ini adalah pilihan saya dalam daftar buku terkait non-pemrograman! Saya kira ini membuatnya tidak bisa diklasifikasikan?
Paddyslacker
Saya sangat menyukai buku ini, sangat direkomendasikan oleh prof Theory of Computing di UW Madison - sangat membantu ketika mencoba memahami apa yang ia bicarakan.
Peter Turner
@Paddyslacker, GEB sebenarnya menghabiskan sedikit waktu berbicara tentang komputabilitas dan berbagai konsep ilmu komputer.
5
Programmer Pragmatis: Dari Journeyman hingga Master (Andrew Hunt dan David Thomas)
Getting Things Done (David Allen) mengajarkan Anda cara menangani ribuan tugas kecil yang perlu Anda selesaikan dalam pekerjaan Anda sehari-hari sebagai pengembang perangkat lunak. Meskipun tidak secara khusus diarahkan pada pengembang, itu jelas merupakan bantuan yang tak ternilai, karena pengembangan perangkat lunak biasanya melibatkan sejumlah besar tugas kecil yang perlu dilakukan dengan cara yang diprioritaskan. Sebagai contoh: fitur baru mana yang harus diterapkan, bug mana yang harus diperbaiki, bagian mana dari kode yang akan diperbaiki, bagian mana dari kode yang akan beristirahat atau diuji ulang, dll ...
+1: Hanya karena betapa kering dan detailnya. Sejak itu saya tidak pernah merasa seperti sudah tahu banyak tentang bahasa setelah menyelesaikan buku tentang itu.
Apakah iPad dihitung? Saya ingin mengatakan bahwa # 1 di rak buku saya adalah browser web dan kemampuan untuk mencari. API dan referensi daring adalah tempat terbaik dan itu akan tergantung pada rangkaian proyek saya saat ini.
Tidak, tidak. Lihat komentar tentang Kindle di atas. Yang mengatakan, saya suka iPad. Ini bisa menjadi sumber yang berharga, tetapi itu masih bukan buku nyata. +1, saya sedang dalam mood fanboy. :)
Kami memiliki terlalu banyak pengembang "OO" yang masih tidak tahu untuk apa objek atau kelas atau untuk apa; tidak tahu apa yang tampak seperti pemrograman OO, prosedural, modular dan terstruktur; dan entah bagaimana berhasil merusak kode pseudo-prosedural yang buruk bersama-sama dengan kelas.
Buku ini (ditambah beberapa oldies 70-an pada desain terstruktur) akan pergi jauh dalam membantu jiwa-jiwa miskin ini akhirnya memahami seperti apa seharusnya orientasi objek yang baik.
Lebih jauh lagi, kemungkinannya adalah jika saya dipaksa untuk memilih satu buku dan satu buku hanya di sebelah buku ini, saya tidak akan memilih buku yang spesifik teknologi .
Itu salah satu dari sedikit buku pemrograman yang saya simpan sejak pertama kali memulai pemrograman. Saya sering meminjamkan ini kepada orang-orang yang pertama kali memulai. Sekarang, tidak banyak, karena C tidak lagi menjadi bahasa pemrograman pertama orang. Itu melakukan pekerjaan yang luar biasa untuk menggambarkan apa yang terjadi di balik layar dan deskripsi tentang pointer membawa kejelasan nyata pada apa yang sebaliknya menjadi topik yang sangat membingungkan bagi banyak orang.
Sebenarnya saya tidak suka buku Jon. Informasi itu bagus, tetapi ada begitu banyak "oh, ini penting 10 bab dari sekarang" dalam buku sehingga terasa sangat tidak tertata.
Steven Evers
2
Sadarilah ada edisi kedua, yang merupakan pembaruan dari yang pertama dan juga mencakup C # 4.
Grant Palin
1
Desain Objek: Peran, Responsabilitas, dan Kolaborasi
Sejauh ini, ini adalah buku pemrograman favorit saya (meskipun tidak tergantung pada bahasa). Menurut pendapat saya yang sederhana adalah buku yang lebih baik menyajikan kasus tentang bagaimana merancang objek yang berhubungan dengan sepupu / saudara / tetangga mereka. Harus ada di rak buku programmer yang serius.
Jawaban:
Kode Lengkap oleh Steve McConnell. Saya bahkan tidak berpikir itu perlu penjelasan. Ini buku definitif tentang konstruksi perangkat lunak. Ditulis dengan sangat baik dan mencakup semua aspek sisi praktis (pemrograman) pembuatan perangkat lunak.
sumber
Mudah.
sumber
Struktur dan Interpretasi Program Komputer, alias SICP
Ketika saya melihat bahwa SICP belum terdaftar, saya meringis kesakitan. :)
Mengapa: Tidak ada lagi yang ditambahkan ke dalam buku Norvig yang memuji buku ini sebagai pengantar terbesar untuk ilmu komputer yang pernah ditulis. Baiklah, karena Mengapa? diminta: SICP mencakup dasar-dasar perangkat lunak dengan cara yang sangat mendalam, mengangkat banyak perspektif dan pertanyaan tentang sifat komputasi - beberapa di antaranya masih merupakan masalah terbuka - sambil mengarahkan pembaca untuk melihat melampaui aspek dangkal dari memberitahu mesin apa untuk melakukan, atau bagaimana melakukannya.
alt teks http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg
Klik gambar untuk menuju ke teks online gratis . Anda juga dapat dengan mudah menemukan ceramah video oleh penulis , lengkap dengan warna dan pakaian gaya tahun 80-an.
sumber
Layak disebut:
The Man-Month Mythical
sumber
Pengantar Algoritma
sumber
Pola Desain: Elemen Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali
Ini adalah yang buku untuk dibaca pada desain OOP dan arsitektur. Polanya bagus jika digunakan dengan benar, tetapi saya pikir nilai sebenarnya dari buku ini adalah memberi Anda kotak alat ide untuk digunakan saat mendesain.
sumber
Kode Bersih Robert C. Martin
Bahasa, kerangka kerja, metodologi datang dan pergi, tetapi banyak ide dalam buku ini, saya kira, selamanya.
sumber
Refactoring: Meningkatkan Desain Kode yang Ada
sumber
Saya baru saja menghitung buku saya hari ini. 23 dari mereka Itu tergantung pada apa yang saya kerjakan. Saya kira jawaban abadi adalah "bahasa C", Oleh Kernighan dan Ritchie .
sumber
Bekerja Efektif dengan Legacy Code oleh Michael Feathers.
Ini berisi banyak tips bagus tentang cara mendapatkan basis kode yang ada yang sedang diuji dan dikelola, yang sebagian besar tidak saya ketahui sampai saya membaca buku ini. A harus membaca, bahkan jika kode lama yang Anda gunakan adalah kode Anda sendiri yang Anda tulis kemarin.
sumber
Seni Pemrograman Komputer oleh Donald Knuth
sumber
Buku-buku Java yang harus dimiliki:
Java Efektif oleh Josh Bloch
Java Concurrency in Practice Oleh Brian Goetz, et. Al.
Java Puzzlers Oleh Josh Bloch, Neal Gafter
sumber
Coders bekerja oleh Peter Seibel
Menarik dan menginspirasi, sangat dianjurkan.
sumber
Gödel, Escher, Bach.
!
sumber
Programmer Pragmatis: Dari Journeyman hingga Master (Andrew Hunt dan David Thomas)
sumber
Getting Things Done (David Allen) mengajarkan Anda cara menangani ribuan tugas kecil yang perlu Anda selesaikan dalam pekerjaan Anda sehari-hari sebagai pengembang perangkat lunak. Meskipun tidak secara khusus diarahkan pada pengembang, itu jelas merupakan bantuan yang tak ternilai, karena pengembangan perangkat lunak biasanya melibatkan sejumlah besar tugas kecil yang perlu dilakukan dengan cara yang diprioritaskan. Sebagai contoh: fitur baru mana yang harus diterapkan, bug mana yang harus diperbaiki, bagian mana dari kode yang akan diperbaiki, bagian mana dari kode yang akan beristirahat atau diuji ulang, dll ...
sumber
Bahasa Pemrograman C ++ oleh Bjarne Stroustrup
sumber
Windows melalui C / C ++, Jeffrey Richter
sumber
Zen Pengoptimalan Kode oleh Michael Abrash
Bacaan wajib untuk programmer realtime - bahkan jika informasi spesifik prosesor diberi tanggal, pola pikir sangat berharga.
sumber
Apakah iPad dihitung? Saya ingin mengatakan bahwa # 1 di rak buku saya adalah browser web dan kemampuan untuk mencari. API dan referensi daring adalah tempat terbaik dan itu akan tergantung pada rangkaian proyek saya saat ini.
sumber
Pola Desain di Ruby:
sumber
Bruce F. Webster "Jebakan Pengembangan Berorientasi Objek"
Kami memiliki terlalu banyak pengembang "OO" yang masih tidak tahu untuk apa objek atau kelas atau untuk apa; tidak tahu apa yang tampak seperti pemrograman OO, prosedural, modular dan terstruktur; dan entah bagaimana berhasil merusak kode pseudo-prosedural yang buruk bersama-sama dengan kelas.
Buku ini (ditambah beberapa oldies 70-an pada desain terstruktur) akan pergi jauh dalam membantu jiwa-jiwa miskin ini akhirnya memahami seperti apa seharusnya orientasi objek yang baik.
Lebih jauh lagi, kemungkinannya adalah jika saya dipaksa untuk memilih satu buku dan satu buku hanya di sebelah buku ini, saya tidak akan memilih buku yang spesifik teknologi .
sumber
Itu salah satu dari sedikit buku pemrograman yang saya simpan sejak pertama kali memulai pemrograman. Saya sering meminjamkan ini kepada orang-orang yang pertama kali memulai. Sekarang, tidak banyak, karena C tidak lagi menjadi bahasa pemrograman pertama orang. Itu melakukan pekerjaan yang luar biasa untuk menggambarkan apa yang terjadi di balik layar dan deskripsi tentang pointer membawa kejelasan nyata pada apa yang sebaliknya menjadi topik yang sangat membingungkan bagi banyak orang.
sumber
Jon skeet's "c # in Depth"
sumber
Desain Objek: Peran, Responsabilitas, dan Kolaborasi
Sejauh ini, ini adalah buku pemrograman favorit saya (meskipun tidak tergantung pada bahasa). Menurut pendapat saya yang sederhana adalah buku yang lebih baik menyajikan kasus tentang bagaimana merancang objek yang berhubungan dengan sepupu / saudara / tetangga mereka. Harus ada di rak buku programmer yang serius.
sumber
Salah satu buku saya yang paling disukai;
Proses Pemikiran Berorientasi Objek oleh Matt Weisfeld
sumber