Mengapa orang menggunakan buku pemrograman? [Tutup]


94

Saya menemukan bahwa ketika seseorang bertanya apa cara terbaik untuk belajar bagaimana memprogram, orang biasanya memberi mereka referensi ke banyak teks yang ditulis oleh berbagai penulis.

Namun saya tidak percaya banyak orang yang sama sekali belajar program dari buku. Saya menemukan bahwa mereka biasanya dihadapkan dengan tantangan dan kemudian menggunakan pemrograman sebagai alat untuk mengatasinya.

Misalnya saya 'masuk' pemrograman karena saya ingin memulai server untuk permainan yang saya mainkan, jadi saya mencari di Google dan membaca dukungan untuk server tertentu dan sekarang saya seorang insinyur perangkat lunak yang dipekerjakan, hanya menggunakan keterampilan yang saya kembangkan ( dan kemudian dikembangkan lebih lanjut) dengan mengkode skrip C # untuk paket server yang tidak terlalu populer.

Jadi pertanyaan saya adalah, apakah orang umumnya merasa lebih mudah untuk belajar dari buku-buku ini? Saya tahu saya telah melihat beberapa dari mereka dan menemukan mereka terlalu 'kering' untuk mendorong saya menyelesaikannya.


3
buku bukanlah buku utama di sini tetapi keuntungan besar jika Anda membaca buku mereka hanya buku lain yang menarik.
cnd

42
Apakah Anda berbicara tentang mempelajari cara memprogram dari awal, atau hal-hal yang lebih maju? Ada perbedaan besar antara 'Belajar C ++ dalam 24 jam' dan buku yang layak tentang hal-hal teoretis yang lebih maju - Anda tidak akan menemukan pekerjaan Knuth online.
André Paramés

78
Sepertinya Anda belum pernah menemukan buku pemrograman yang bagus.
Jaywalker

46
Ini adalah perumpamaan untuk pertanyaan, "mengapa pergi ke sekolah?"
Jodrell

8
Saya tidak pernah menemukan buku sebagai alat belajar utama, namun saya punya banyak buku dan saya merekomendasikannya sepanjang waktu. Jelas bahwa Anda hanya belajar sambil melakukan. Namun, buku adalah sumber ide dan dapat digunakan sebagai referensi yang tersedia. Kami tidak membaca / merekomendasikan buku untuk dipelajari. Kami membaca / merekomendasikan buku-buku untuk membagikan ide-ide yang terkandung di dalamnya.
Joel Etherton

Jawaban:


229

Begini cara saya belajar, secara umum:

  • Beli buku
  • Jangan membacanya dari depan ke belakang, tetapi ketahuilah di mana semuanya bisa ditemukan
  • Temukan proyek kesayangan untuk dikerjakan
  • Belajar dari pengalaman, tetapi gunakan buku sebagai referensi
  • Di mana buku gagal, selalu ada google

Catatan: poin ketiga terkadang lebih dulu.

Sunting : Untuk menjawab pertanyaan "Mengapa?"

Google hebat untuk mengetahui cara melakukan sesuatu, tetapi tidak bagus untuk mengetahui apa yang tidak Anda ketahui. Mengapa Anda pernah Google "delegasi C #," jika Anda tidak tahu bahwa C # memiliki konsep yang disebut delegasi dan bahwa mungkin berguna untuk memecahkan masalah yang sedang Anda kerjakan?

Juga, rasio signal-to-noise kadang-kadang agak tinggi. Jika Anda memiliki ide kasar di kepala Anda tentang bagaimana sesuatu dilakukan maka Anda dapat dengan mudah mengkonfirmasi apakah artikel yang Anda baca itu benar. Tetapi jika Anda tidak memiliki petunjuk ... Anda bisa berakhir dalam kekacauan yang lebih besar.


19
Jawaban yang bagus, terutama hasil edit sebagai jawaban "mengapa". Saya baru-baru ini mulai belajar ASP.NET, dan melakukannya dengan menggunakan google. Saya telah menggunakan C # untuk .NET 2.0 selama bertahun-tahun jadi saya pikir saya bisa bertahan. Setiap kali saya menemukan masalah, saya berhasil menemukan jawabannya dengan mencari di google, tetapi segera menjadi jelas bahwa saya hanya memukul ujung gunung es dari apa yang bisa saya lakukan, dan saya benar-benar kehilangan potongan besar dari perpustakaan. Sebuah buku memberikan gambaran teknologi yang lebih baik dan segala hal yang dapat dilakukannya. Hindari buku "pelajari x dalam 24 jam" dan pilihlah buku "lanjutan x".
Gavin Coates

44
+1 untuk "mencari tahu apa yang tidak Anda ketahui."
Covar

2
Perpanjangan ke poin ke-5: Ketika buku gagal, selalu ada google dan buku-buku lain pada topik, termasuk yang menargetkan non-pemula dalam topik .
Richard

5
+1 untuk "rasio signal-to-noise kadang-kadang bisa agak tinggi. Jika Anda memiliki ide kasar di kepala Anda bagaimana sesuatu dilakukan maka Anda dapat dengan mudah mengkonfirmasi apakah artikel yang Anda baca itu benar. Tetapi jika Anda sudah tidak ada petunjuk ... Anda bisa berakhir dalam kekacauan yang lebih besar. "
Tom Squires

9
"Di mana buku itu gagal, selalu ada google." Maksud Anda Stack Overflow;)
Joren

42

Beberapa alasan mengapa buku masih relevan:

  1. Saya merasa lebih mudah untuk membaca banyak teks di atas kertas daripada di layar LCD standar, mungkin e-book pada layar e-ink akan mengubah ini.
  2. Buku cenderung menggambarkan gambaran besar dan beberapa praktik yang baik, yang sangat bagus ketika Anda membutuhkan awal yang cepat atau tampilan baru.
  3. Google benar-benar bagus ketika Anda membutuhkan contoh tentang topik tertentu, tetapi tidak untuk gambaran besarnya.

Tetapi sebuah buku tidak akan pernah membawa Anda sepenuhnya, itu hanya akan mendorong Anda ke arah yang benar.


2
+1 untuk gambaran besar. Setelah saya memprogram dalam beberapa bahasa / lingkungan baru untuk sementara, saya menemukan buku sangat berguna untuk mengisi gambaran besar dan hal-hal yang saya lewatkan dari eksplorasi saya sendiri.
Adam Morris

