Bisakah menghabiskan waktu di Programmers.SE atau Stack Overflow menjadi pengganti buku pemrograman yang bagus untuk yang bukan pemula? [Tutup]

44

Dapat menghabiskan waktu (dan berpartisipasi aktif) pada Programmer.SE dan Stack Overflow membantu saya meningkatkan keterampilan pemrograman saya mendekati apa yang menghabiskan waktu membaca buku seperti Code Complete 2 (yang kalau tidak akan menjadi berikutnya dalam daftar bacaan saya) akan membantu.

Ok, mungkin jawaban untuk pertanyaan ini untuk seseorang yang mulai dengan pemrograman mungkin tidak langsung, tapi saya ingin menambahkan bahwa pertanyaan ini saya tanyakan dalam konteks ketika orang tersebut akrab dengan bahasa pemrograman tetapi ingin meningkatkan keterampilan pemrogramannya. Saya membaca pertanyaan ini di SO dan juga buku ini telah direkomendasikan oleh banyak orang lain (termasuk Jeff dan Joel ).

Untuk lebih spesifik, saya juga menambahkan bahwa meskipun saya melakukan pemrograman dalam C, Java, Python, dll tetapi saya masih tidak senang dengan keterampilan pengkodean saya dan membaca review CC2 saya menyadari saya masih perlu banyak meningkatkan .

Jadi, pada dasarnya saya ingin tahu apa cara terbaik bagi saya untuk meningkatkan keterampilan pemrograman - menghabiskan lebih banyak waktu di sini / SO atau melanjutkan dengan CC2 dan mungkin datang ke sini kapan saja.

Atul Goyal
sumber
1
Kemungkinan rangkap / terkait: Stack Overflow sebagai cara untuk mempelajari hal
1
Ini pasti luar biasa bagi seorang programmer pemula.
surfasb

Jawaban:

102

Tidak, itu bukan pengganti, tetapi pelengkap yang sempurna . Saya merasakan kombinasi keduanya memegang banyak kekuatan.

Mengapa kuliah yang bagus mengajarkan Anda lebih dari sekadar membaca buku? Interaksi dan kemampuan untuk bertanya.

Dengan hanya membaca buku, beberapa pertanyaan mungkin muncul sehingga Anda tidak dapat menemukan jawaban. Cari pertanyaan-pertanyaan itu di sini, atau tanyakan apakah belum pernah dibahas sebelumnya.

Steven Jeuris
sumber
+1 untuk pelengkap sempurna. Saya hanya bisa membayangkan seperti apa tahun delapan puluhan bagi saya jika SE atau SO ada di sekitar. mereka adalah sumber daya yang hebat.
Michael Riley - AKA Gunny
1
+1 sebagai pujian yang sempurna untuk pelengkap yang sempurna. Hanya membaca pertanyaan "dunia nyata", dan mencoba menjawab (atau menggandakan solusi jawaban yang ada) adalah mini-katas yang bagus untuk meningkatkan keterampilan, pengetahuan, dan intuisi
Dave Newton
Jika ada, kemampuan untuk mengungkapkan masalah dan solusi dalam saluran yang mudah dipahami dan diakses meningkatkan kemampuan Anda sebagai pengembang, selain meningkatkan keterampilan komunikasi Anda.
surfasb
+1 (lagi) untuk pujian yang sempurna. Saya membaca P.SE setiap hari. Saya tidak selalu membaca semua jawaban, tetapi saya membaca sebagian besar pertanyaan dan jawaban teratas. Ini adalah cara yang bagus untuk membuat diri Anda memikirkan hal-hal di bidang yang mungkin tidak Anda temui. Kadang-kadang saya melihat sesuatu dalam T&J tidak langsung dengan apa yang saya lakukan yang akhirnya benar-benar bermanfaat juga, yang bagus.
Andy Hunt
12

Saya (saat ini) menjadi anggota StackOverflow selama 1 tahun dan 10 bulan. Selama ini saya telah menjadi mahasiswa yang disiplin dalam bidang ini: sadar akan arsitektur, pola, decoupling, pengujian unit, dan daftarnya bisa berlanjut ... tetapi, apa peran yang dimainkan SO ???

Pertama, itu menjawab pertanyaan langsung saya. Tetapi ketika saya mulai mengeksplorasi SO, saya menemukan bahwa saya adalah programmer yang sangat buruk. Berkeinginan untuk menjadi tukang di kerajinan saya, saya membeli buku ... tapi itu tidak C # Unleashed, Belajar C # Programming, atau lainnya sub-standar pemula teks yang saya butuhkan. Saya membeli buku yang tepat yang menargetkan bidang keterampilan yang saya temukan kurang. Tentu saja, saya meluangkan waktu untuk melihat apa yang direkomendasikan oleh para pakar SO.

