Berikut sedikit informasi tentang saya, sebelum memulai dengan pertanyaan.
Saya seorang Sarjana Ilmu Komputer, Jawa menjadi bahasa pengkodean utama saya.
Masalah dasar di Universitas saya adalah standar pengajaran. Tidak ada yang peduli tentang mengajarkan pengetahuan coding kepada siswa, bukan hanya pengetahuan teoritis.
Efeknya, sebagian besar teman kuliah saya tidak mengerti pemrograman sama sekali.
Bahkan saya belum bisa keluar dari lingkungan pemrograman tradisional, yang membatasi pengkodean saya sampai batas tertentu.
Apa cara yang memungkinkan saya dapat mengembangkan dan memperluas keterampilan pemrograman / coding saya.
Juga, dapatkah Anda menyarankan sumber yang sama?
Diedit : Sumber menyarankan pengembangan keterampilan pengkodean.
Jawaban:
Pemrograman adalah salah satu bidang di mana pengalaman penting. Oleh karena itu, untuk menjadi pembuat kode yang lebih baik, Anda harus lebih banyak kode. Namun, menulis bukanlah satu-satunya hal yang harus Anda lakukan. Anda juga harus membaca kode pengembang lain dan belajar darinya apa itu kode yang baik. Lihat pertanyaan SO tentang ini .
Anda mungkin juga menemukan buku, yang secara khusus dikhususkan untuk pengkodean, berguna; seperti "Kode Lengkap". Mereka berisi deskripsi tentang apa kode yang baik, yang, dikombinasikan dengan pengetahuan dasar Anda, dapat membuat Anda seorang programmer yang baik.
sumber
must-read
daftar saya . :) terima kasih!(push 'code-complete must-read)
Kutipan favorit saya dari Konfusius:
Semua pengetahuan yang saya dapatkan, adalah dari menerapkan satu dan satu strategi:
Anda ingin belajar C #? Dapatkan pekerjaan sebagai pengembang C #.
Anda ingin belajar bahasa Italia? Pergi ke sana dengan kamus bahasa Inggris / Italia, dan berbicara bahasa Italia
Anda ingin belajar coding? Kode!
sumber
Pengodean adalah saran yang bagus, tetapi tanpa seseorang di sana untuk memberi Anda umpan balik, Anda hanya perlu mengulangi kesalahan Anda. Temukan pekerjaan, kerjakan proyek sumber terbuka, cari mentor dan minta mereka melihat kode Anda.
sumber
Berikut adalah presentasi yang diberikan Dan North dan QCon tentang cara pindah dari pemula ke programmer ahli yang disebut Sharpening the Tools . Di bawah ini adalah saran utama dari presentasi:
sumber
Cobalah untuk menulis kompiler untuk beberapa bahasa sederhana dari awal. Anda akan banyak meningkatkan keterampilan Anda sepanjang waktu (dengan beberapa teknik teoretis yang bagus dari teori bahasa formal sebagai bonus). Saya mencoba menulis versi sederhana Excel, dan ini juga latihan yang sangat bagus.
Seperti kata orang lain, satu-satunya cara untuk meningkatkan keterampilan coding Anda adalah dengan benar-benar melakukannya. Jadikan tangan Anda kotor dengan beberapa proyek besar. Tetapi kemudian untuk program besar, bahkan lebih penting bagi Anda menguasai teknik desain perangkat lunak, jika tidak, ukuran program tersebut tampaknya tidak dapat dikelola.
Ada satu kutipan bagus dari Nate Kirby:
Jadi beralih di antara dua level abstraksi ini adalah keterampilan yang harus Anda kuasai.
Juga kecepatan berapa banyak baris kode yang dapat Anda tulis per jam bukanlah yang harus Anda tuju. Saya suka kutipan dari David Parnas :
sumber
Saya telah menerapkan kumpulan taruhan atau permainan Baccarat di hampir setiap bahasa yang saya pelajari.
Jenis perangkat lunak ini mencakup
Beberapa pemain blackjack dan poker juga bisa digunakan.
Satu peringatan adalah bahwa dalam pekerjaan sehari-hari saya bekerja pada sistem keuangan dan ada tumpang tindih besar antara hal-hal yang perlu dipertimbangkan ketika menulis permainan peluang multi pemain dan sistem perdagangan.
sumber
sumber
Pikirkan seperti ini .... Tiger Woods tidak bisa menjadi pegolf "terbaik" dengan menonton golf atau membaca tentang itu. Dia seperti itu, seperti halnya atlet lainnya, dengan belajar, dengan berlatih, dengan menemukan di mana dia dapat meningkatkan permainannya dan melakukan sesuatu tentang hal itu.
Pengodeannya sama. Cara terbaik untuk menjadi lebih baik adalah dengan mempelajari apa yang dilakukan orang lain, memahami MENGAPA mereka melakukannya dengan cara itu, dan kemudian melakukannya sendiri.
sumber
Seperti dalam aktivitas manusia lainnya, cara terbaik untuk meningkatkan adalah mempraktikkan pengetahuan Anda, tetapi Anda memerlukan beberapa latihan untuk itu. Dave Thomas , salah satu penulis buku The Pragmatic Programmer, memperkenalkan konsep Code Katas , mirip dengan konsep kata dalam seni bela diri.
Anda dapat melihatnya di sana: http://codekata.pragprog.com/
sumber
Lompat ke dalam air, mungkin akan terasa dingin pada awalnya dan Anda akan tergoda untuk keluar tetapi segera tubuh Anda akan terbiasa dan menjadi hangat lagi dan saat Anda merasa nyaman di dalam air, Anda kemudian bisa berenang di sekitar mungkin masuk ke dalam ujung yang dalam.
Saya baru saja menyelesaikan kuliah beberapa bulan yang lalu di mana saya belajar Jawa. Sama seperti Anda saya tidak memiliki petunjuk tentang cara kode dengan benar. Sekitar sebulan yang lalu saya ingin membangun aplikasi web dalam PHP. Saya tidak tahu apa yang saya lakukan tetapi hanya melakukannya. Itu menakutkan dan luar biasa pada awalnya tetapi ketika Anda berlatih itu menjadi alami. Saya bahkan menulis aplikasi berkali-kali, setiap kali semakin menyederhanakannya. Sekarang saya sedang mengerjakan aplikasi dari awal tetapi kali ini saya mencari tahu bagaimana melakukannya berorientasi objek dan menggunakan bentuk cepat PEAR dan modulnya yang merupakan rintangan lain yang harus saya lalui tetapi tetap bertekad dan bersemangat.
Jadi berlatihlah. Lompat ke dalam air! Semoga berhasil :)
sumber
Saya sarankan mempelajari semua sintaks bahasa favorit Anda. Memahami cara menggunakan fungsi virtual, pewarisan, lambda jika ada. dll. Satu hal yang saya lakukan adalah mengambil perpustakaan menakutkan yang besar (saya melakukan ini dengan boost dan STL untuk C ++) dan melihat apakah setiap baris dan setiap kata kunci masuk akal.
Atau sebagai alternatif Anda dapat membaca referensi sintaksis bahasa jika ada yang bagus yang mencakup versi paling terbaru. Sebagai contoh di sini adalah referensi C # (Bukan versi di atas. Saya membuat kesalahan dengan melihat versi lama yang lebih populer yang tidak memiliki sintaks yang saya cari)
sumber
Konsensus umum adalah "menulis lebih banyak kode", yang saya setujui, tetapi saya akan menambahkan saran itu bahwa Anda harus menulis banyak jenis kode yang berbeda. Java baik-baik saja sejauh bahasa berjalan, tetapi Anda harus menulis kode baik naik turun spektrum daya. Selain Java, saya sarankan melakukan beberapa proyek kecil dalam bahasa tingkat rendah (C adalah yang bagus untuk ini), bahasa scripting (saya lebih suka perl, tetapi python juga merupakan pilihan yang baik), bahasa fungsional ( lisp adalah rekomendasi umum di sini, tetapi OCaml dan Haskell juga merupakan pilihan yang baik), dan setidaknya merasa nyaman dengan membaca bahasa majelis.
Juga, pilih beberapa variasi dalam jenis program yang Anda implementasikan. Lihatlah penerapan setidaknya GUI Desktop, aplikasi web yang kaya, klien jaringan dan server, driver, utilitas munging data, pelacak sinar, dan simulasi fisika.
Semua proyek harus memiliki cakupan yang relatif kecil, tujuannya bukan untuk memiliki program yang lengkap, tetapi untuk mendapatkan pengalaman luas dalam berbagai domain yang mungkin Anda temui, untuk mempelajari berbagai jenis pemikiran yang diperlukan untuk masing-masing, dan untuk mencari tahu di mana minat Anda.
Setelah Anda selesai melakukannya, Anda akan memiliki ide bagus tentang jenis pemrograman apa yang paling menarik bagi Anda, dan Anda dapat menemukan atau memulai proyek sumber terbuka untuk mendapatkan pengalaman bekerja pada basis kode besar, berurusan dengan istilah proyek, dan bekerja dengan pengembang lain.
sumber
Anda mendapatkan beberapa jawaban yang serupa dan jawaban saya juga akan sama. Tulis kode Ada dua cara bagus yang bisa Anda lakukan.
Salah satu dari mereka akan memberi Anda pengalaman langsung pemrograman yang Anda butuhkan serta keterlibatan dalam komunitas pemrograman saat Anda belajar dan harus mengajukan pertanyaan untuk mendapatkan lebih banyak dari itu. Anda akan membuat banyak kesalahan. Ini bagus - jika Anda berhenti membuat kesalahan, Anda telah berhenti belajar dan Anda perlu menemukan cara baru untuk menantang diri sendiri.
sumber
Saran saya
sumber
Ulasan rekan sangat membantu meningkatkan kualitas kode Anda. Jika Anda tidak memiliki mentor nyata, Anda dapat memposting kode Anda [setelah dikurangi menjadi minimum yang diperlukan] di StackOverflow atau RefactorMyCode atau milis dan orang-orang akan membantu Anda meningkatkan kualitas kode Anda.
sumber
"Praktek!" Itu klise.
Anda harus meninjau apa yang telah Anda pelajari di kelas matematika, dan membuat beberapa program yang menangani masalah tersebut. Juga, terapkan program lift, mesin penjual otomatis (yang menghitung perubahan koin), untuk mempertajam keterampilan logika Anda. Pikirkan segala sesuatu dalam kehidupan sehari-hari, dan terapkanlah.
sumber
Ya, latihan sangat penting untuk mengembangkan keterampilan pemrograman dan menjaganya agar tetap tajam. Namun berlatih sendiri hanya akan membawa Anda sejauh ini. Anda juga harus belajar dari orang yang lebih tahu dari Anda. Ada teknik yang belum pernah Anda dengar, praktik yang manfaatnya tidak segera jelas, dan trik yang tidak akan pernah Anda temukan sendiri.
Banyak cara untuk mempelajari teknik baru, trik yang rapi, dan praktik yang bermanfaat. Membaca buku-buku. Bicaralah dengan rekan kerja. Mengajukan pertanyaan. Tinjau kode orang lain, dan minta mereka meninjau kode Anda. Baca blog dan artikel tentang pemrograman, termasuk situs ini. Singkatnya, jangan bekerja dalam ruang hampa.
Oh, dan jika Anda tidak yakin apa artinya NP-complete, atau jika notasi-O besar membuat Anda takut, maka Anda mungkin harus mengambil beberapa teori kelas komputasi dan algoritma.
sumber
Saya akan mengatakan bahwa Anda harus membaca tentang pola desain, seperti Builder, Factory, Composite, dan akhirnya Observer, Mediator, dan Flyweight. Pola desain bukanlah solusi akhir semua untuk pengkodean, tetapi mereka menunjukkan bagaimana menerapkan konsep teoritis pemrograman berorientasi objek.
sumber
Saya hanya dapat menyarankan hal apa yang berhasil bagi saya. Saya bermimpi untuk belajar bahasa pemrograman dan membuat mesin catur dengannya. Saya telah menghabiskan waktu untuk buku, artikel, dan sampel kecil. Jadi saya memutuskan untuk memeriksa proyek nyata yang memiliki dokumentasi yang lebih baik untuk pengembang. Saya telah memilih satu dan mulai membaca proyek hari demi hari. Jangan berpikir bahwa melewati hari-hari membuang-buang waktu saat membaca. Jauh lebih baik daripada menghabiskan waktu membaca artikel dan buku. Anda akan menemukan banyak hal yang tidak jelas pada pandangan pertama tetapi hari demi hari ini akan berubah jika Anda mencoba penelitian dengan sabar. Jangan berharap untuk memahami semuanya dalam seminggu. Anda harus mempertahankan harga diri rendah ketika Anda tidak memahami beberapa hal. Hanya mencoba untuk menemukan bagaimana hal luar biasa ini bekerja dan dinikmati.
Pilih proyek yang sudah ada yang Anda sukai. Mulailah membaca kode, men-debug-nya, dan mencoba memahami cara kerja setiap hari. Gunakan juga proyek ini untuk Anda sendiri. Kemudian mulailah menambahkan beberapa fitur yang Anda inginkan. Bahkan coba tulis aplikasi yang sama atau mirip.
sumber