2
Blog Raymond Chen, atau seri Going Deep di Channel 9, sangat membantu dalam mempelajari alasannya . Begitu Anda tahu " mengapa " sesuatu itu seperti apa adanya, bagaimana melakukannya menjadi detail yang sepele yang bisa di-google-kan. Biasanya penulis buku dapat pergi ke latar belakang untuk memahami logika dari apa yang terjadi, daripada mencoba untuk mengacaukan serangkaian string potongan kode yang Anda temukan online.
Ian Boyd

IMO, salah satu keuntungan besar yang dimiliki buku adalah kemampuan untuk menempelkan jari Anda di banyak tempat sekaligus sehingga Anda dapat dengan cepat membalik di antara bagian-bagian. Saya menemukan ini sangat berharga ketika saya mencoba untuk mempelajari sesuatu yang baru dengan melalui beberapa kode, karena saya sering mencari sesuatu yang lain (kadang-kadang beberapa hal) untuk memahami apa yang saya cari. Menavigasi di layar tidak sama.
TMN

Sepakat. Melompat langsung ke Asp.Net MVC, misalnya, Anda dapat mengetahui cara melakukannya. Tapi ada begitu banyak hal yang kemungkinan besar Anda salah juga. Lalu Anda pergi menggaruk-garuk kepala mengapa sesuatu tidak berhasil.
Andy

28

Ketika saya belajar pemrograman pada 1980-an buku-buku di mana kurang lebih satu-satunya sumber informasi yang tersedia untuk sepenuhnya belajar bahasa pemrograman secara keseluruhan. Selain itu Anda bisa membeli majalah komputer, tetapi isinya adalah artikel acak yang mungkin menarik dan bermanfaat atau tidak.

Saat ini Anda dapat menemukan semua informasi yang Anda butuhkan di Internet. Meskipun saya akan menganggap tutorial yang lengkap cukup mirip dengan buku.

Cara Anda belajar mungkin tergantung pada preferensi pribadi Anda atau pada kebutuhan aktual.

Keuntungan dari "teks lengkap", jika buku atau tutorial online, akan mencakup materi yang, meskipun sebenarnya tidak diperlukan, akan membantu Anda nanti. Hanya untuk mengetahui bahwa sesuatu itu mungkin dan untuk mengetahui di mana menemukannya. Terutama jika Anda belajar tentang lingkungan yang kompleks atau bahasa yang sangat kompleks seperti C ++. Anda dapat membaca banyak blog kecil tentang Ruby on Rails tanpa pernah mendengar tentang Ajax atau masalah keamanan. Selama Anda hanya bermain-main, ini mungkin tidak ada masalah. Tetapi jika, seperti yang terjadi pada saya, Anda ingin masuk ke pengembangan Ruby on Rails profesional dalam beberapa minggu, kemudian bekerja dengan teks yang mencakup semua poin penting akan banyak membantu.

Buku-buku lain membahas detail tentang gaya pemrograman, praktik terbaik, pola desain, atau kelompok algoritma tertentu. Anda dapat bekerja dengan mereka dan mungkin dari semua pola desain Anda hanya akan menerapkan subset yang sangat kecil. Tetap saja, sangat membantu untuk mengenal mereka dan tahu di mana menemukannya. Dan itu hanyalah cara untuk melatih proses pemikiran Anda ke arah di mana Anda lebih tertarik dalam "membangun solusi" daripada "membuatnya berjalan entah bagaimana".

Secara pribadi saya suka membaca, jadi saya tidak merasa buku-buku itu kering. Meskipun tentu saja penting, bahwa buku itu berada pada tingkat pengetahuan Anda yang sebenarnya atau lebih dari itu. Jika Anda sudah menguasai semua dasar-dasar C #, tidak masuk akal untuk membaca buku pemula.


7
1 untuk menyebutkan apa yang akan saya tulis: bahwa jenis buku "praktik / metodologi terbaik" sangat berbeda dari jenis buku "bagaimana melakukan X menggunakan Y". Dan yang pertama adalah hal yang sangat berharga, karena mengajarkan pengalaman pemecahan masalah umum yang didapat dengan susah payah. Setelah Anda mempelajari pengujian unit, refactoring, estimasi dll, Anda dapat menerapkan dan mengadaptasinya ke sejumlah bahasa / domain / proyek.
Péter Török

1
Sangat menghargai penyebutan tentang gaya, praktik, dan pola. Ini adalah buku-buku yang benar-benar bermanfaat. Anda dapat belajar memprogram dengan hanya memiliki masalah untuk menyelesaikan dan menyelesaikannya. Anda belajar memprogram dengan baik dengan mempelajari gaya, praktik, dan pola. Namun, tempat terbaik untuk mendapatkan pemahaman komprehensif tentang konsep-konsep ini adalah teks.
Rig

+1 untuk "ini mencakup materi yang, meskipun sebenarnya tidak perlu, akan membantu Anda nanti" - programmer yang baik memiliki pengetahuan yang mendalam. Bahkan jika Anda tidak mengingat semua detail, tetapi Anda tahu utas untuk menarik dan mempelajarinya saat Anda membutuhkannya, itu bisa sangat berharga!
Jared Updike

22

Buku (atau dokumentasi web yang terstruktur seperti buku) masih menjadi cara favorit saya mempelajari sebagian besar bahasa

Jika Anda hanya menyelami bahasa dan mencari tahu sendiri, Anda mungkin akan kehilangan aspek-aspek penting, yang akan disampaikan buku bagus kepada Anda pada waktu yang tepat.

Sebagai contoh, beberapa rekan saya mempelajari Jawa dengan menyelam tanpa buku. Mereka telah pemrograman di Jawa selama beberapa tahun, ketika saya menemukan mereka secara rutin memanipulasi array byte [] dengan mengubah array menjadi sebuah String, menggunakan .substring (), kemudian mengubah String kembali menjadi sebuah array. System.ArrayCopy () diperkenalkan pada halaman 155 dari Java In A Nutshell

Saya harap Anda menyadari bahwa belajar lebih mudah dengan seorang guru, daripada sendirian. Buku yang bagus adalah pengganti yang murah untuk guru yang baik. Ini akan memperkenalkan konsep dalam urutan yang direncanakan dengan hati-hati, sehingga Anda dapat membangun pemahaman yang menyeluruh - tidak hanya cukup untuk bertahan.