Kedua, SO memberi saya tempat untuk terus belajar dari mereka yang (diwakili oleh reputasi) benar-benar tahu apa yang mereka lakukan - secara sintaksis dan filosofis. Ada sejumlah wawasan yang harus diperoleh tentang SO, CodeReview, dan Programmer yang tidak bisa Anda dapatkan dari buku.

Jelas, SO tidak dapat mengganti buku atau semua sumber daya web lainnya (walaupun, jika saya dapat menggabungkan MSDN dan SO menjadi satu sumber daya konten ...); sebaliknya, SO melengkapi sumber daya lain ini. Namun, guru terbaik tetap pengalaman .

Ekstrak
sumber
11

Apa cara terbaik bagi saya untuk meningkatkan keterampilan pemrograman?

Memprogram lebih banyak. Membaca buku dan halaman web adalah hal sekunder.

Anda belajar paling baik dengan melakukan.

Humphrey Bogart
sumber
17
Iya dan tidak. Melakukan lebih banyak dapat dilakukan tanpa belajar lebih banyak. Saya bisa memprogram dalam bahasa tertentu dari tahun ke tahun dan tidak belajar sesuatu yang baru. Membaca dan sekolah mengajarkan Anda hal-hal di luar "zona nyaman" Anda. Tidak cukup untuk downvote, tapi masih bukan komentar yang bagus.
WernerCD
1
Sebenarnya, saya banyak pemrograman tanpa belajar. Jadi saya membuat situs web dalam PHP tanpa mengetahui objek atau menggunakan kerangka kerja. Anda harus menjauh dari kode dan pergi dan belajar
Bojan Kogoj
@ Werner — sangat benar. Saya bermaksud "memprogram lebih banyak" dalam arti "menemukan sesuatu yang ingin Anda bangun, dan membangunnya, idealnya dengan cara baru sehingga dapat mempelajari sesuatu yang baru"
Humphrey Bogart
Saya ingat ketika saya masih magang, "guru" di tempat kerja kadang-kadang memberi kami tugas pemrograman, berharap bahwa kami akan belajar dengan melakukan yang terbaik. Masalahnya adalah apa pun masalahnya, kita sering belum berada pada level itu. Dan ketika seseorang akan bertanya kepadanya tentang hal itu, dia akan terus berkata, "Oh, ini sangat mudah! Anda harus mencari tahu. Anda belajar dengan cara itu." Beberapa jam akan berlalu, dengan kami mempelajari dokumentasi, mencoba berbagai hal, dll. Ketika dia akhirnya akan memberi tahu kami jawabannya ...
Panzercrisis
... itu akan menjadi sesuatu yang kita tidak diberi informasi yang diperlukan untuk mencari tahu . Diperlukan waktu seminggu atau lebih lama untuk menemukan informasi yang diperlukan, ketika kami tidak punya waktu, dan ketika terkadang informasi itu tidak tersedia bagi kami atau masyarakat umum. Jadi cukuplah untuk mengatakan, instruksi itu sangat penting, dan hanya mengatakan kepada seseorang untuk mencari tahu sendiri adalah baik ketika dan hanya ketika mereka siap dan naik ke tingkat itu.
Panzercrisis
5

Belajar membutuhkan beberapa bahan:

  1. Pelajar (yang tentu saja Anda)
  2. Waktu (yang harus Anda kelola dan dedikasikan)
  3. Sumberdaya (dari situ, situs SE hanya sebagian kecil)

Apakah Anda seorang pembelajar yang baik? Apakah Anda menghabiskan cukup waktu untuk belajar? Jika jawaban dari 2 pertanyaan ini adalah ya , maka Anda sudah memiliki potensi yang cukup untuk belajar hampir dari sumber apa pun.

Tetapi untuk menjawab pertanyaan Anda, ya, saya pribadi belajar banyak dari situs SE. IMHO, mereka seharusnya tidak menjadi satu - satunya sumber belajar Anda, tetapi mereka bermanfaat.

Saeed Neamati
sumber
5

Dua hal yang ditawarkan SO dan P.SE yang tidak ditawarkan oleh buku maupun penulisan kode sendiri: pengujian dan pengajaran. Jika Anda secara buta mengajukan pertanyaan seperti

Mengapa ini tidak dikompilasi

wall
of
code
100
lines
long

Dan seseorang berkata "pada baris 33 bahwa koma harus menjadi titik koma" dan Anda menerima jawabannya dan melanjutkan, dan terus menanyakan pertanyaan yang sama selamanya, maka Anda mungkin tidak membaik.

TETAPI, jika Anda membaca pertanyaan orang lain, memikirkan jawabannya, menonton untuk melihat jawaban apa yang masuk dan bagaimana mereka membandingkannya dengan apa yang Anda ketahui, itu akan sangat meningkatkan Anda. Jika Anda mengetikkan beberapa kode ke editor favorit Anda dan mencoba beberapa hal untuk melihat apa jawabannya, itu akan sangat meningkatkan Anda. Dan ketika Anda mulai mencoba menjelaskan konsep (dan orang-orang menunggu di sana untuk "mengklarifikasi" apa yang Anda katakan) itu juga akan meningkatkan Anda.