2
1 untuk menunjukkan perbedaan antara belajar melakukan sesuatu dan belajar melakukannya dengan baik.
idbrii

Buku yang bagus adalah cara yang bagus untuk dengan cepat menutupi area tersebut. Seseorang telah melakukan riset untuk Anda. Menemukan buku yang bagus bisa jadi sulit. Ada saat di mana saya memiliki peluang 50/50 untuk mendapatkan buku yang bagus tentang topik yang saya minati (pembeli yang sangat baik). Sekarang saya menemukan peluang menemukan buku bagus di toko buku kurang dari 10%. Namun, ada banyak buku bagus seperti sumber daya yang tersedia di internet. Memilih sumber daya yang tepat dapat mempercepat pembelajaran Anda.
BillThor

1
Saya tidak yakin kapan waktu itu. Saya melihat buku CS lama saya baru-baru ini. Standar telah meningkat pesat. Sebagai contoh, saya menggunakan 'Pemrograman Fungsional Dengan Miranda' tahun yang lalu. Saya menggunakan 'Real World Haskell' baru-baru ini. Buku yang lebih tua membingungkan hari ini, meskipun pada dasarnya menggunakan konsep dan paradigma yang sama dengan Haskell.
langsing

21

Saya pikir Anda mungkin ke sesuatu. Bagi saya setidaknya, sebagian besar keterampilan saya berasal dari keinginan / membutuhkan program yang "X".

Mungkin orang yang belajar dengan cara ini tidak meminta bantuan; mereka terlalu sibuk menyelesaikannya (buruk, tetapi belajar sepanjang jalan). Orang-orang yang ingin menjadi programmer (seperti yang terlihat pada kelompok pertama itu) mengajukan banyak pertanyaan tentang bagaimana menjadi seorang programmer, atau bagaimana memprogram, walaupun mereka tidak selalu memiliki masalah untuk dipecahkan, dan ini tidak pertanyaan dengan jawaban langsung.

Dan jadi kami menyepak buku. "Oh ya, ambil salinan 'Selami Python.'" "Apakah itu yang kamu pelajari?" "Tidak" "Um ..." "Aku agak sibuk, tapi aku akan membantu jika kamu terjebak" "Uh ... OKE, kurasa"

Di sisi lain, saya menghargai heck out dari bahan bacaan yang baik ketika saya belajar, sehingga saya dapat melihat bagaimana masalah yang saya coba selesaikan diselesaikan oleh penulis yang lebih terampil, atau mungkin hanya supaya saya bisa belajar beberapa teknik "pemula" yang mungkin tidak saya ikuti.

TLDR : buku itu bagus, belajar dengan melakukan itu bagus, belajar dengan melakukan buku itu ???


1
+1: Saya pikir Anda sudah berhasil. Belajar sambil mengerjakan, buku-buku paling berharga yang saya miliki khusus untuk aplikasi yang saya tulis saat itu.
Justin Shield

41
Berhati-hatilah untuk tidak menjadi programmer "otodidak" yang berpikir mereka tahu semuanya karena mereka bekerja dengan masalah sederhana, buruk, dan merasa diri mereka "terlalu baik" untuk membaca buku.
Joris Timmermans

2
Haruskah perhatikan saya tidak menentang membaca, saya hanya berpikir media digital biasanya jauh lebih terkini dan menarik.
Alex Hope O'Connor

2
@Alex Tentang media digital. Itu benar-benar tergantung pada topik yang dibahas oleh media. Jika media menangani hal-hal seperti bagaimana melakukan x dalam bahasa y, atau cara paling efisien untuk kode dalam z, maka saya setuju dengan pernyataan Anda. Namun, topik lain (biasanya lebih maju, topik teoretis), seperti NP, P, analisis algoritma, dll, IMHO biasanya ditangani terbaik oleh buku teks. Ambil Knuth's The Art of Programming . Ini adalah teks yang cukup lama, tetapi masih dianggap sebagai salah satu buku paling utama tentang pemrograman.
cledoux

16
Saya pikir ini adalah kasus bias konfirmasi. @ Alex tampaknya mencari jawaban tertentu. Saya tidak mengatakan jawaban ini buruk , tetapi tentu saja bukan jawaban terbaik yang diberikan oleh imajinasi.
zzzzBov

15

Saya suka membaca buku teknis. Tidak semua buku teknis, hanya buku tentang topik tertentu yang saya minati, kata Sharepoint. Saya ingat buku pertama yang benar-benar saya baca (beberapa kali), yaitu Memprogram Windows oleh Charles Petzold. Karena ini dan banyak lainnya, saya dapat menulis aplikasi Win32 dari memori. Saya hampir tidak perlu mencari API, jadi saya bisa fokus pada bagian bisnis saja.

Saya merasa bahwa buku menyediakan cara "otoritatif" untuk melakukan sesuatu, mungkin oleh seseorang yang tahu cara yang benar untuk melakukan sesuatu yang lebih baik dari saya. Saya percaya bahwa apa yang saya pelajari adalah, berani saya katakan, cara terbaik untuk menyelesaikan masalah saya. Itu, tentu saja, jika saya percaya penulis (harus suka area ulasan di Amazon).

Meskipun saya menemukan diri saya sekarang semakin "googling" dan menyalin dan menempel ketika saya mencoba untuk memecahkan masalah, saya menghabiskan banyak waktu memastikan bahwa apa yang saya salin (atau terinspirasi oleh :) adalah sesuatu yang dapat dipercaya bahwa saya dapat dimasukkan ke dalam kode saya. Hanya karena saya menemukan solusi di web, itu belum tentu yang terbaik.

Sementara saya, seperti banyak programmer lain, sekarang hanya google jawabannya, saya masih menemukan diri saya mengambil buku dari penulis terkenal. Saya merasa konten itu disampaikan kepada saya oleh seseorang yang pandai menjelaskannya (mengajarkannya), dan itu menyelamatkan saya dari keharusan menyaring semua sampah dari hasil Google saya.


14

Saya menganggap pertanyaan Anda tidak dimaksudkan sebagai "mengapa menggunakan teknologi lama seperti buku cetak, bukan halaman HTML", tetapi "mengapa membaca teks yang lebih panjang tentang pemrograman yang ditulis oleh satu atau beberapa penulis".

Anda dapat menganggap buku sebagai kumpulan informasi terstruktur tentang subjek tertentu. Ini memiliki keuntungan bahwa seseorang telah berupaya untuk membangun setiap bab satu sama lain untuk membuat memahami topik dengan mudah. Biasanya, Anda juga diberi tahu batasan-batasan informasi (apa yang dicakup dan apa lagi yang perlu Anda perhatikan di tempat lain). Setelah membaca dan bekerja dengannya, Anda dapat yakin telah mencapai keterampilan tertentu. Jika Anda ingin belajar dengan menekan tombol maju cepat, sebuah buku dapat memaksa Anda untuk bekerja melalui setiap aspek tanpa melewatkan bagian yang membosankan, setidaknya jika Anda mempercayai struktur buku. Koleksi bernama "buku" paling sering berguna sebagai referensi juga.

Menggunakan Internet, blog, "mengotak-atik", dll. Biasanya jatuh ke dalam jenis informasi yang tidak terstruktur. Anda mendapat banyak hikmah, tetapi Anda harus melakukan lebih banyak pekerjaan pencarian untuk membangun pengetahuan Anda, karena tidak ada yang akan membimbing Anda dalam mengatakan "pelajari ini terlebih dahulu atau Anda tidak akan melihat manfaat dari hal-hal yang Anda telah googled sekarang ". Anda mungkin kehilangan bagian-bagian tertentu karena terlalu membosankan atau tidak ada yang bilang itu penting. Anda mungkin belajar hal-hal yang salah, karena tidak semua yang ditulis di Internet adalah kualitas pertama. Anda mungkin menghabiskan banyak waktu menyaring hasil pencarian yang tidak berguna. Anda mungkin menghabiskan waktu berhari-hari dengan mencoba menyelesaikan sesuatu sendiri, hanya karena Anda tidak tahu pola desain atau konstruksi pemrograman tertentu dan tidak ada yang memberi tahu Anda. Semakin sedikit Anda tahu,

Sederhananya provokatif: Saya tidak akan pernah mempercayai arsitek untuk membangun jembatan yang harus saya lintasi setiap hari jika dia mengatakan kepada saya dia tidak pernah membaca buku tentang pembangunan jembatan atau analisis struktural tetapi hanya mempelajarinya dengan mengutak-atik dan menggunakan Google ...


Pertanyaan saya bisa ditafsirkan sebagai jujur, tetapi yang terakhir adalah konsensus umum saya.
Alex Hope O'Connor

10

Jika Anda seorang programmer C, bagaimana Anda berharap untuk belajar Python tanpa buku atau guru?

Jika Anda baru saja mempelajari sintaks dasar dan langsung menyelam, Anda akhirnya akan menulis kode C dengan Python , dan sampai pada kesimpulan yang salah bahwa Python sama verbose dan menyakitkan seperti C.


Itu berlebihan. Jika Anda mulai memprogram Python, Anda dapat mencari jawaban untuk masalah di Google dan menemukan hal-hal seperti resep Python yang menjelaskan solusi Pythonic untuk masalah tertentu.
idbrii

6
@ pydave: Jika itu berlebihan maka tidak akan ada begitu banyak kode-C-ditulis-dalam-Python pada SO (contoh)
BlueRaja - Danny Pflughoeft

4
Saya membaca contoh pertanyaan Anda, membaca jawaban Anda, dan saya mengerti apa yang Anda maksud: Mempelajari sintaks dasar tidak sama dengan mempelajari bahasa. (Saya bahkan tidak mempertimbangkan untuk tidak mempelajari konstruksi bahasa.) Jika Anda belajar cukup banyak Python untuk menulis kode C dengan Python, maka Anda masih belum belajar memprogram dengan Python.
idbrii

Ini adalah masalah serius yang patut mendapat perhatian lebih. Semua bahasa pemrograman Turing selesai yang artinya Anda bisa menyelesaikan masalah apa pun dengan menulis kode Python seperti C, atau kode Ruby mirip Java. Tidak ada penghalang di sana yang akan memaksa Anda untuk menyesuaikan diri dengan zeitgeist dari bahasa yang Anda pemrograman. Lebih buruk lagi, Anda bahkan mungkin tidak merasakan sakitnya inefisiensi pengkodean Anda karena ini akan terasa sama menyakitkannya seperti dalam bahasa C asli atau asli Java, tingkat rasa sakit yang Anda terima sebagai hal biasa.
Wedge

sangat setuju - Saya seorang programmer C dalam PHP ketika saya menulis apa pun: - |
warren

9

Google biasanya hanya baik untuk menemukan potongan kode kecil atau pustaka sumber terbuka. Dokumentasi untuk beberapa perpustakaan / program paling tidak dapat diandalkan (jika ada, itu hanya menunjukkan kepada Anda contoh sederhana atau umum.)

Saya tidak punya banyak buku pemrograman, tetapi saya bisa memberi tahu Anda sekarang bahwa saya punya buku tentang OpenGL, dan ada mayoritas kode untuk mesin 3D di dalamnya, yang bisa Anda salin, tetapi Anda bisa baca teorinya juga - Anda hanya perlu membalik beberapa halaman dan penjelasan kodenya ada di sana, menunggu untuk dibaca. Saat ini, Anda mungkin dapat menemukan beberapa mesin 3D open-source di internet, tetapi jika Anda perlu mengubah kode secara substansial, Anda mungkin dalam beberapa masalah - biasanya tidak ada forum bantuan dan orang-orang di SO tidak akan tahu jawab pertanyaan Anda jika sangat khusus. Ketika datang ke hal-hal yang sangat khusus, hanya beberapa lusin orang di seluruh dunia akan dapat menjawab pertanyaan Anda tanpa menghabiskan berjam-jam untuk mencari tahu cukup untuk berada dalam posisi untuk datang dengan jawaban. Jika Anda bertanya bagaimana menerapkan daftar tertaut dalam C #, Anda akan mendapatkan 5+ jawaban pada SO dalam 10 menit pertama, tetapi jika Anda bertanya apa cara terbaik untuk menerapkan algoritma peneduhan kompleks di three.js adalah , pertanyaan Anda akan tenggelam dari halaman depan seperti batu.