Selama sekitar 30 tahun sekarang saya telah menemukan bahwa saya tidak pernah mempelajari suatu topik dengan baik seperti ketika, percaya saya tahu itu, saya mulai mengajarkannya. Bagi saya itu adalah kontribusi utama dari situs * .se untuk keterampilan saya sebagai pengembang. Plus, ketika saya hanya ingin tahu fakta sederhana, ini adalah tempat nomor satu saya untuk mencari (atau sesekali bertanya).

Kate Gregory
sumber
3

Keterampilan pemrograman Anda ditingkatkan yang terbaik bukan dengan membaca situs web atau buku, tetapi dengan mengulangi

  1. tulis kode berdasarkan pengetahuan saat ini
  2. mengevaluasi hasil
  3. belajar dari evaluasi tentang apa yang harus dilakukan dan apa yang tidak boleh dilakukan.
  4. pergi ke 1

Latihan membuat sempurna. Apa yang terlihat bagus di blog atau di buku mungkin terbukti tidak praktis untuk digunakan karena alasan yang tidak dimengerti oleh penulis blog, atau yang tidak dicakup oleh penulis buku.


sumber
2
Buku (dan blog, dan SO) dapat memaparkan Anda pada konsep yang mungkin tidak Anda miliki sendiri, tetapi Anda menjadi pemrogram yang lebih baik dengan menulis kode.
Annika Backstrom
2
Di sisi lain, jika saya tidak pernah memperhatikan nasihat eksternal, saya tidak akan terlalu jauh. Orang lain telah belajar dengan cara yang sulit, dan bodoh jika tidak belajar dari pengalaman mereka. Tentu, jangan hanya mengandalkan membaca dan mendengar, tetapi jangan membuat kesalahan dengan mencoba belajar tanpa bantuan dari orang lain juga.
Phil
bacaan eksternal masuk ke # 2
bacaan eksternal diperlukan untuk menemukan fitur yang tidak jelas, unik, atau canggih untuk teknik atau bahasa pemrograman tertentu atau perpustakaan. Mereka adalah barang-barang yang tidak sepenuhnya diperlukan untuk melakukan tugas apa pun, tetapi dapat meningkatkan cara Anda melakukannya (misalnya, pemrograman). Karena mereka tidak pernah benar-benar diperlukan, orang jarang datang mencarinya dengan eksperimen saja.
Lie Ryan
2

Ketika Anda menjawab sendiri, tidak, tetapi menghabiskan waktu di sini adalah tambahan yang berguna untuk pembelajaran yang lebih terstruktur. Saya tidak akan bergantung padanya mandiri karena mungkin ada kesenjangan dalam beberapa konsep yang mungkin tidak tercakup. Salah satu taruhan terbaik Anda untuk meningkatkan koding Anda untuk orang-orang di tingkat menengah adalah membaca kode pengembang baik lainnya dengan menghabiskan waktu di GitHub atau repositori open-source lainnya.

Penjaga penjara
sumber
1

Pemikiran dan Analisis Kritis masih diperlukan

Dalam dan dari dirinya sendiri tidak. Satu-satunya cara untuk membuat sumber pembelajaran (buku, blog, situs web, SO, dll) adalah dengan pemahaman, analisis dan kemudian penggabungan berulang. Apa yang ditulis orang di forum seperti ini bukan Injil dan tidak boleh diperlakukan seperti itu, tidak peduli berapa banyak suara yang dimilikinya. Anda perlu melakukan analisis Anda sendiri pada pendapat yang diberikan untuk mencari tahu apakah itu:

  1. Sebuah ide bagus
  2. Sebuah ide yang berlaku untuk situasi Anda

Cara Terbaik untuk Meningkatkan

Seringkali khusus untuk orang tersebut. Beberapa orang menjadi lebih baik melalui membaca dan meneliti. Beberapa orang menjadi lebih baik melalui permainan dan eksperimen. Yang lain bahkan bisa menjadi lebih baik melalui refleksi dan analisis diri. Cobalah apa pun yang menarik bagi Anda dan lihat apakah itu bekerja lebih baik untuk Anda.

dietbuddha
sumber
0

Belajar java menjadi jauh lebih mudah ketika saya mengetahui tentang stackoverflow. Saya tidak mengajukan pertanyaan, tetapi saya mulai membaca pertanyaan java setiap hari. Sebagian besar pertanyaan di luar pemahaman saya, tetapi sesekali seseorang menanyakan pertanyaan pemula. Banyak orang bertanya tentang konsep yang mereka baca dari sebuah buku tetapi tidak mengerti, dan mendapatkan jawaban yang jauh lebih dimengerti di sini, seringkali dengan sampel kode kecil untuk lebih menjelaskan masalah.

Zavior
sumber