Selain itu, buku-buku ditulis hampir secara eksklusif dari sudut pandang pembaca yang ingin belajar tentang teori yang terlibat, sedangkan google hanya menghasilkan potongan kode sampah yang acak, diskusi arsip tentang subjek di mana tidak ada yang tahu apa yang mereka bicarakan. , dll. Sumber-sumber di internet telah menjadi jauh lebih baik: SO, Moz Dev Network, situs web Microsoft, blog, dll. Namun secara historis, buku-buku telah jauh lebih baik, dengan sumber-sumber internet baru saja menyusul.


1
+1 untuk menunjukkan waktu yang Anda perlukan untuk memilah sampah acak dengan metode "learning by googling"
Ray

1
+1 untuk 'diskusi arsip tentang subjek di mana tidak ada yang tahu apa yang mereka bicarakan, dll.' - ROFL.
5arx

7

Kualitas tulisan dalam buku-buku terbaik sedemikian rupa sehingga banyak masalah yang tidak jelas ditata bahkan sebelum Anda mulai. Seorang penulis dengan banyak pengalaman akan tahu untuk memberi tahu Anda tentang hal-hal seperti: efek samping tak terduga, dampak jangka panjang, fitur tidak berdokumen, skenario penggunaan umum ...

Pada dasarnya, Anda mendapatkan manfaat dari seorang penulis dengan banyak pengalaman memandu Anda melalui masalah dan menunjukkan bagian-bagian yang benar-benar menarik.

Kadang-kadang Anda dapat menemukan ini dalam referensi online juga, tetapi karena hambatan rendah untuk memasukkan banyak informasi online terlalu mendasar, tidak ada detail, atau hanya salah total. Ini juga dapat terjadi pada buku, jadi pastikan Anda hanya langsung percaya buku-buku yang klasik dengan ulasan yang konsisten baik. Buku-buku lain juga dapat berguna, tetapi hanya sebagai salah satu sumber, Anda masih harus memverifikasi informasi dengan referensi silang atau mencoba sendiri.


1
+1000 'just out wrong wrong' Ada banyak contoh kode online yang ditulis oleh 'programmer terbaik' yang tidak menggunakan kompiler pengguna atau tahu apa yang mereka bicarakan. Plus, buku yang bagus akan ditulis dengan model pedagogis yang memperkenalkan kemudian memperkuat konten secara konsisten dan mudah dibaca.
jqa

6

Buku cenderung memiliki banyak informasi dalam format terstruktur. Google cenderung datang dengan sejumlah besar informasi yang tidak selalu terstruktur dan sulit untuk diatur dalam hal apa yang perlu Anda lakukan.

Saya sebenarnya tidak membaca buku kertas fisik lagi - ada pembaca elektronik di sebelah saya dan saya memiliki perangkat lunak Kindle di laptop saya yang memberi saya akses ke informasi yang saya cari.

Di mana Google bermanfaat adalah jika Anda tidak mencari ikhtisar terstruktur tentang cara memprogram, tetapi membutuhkan detail tentang cara memprogram tugas tertentu. Kode seseorang yang hampir selalu ditulis untuk tugas itu sebelumnya, atau, setidaknya, sesuatu seperti itu.

Saya pikir ada perbedaan antara belajar ke program dan belajar untuk memprogram tugas tertentu. Saya akan mempertanyakan kualitas kode yang berasal dari seseorang yang hanya pernah belajar sedikit demi sedikit dari googling tugas-tugas tertentu jika mereka tidak pernah benar-benar mendapatkan gambaran yang layak tentang cara memprogram. Ini bukan bahasa spesifik, ini lebih konseptual.


4

Buku berguna jika Anda ingin masuk lebih dalam ke suatu subjek. Tentu saya belajar C # dari melakukan beberapa tutorial dan menulis beberapa proyek (peliharaan). Tetapi C # secara mendalam masih berguna untuk melihat apa yang terjadi di bawahnya dan untuk mempelajari beberapa hal baru.

Juga, saya bisa mengambil buku pemrograman dan membacanya di kamar mandi saya atau di luar di bawah sinar matahari. Saya tidak bisa melakukan itu dengan PC desktop saya.


4

Karena itu adalah cara yang nyaman untuk belajar dari programmer lain.

Buku adalah suplemen. Anda hanya bisa bekerja sejauh ini dengan cepat. Siapa yang tidak suka pada proyek dengan programmer yang lebih baik yang mau mengajari Anda sesuatu daripada hanya membaca buku?

Saya cenderung menggunakannya lebih sebagai referensi daripada "Segala sesuatu yang perlu Anda ketahui tentang pemrograman."


3

Buku memungkinkan Anda menyerap sekumpulan informasi dengan cara "pasif". Anda tidak harus melihat apa yang mungkin Anda dapatkan disajikan sebagian dari kemungkinan. Ketika saya sedang belajar C # buku itu benar-benar membantu menunjukkan kemungkinan, dan bertanya-tanya apa yang setara dengan C ++. Tentu saja penguasaan terjadi ketika menggunakannya dalam proyek (ukuran sebenarnya). Tetapi buku ini benar-benar membantu menunjukkan perbedaan dan kemungkinan.


3

Singkatnya, saya pikir buku cenderung lebih bermanfaat pada level tinggi. Mereka dapat memberi Anda panduan desain dan membantu Anda mencegah masalah alih-alih menyelesaikannya.


Buku tentu memiliki kekurangannya. Salinan saya dari Pemrograman Python mencakup Python 2.0, tetapi runtime yang saya gunakan adalah 2.6.

Namun, saya pikir aspek penting dari buku adalah Anda dapat menemukan hal-hal yang tidak akan Anda temukan sendiri. Google membantu Anda memecahkan masalah tertentu, tetapi buku akan membantu Anda mendesain. Dan bukan hanya buku desain. Jika Anda membaca buku bagus yang membantu Anda memahami desain suatu bahasa, Anda akan lebih memahami cara menggunakan bahasa itu.

Buku-buku lain bagus untuk menyempurnakan pengetahuan Anda. Saya pikir buku C ++ Efektif Scott Murphy adalah contoh yang baik. Meskipun buku ini tidak terlalu bagus untuk mempelajari C ++, buku ini membantu Anda melihat masalah dalam desain algoritme / antarmuka / warisan yang belum Anda temui (belum) atau pelajari. Mungkin mudah untuk menemukan solusi sederhana (yang saya dapat menyebabkan masalah lain nanti), tetapi dengan memahami bahasa lebih baik Anda dapat merancang perangkat lunak Anda untuk menghindari masalah-masalah ini di tempat pertama.

Tentu saja, bukan fakta bahwa buku dicetak di atas kertas yang membuatnya berharga. Kepedulian dan upaya yang dilakukan untuk menciptakan mereka dan keinginan untuk memberikan pendidikan yang ketat adalah apa yang memberi nilai pada buku. Seringkali sebagai efek samping Anda mendapatkan sumber daya daring yang berguna seperti C ++ FAQ lite atau ebooks seperti Menyelam ke Python . Ada juga tutorial khusus online yang merupakan alat pembelajaran yang menyeluruh dan bermanfaat (seperti dokumentasi untuk beberapa platform / bahasa / perpustakaan).

Cuplikan di web adalah cara yang baik untuk menjawab pertanyaan Anda, tetapi mereka jarang memberi tahu Anda apa yang seharusnya Anda tanyakan.


3

Saya ingin menjadi programmer, jadi saya menggunakan buku pemrograman. Buku akan memungkinkan saya untuk menjadi mahir dalam pemrograman.


3

Saya belum benar-benar membaca buku pemrograman dalam waktu yang lama. Saya biasa menggunakannya sebagai panduan referensi, tetapi sekarang saya pikir Internet lebih mudah untuk sebagian besar bahasa dan kerangka kerja.

Bagaimanapun, saya pikir hal terbaik untuk dipelajari dari pemrograman buku adalah bahasa inti. Misalnya, bahasa asli saya yang pertama adalah C. Saya mempelajarinya dengan menulis OS (saya tidak merekomendasikan ini). Akibatnya, pengetahuan saya tentang C cukup lumpuh bahkan setelah dua atau tiga tahun pemrograman di dalamnya. Saya tidak pernah memiliki pengetahuan inti yang baik tentang bahasa tersebut. Saya tidak tahu saya bisa mengubah 15 baris kode berantakan ini menjadi dua baris kode yang bersih. Jadi saya bisa menyelesaikan masalah, tetapi saya tidak memanfaatkan C sepenuhnya.

Kemudian pada satu titik saya memutuskan untuk belajar C ++ ... (sekitar 2 tahun setelah mulai belajar C). Jadi saya membaca satu-satunya buku C ++ yang saya miliki, sebuah C ++ For Dummies Book. Saya membaca sekitar 3/4 dari itu langsung, melakukan sangat sedikit "melakukan" selama waktu itu .. dan sebagai hasilnya ketika saya melompat ke proyek pertama saya bukannya merasa nyaman dengan 15 baris kode berantakan, saya tahu ada cara yang lebih mudah untuk melakukannya (walaupun saya mungkin harus mencarinya).

Saya melakukan hal yang sama ketika saya belajar C # / ASP.NET. Saya hampir tidak melakukan apa-apa selain membaca sampai selesai dengan sekitar 3/4 dari buku. Dan untuk apa yang tidak saya pelajari, saya melihat-lihat Stack Overflow untuk pertanyaan C # yang menarik. Ketika saya melangkah ke proyek pertama saya, saya akan mengatakan bahwa sebagian besar kode saya relatif bersih dan hanya harus "sangat" dire-refaktrasi sekali sejak itu.

Jadi saya akan mengatakan bahwa buku sangat berguna untuk mempelajari kemampuan suatu kerangka kerja atau bahasa. Di luar itu, kebanyakan buku-buku itu tidak berguna oleh Internet, kecuali tentu saja buku-buku materi teoretis yang kuat dan dirancang khusus untuk dijadikan rujukan.


2

Ini kurang tentang apa yang Anda baca, tetapi seberapa banyak. Saya suka memiliki beberapa buku pemrograman saat saya sedang mengerjakan sebuah proyek. Sesekali (lebih sering daripada yang Anda bayangkan), Anda akan membaca tentang teknik yang dapat diterapkan pada proyek Anda saat ini.

Setelah Anda menerapkan solusi dunia nyata, informasinya akan melekat.


2
Saya benar-benar menemukan kasus ketika menjawab pertanyaan di situs web seperti SE. Saya sering menemukan bahwa komentar menuntun saya ke informasi yang relevan untuk menyelesaikan masalah yang sedang saya kerjakan atau ketahui akan segera saya atasi.
Lea Hayes

2

Saya lebih suka menggunakan buku karena saya merasa buku itu memberikan gambaran tentang keadaan teknologi yang sedang Anda kerjakan. Penulis akan menyatakan bahwa dengan bahasa Y / perpustakaan versi XX, ini adalah bagaimana Anda menyelesaikan masalah Z. Mungkin tutorial situs web gagal mencantumkan versi apa yang mereka gunakan atau memberikan contoh kode yang mereka gunakan saat buku sering dilakukan.

Buku-buku sering membahas "mengapa" solusi ini memecahkan masalah sementara dokumen online biasanya disalin.

Anda juga dapat sering kehilangan tautan ke semua referensi Anda, mereka dapat bergerak, atau turun. Saya melindungi dan merawat buku-buku saya seperti investasi (yang mana).


2

Anda dapat menyelesaikan masalah tanpa membaca buku, tetapi kemudian apakah Anda benar-benar tahu apa yang terjadi di balik program Anda untuk menyelesaikan masalah itu?

Anda perlu tahu apa yang terjadi dan apa yang bisa menjadi alternatif yang lebih baik. Untuk itu Anda perlu buku pemrograman yang bagus. Hanya membaca buku tentu saja tidak cukup, Anda perlu memahami isinya, membaca buku-buku lain, memikirkan berbagai pendekatan penyelesaian masalah dan sebagainya. Belajar berlanjut dengan dan tanpa buku.


1

Ketika saya sedang belajar C ++, saya menemukan sebagian besar literatur tidak berguna sampai sesuatu di kepala saya diklik. Sampai hari ini saya tidak yakin apa itu, tetapi semuanya mulai masuk akal. Buku dan situs web kemudian menjadi jauh lebih masuk akal. Butuh 2 buku untuk belajar bagaimana memprogram dalam C ++ dan juga tidak ada buku C ++ yang benar (itu adalah buku Visual C ++ yang berfokus terutama pada MFC).

Jika Anda mendapatkan buku yang tepat maka itu bisa sangat berguna. Seorang teman saya sedang membaca beberapa buku Dietel di uni dan saya menemukan itu ditulis dengan sangat baik. Saya belum pernah menemukan buku "... untuk Dummies" yang bermanfaat karena mereka tidak menjelaskan hal-hal dengan cara yang benar untuk saya. Nasihat terbaik adalah pergi ke toko buku dan dapatkan pencicipinya agar Anda tidak membuang banyak uang untuk buku yang cenderung sangat mahal.

Untuk beberapa topik pemrograman, saya merasa berguna untuk membaca beberapa buku, melakukan penelitian melalui Google dan bereksperimen. Saya menemukan diri saya banyak melakukan ini ketika saya bekerja pada algoritma AI ketika saya sedang mengerjakan permainan catur dengan J2ME. Saya juga menemukan diri saya melakukan ini ketika saya sedang belajar cara membuat kompiler kompilator untuk sintaks khusus. Ada begitu banyak variasi dan tampilan berbeda.

Terkadang memiliki pemahaman tentang banyak tampilan memungkinkan Anda membuat koneksi yang lebih tidak jelas.


1

Saya cenderung belajar (pemrograman) dari kedua buku dan sumber "tepat waktu" seperti web. Keduanya bisa bagus tetapi secara keseluruhan saya lebih suka belajar dari buku, inilah alasannya:

Ketika Anda hanya belajar apa yang perlu Anda ketahui segera untuk menyelesaikan bagian dari suatu proyek kadang-kadang Anda kehilangan gambaran besarnya. Buku-buku terbaik bukan hanya referensi tetapi dalam arti mencapai sesuatu yang lebih dekat dengan magang, dengan memberikan ikhtisar yang menyeluruh tentang teknologi dan banyak nasihat berpengalaman tentang solusi terbaik untuk masalah umum.

Pembelajaran just-in-time dapat dengan mudah menderita dari masalah kepuasan, ketika Anda mengidentifikasi masalah yang ingin Anda selesaikan, Anda melompat ke solusi pertama yang tampaknya berhasil, kemudian Anda lari ke jala-jala untuk mencari tahu bagaimana menerapkannya . Namun, sering kali hal ini dapat membuat Anda dalam masalah, jika Anda dapat berbicara dengan seorang programmer berpengalaman tentang masalah Anda, mereka tidak akan memberi tahu Anda "inilah cara melakukan X" mereka akan memberitahu Anda sebaliknya "jangan lakukan X, lakukan Y sebagai gantinya ". Dan ini adalah jenis pengetahuan yang cenderung Anda dapatkan dari buku-buku terbaik. Memang, beberapa buku sepenuhnya tentang hal semacam ini, seperti Javascript: The Good Parts .

Masalah lain yang dapat dipelajari oleh JIT adalah kurva belajar yang jauh lebih lambat. Dengan belajar JIT Anda cenderung belajar hanya apa yang perlu Anda ketahui. Tetapi seringkali memiliki dasar pengetahuan saja dapat mempercepat pembelajaran bahasa atau kerangka kerja baru. Alih-alih tersandung dasar-dasar Anda memulai dengan fondasi yang kuat dan kemudian membangun dari sana. Sejumlah besar materi yang mungkin Anda bahas saat membaca buku mungkin tidak segera bermanfaat bagi Anda, tetapi memiliki pengetahuan latar belakang itu dapat bermanfaat dalam memandu pengambilan keputusan Anda dan terutama dalam memahami kode baru yang Anda ketahui. Ada trade-off tentu saja dan ada buku-buku buruk yang hanya menumpuk pada fakta-fakta yang tidak berguna yang Anda tidak akan ingat setelah Anda membacanya tetapi ada juga buku-buku bagus yang memberi Anda dasar yang kuat dalam fundamental dan apa

Ada juga buku-buku di tingkat yang lebih tinggi daripada subjek teknologi tunggal yang saya pikir sangat penting untuk menjadi dewasa sebagai pengembang. Buku-buku seperti Code Complete , Refactoring , Bekerja Efektif dengan Legacy Code , dll. Anda tidak akan mengambil pengetahuan dari buku-buku itu hanya melalui pembelajaran JIT.


1

Saya rasa saya suka membaca buku. Terutama mengunduh ebook. Membaca setiap bagian dari bab ini. Salin kode mereka! rekatkan ke editor pemrograman Anda dan kemudian lihat apa outputnya. Lalu cobalah untuk mengubah logikanya. Saya menyebutkan ebook yang dapat diunduh karena untuk bekerja lebih cepat. Buku sangat hebat. Saya tidak berbohong tetapi sejak November lalu hingga hari ini. Saya telah selesai sekitar 20 buku. Itu semua membutuhkan cinta untuk membaca. Apa yang dilakukan para pemula adalah bahwa mereka memecahkan masalah tertentu dengan mengambil formulir bantuan internet. Tetapi ketika tugas yang sangat rumit diberikan kepada mereka, mereka menyerah. Alasannya, tidak ada pengetahuan tentang tugas dan solusinya. Sebagai contoh saya telah membatasi kontrol dengan datatable dan tidak tahu apa yang dilakukan dataset dan saya telah diberi tugas untuk membuat hubungan (s) antara salinan residen memori dari tabel database saya tidak bisa melakukannya.


0

Sangat sulit bagi programmer baru untuk memahami apa sebenarnya pemrograman itu, seberapa dalam itu.

Siapa pun dapat menulis program untuk memberitahu komputer untuk melakukan - baik saja dengan sedikit belajar, ini tidak sulit! Yang sulit adalah membuat program yang dapat didukung dan dapat dipahami dengan cepat dan dipahami secara mendalam oleh anggota tim lainnya, bagian ini membutuhkan waktu bertahun-tahun, puluhan tahun.

Selain itu belajar untuk bekerja sebagai bagian yang efektif dari tim adalah sedikit kurva.

Jadi, bagaimana buku membantu menyelesaikan masalah pemrograman "Nyata" ini dengan cara yang tidak mencari referensi di web?

Nah dua buku favorit saya adalah "Pola Desain" dan "Refactoring".

Refactoring adalah buku yang bagus yang memberitahu Anda cara mengenali kode yang salah. Jika Anda telah belajar dengan mencari referensi koding, buku ini (Yah salah satu dari banyak buku Refactoring) sangat penting.

Pola desain tidak benar-benar menawarkan banyak hal yang tidak dapat diprogram oleh programmer yang baik, tetapi ia memberi nama pada berbagai pola yang telah digunakan semua orang dalam kode. Ini memungkinkan programmer untuk berkomunikasi secara lebih efektif dan membantu beberapa programmer menemukan cara baru untuk menyerang masalah. Meskipun Anda dapat menemukan pola desain di web, ini jauh lebih mudah untuk google nama pola desain daripada - google apa yang Anda coba lakukan.

Saya telah diminta dalam wawancara untuk menggambarkan dua buku ini dan apa yang ingin mereka capai, saya pikir ini adalah pertanyaan wawancara yang sangat valid ... Saya ingin memperhatikan seorang programmer yang tidak tahu tentang kedua buku ini. buku kecuali dia melamar posisi yang sangat junior.


0

Saya belajar memprogram dari buku secara langsung. Sekitar 20 tahun yang lalu sebelum google dan internet menjadi populer. Saya pikir mereka adalah sumber daya yang hebat. Namun sebagian besar buku modern hanya mengutip artikel teknis oleh produsen. Jadi saya sekarang setuju bahwa lebih baik belajar online. Dengan kata peringatan sebagai berikut:

Meskipun saya membaca banyak buku, dan memiliki akses internet hampir karena itu layak secara finansial. Saya tidak pernah bisa menyelesaikan segala jenis proyek yang cukup besar. Tentu saya bisa melakukan banyak proyek besar dalam buku-buku besar di mana mereka mengambil 20 bab untuk memandu Anda melalui itu, tetapi ketika datang ke proyek dunia nyata saya sendiri, saya selalu tanpa eksekusi menabrak dinding bata. Saya harus memberi tahu Anda, saya membaca beberapa buku berat.

Saya memiliki masalah sepanjang hidup saya masuk perguruan tinggi, tetapi saya sekarang memasuki tahun ketiga saya. Pada tahun pertama saya, saya bertemu orang-orang di tahun ke-4, dan master, dan mampu mengadakan percakapan yang produktif tentang teori AI, HCI, assembler, dan pengembangan kompiler dll. Namun dengan semua pengetahuan ini saya tidak dapat membuat program yang masuk akal. Apa yang saya lewatkan ... Satu hal yang tidak bisa Anda dapatkan dari buku apa pun, atau online.

Struktur. Pada tahun pertama, saya belajar tidak ada yang bersifat teknis (Allready tahu banyak dan berkembang melalui tanpa belajar hari, mengeksekusi matematika dan desain karena ini cukup baru bagi saya), tetapi saya belajar struktur dan kerja tim. Di liburan musim panas pertamaku, aku semakin dekat untuk menyelesaikan pekerjaan pertamaku.

Di tahun kedua saya, saya belajar banyak hal teknologi baru (masih dasar-dasar dalam perbandingan dengan apa yang saya tahu, tapi saya meletakkan teori yang saya tahu untuk praktik nyata). Ini menekankan pentingnya struktur lagi. Saya belum menyelesaikan proyek nyata pertama saya. Sekarang saya menganggap diri saya seorang programmer.

Saya tidak percaya perlu membaca buku untuk belajar pemrograman. Tapi ini sangat membantu. Namun, saya yakin bahwa tidak ada buku atau situs web yang mengajarkan atau dapat mengajarkan apa yang Anda dapatkan dari bahkan 2 tahun kuliah. Jika Anda telah berhasil menyelesaikan proyek tanpa pernah kuliah, bermain adil, tetapi ini adalah pengalaman yang saya sangat sarankan terlepas dari usia.

Buku bagus, internet lebih baik, google dan you tube hebat, tapi tidak ada yang mengalahkan perguruan tinggi tua yang buruk dalam opionion saya. Dan saya meragukan jumlah googling dan YouTubing akan pernah ada, dan saya tahu secara langsung bahwa jumlah buku tidak akan pernah ada.


Di mana dikatakan di atas, "Saya belum menyelesaikan proyek nyata pertama saya. Sekarang saya menganggap diri saya seorang programmer". Seharusnya berbunyi "Saya sekarang telah menyelesaikan proyek nyata pertama saya. Sekarang saya menganggap diri saya seorang programmer". Maaf tentang kesalahan mengeja
Jack Spratt

0

Saya tidak tahu. Saya menentang buku pemrograman. Dalam kebanyakan kasus, Anda masih harus meneliti di Internet untuk mencari informasi tambahan.

Apakah Anda ingin belajar bahasa pemrograman? Google untuk itu. Saya benci jQuery karena terlihat sulit. Lalu saya datang ke Stack Overflow, dan saya tahu banyak dari itu. Tanpa bantuan buku apa pun.

  • Google untuk itu
  • Cari-cari aplikasi open source yang profesional dan lengkap
  • Telusuri dalam kode itu dan COBA untuk mendapatkan apa yang sedang terjadi.
  • Cobalah untuk menulis beberapa aplikasi cepat / sederhana dari cuplikan kode yang ada.
  • Cobalah untuk menulis ulang sendiri.
  • Temukan lebih banyak tutorial di Internet
  • Ambil pengalaman
  • Ambil lebih banyak pengalaman
  • Anda baru saja belajar bahasa baru! (Saya tidak mengatakan Anda akan menjadi ahli, tetapi dasar-dasarnya dipelajari dalam beberapa jam atau hari)

Memiliki buku sebagai referensi sangat berguna - Anda dapat dari pengalaman orang lain. "Buku" itu bahkan bisa berupa dokumentasi / tutorial online yang luas seperti Django atau jquery . Tapi sumber bacaan coba-coba + kesalahan sendiri akan meninggalkan celah besar dalam pengetahuan Anda. Sekarang jika Anda hanya perlu beberapa baris jQuery, metode Anda berfungsi tetapi Anda tidak belajar bahasa. Tetapi jika Anda ingin belajar C, saya sarankan memiliki K&R sebagai referensi. Tentu sebagian besar info online di suatu tempat, tetapi tersebar di banyak posting blog.
dr jimbob

0

Saya pikir itu benar bahwa pemrograman tidak dapat dipelajari dari buku saja (seperti kebanyakan orang yang disebutkan), Anda perlu banyak berlatih dan ada banyak sumber daya yang tersedia di internet (artikel, video, sampel dll.).

Tapi buku yang bagus mengisi kekosongan dalam pengetahuan Anda. Setelah membaca sampul buku untuk memberi Anda keyakinan bahwa Anda tidak memiliki lubang menganga dalam pengetahuan Anda tentang subjek. Padahal tantangannya adalah menemukan buku-buku bagus tentang masalah itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.