Saya mendengar banyak orang mengatakan bahwa ketika mengembangkan algoritma Anda harus terlebih dahulu menggunakan pena dan kertas, diagram alur dan apa yang tidak, sehingga Anda dapat fokus pada algoritma itu sendiri, tidak khawatir tentang implementasi algoritma tersebut (yaitu, Anda berurusan dengan satu masalah pada suatu waktu).
Namun, sebagian besar waktu saya merasa lebih mudah untuk benar-benar mengembangkan algoritma saya dengan cepat. Artinya, saya berpikir sedikit tentang masalah sampai saya tahu arah umum yang harus diambil, dan kemudian saya mulai menulis kode dan membuat perubahan sampai algoritma muncul dan berfungsi.
Apakah ini kebiasaan buruk yang harus saya coba ubah?
sumber
Saya pikir pendekatan Anda adalah yang lebih umum. Jika algoritme itu sangat rumit atau sulit, akan sulit untuk mengetahui algoritme sekaligus mengimplementasikannya, tetapi secara umum saya ragu itu membantu kebanyakan orang.
Tapi saya tidak akan, katakanlah, membuat aturan untuk grammer dan mengimplementasikan parser untuk itu tanpa menuliskan aturan di atas kertas (atau mungkin dengan beberapa alat khusus yang tidak saya miliki) terlebih dahulu, atau menerapkan B-Tree tanpa pseudo- kode tersedia.
Saya tidak akan mengatakan Anda memiliki kebiasaan buruk kecuali jika itu merugikan Anda, dan saya pikir Anda akan memperhatikannya.
sumber
Siapa "banyak orang" ini? Dan apakah mereka memprogram untuk mencari nafkah? Apa yang Anda lakukan adalah persis apa yang kebanyakan programmer lakukan, setidaknya sebagian besar yang saya tahu. Ada sedikit kegunaan untuk kertas ketika lebih cepat untuk mengetik, dan sedikit digunakan untuk pseudo-code saat pemrograman dalam bahasa tingkat tinggi. Kadang-kadang saya memang menggunakan pena dan kertas untuk memvisualisasikan algoritma yang rumit (misalnya memutar pohon), tetapi kebanyakan saya mulai dengan kode tingkat tinggi dan secara bertahap mengisi kekosongan.
Seperti KLE, saya pikir ini bekerja lebih baik setelah pengembangan yang digerakkan oleh tes. Dengan asumsi Anda akan menulis tes, Anda sebaiknya menulisnya terlebih dahulu.
sumber
Anda dapat membuat desain sambil membuat kelas rintisan, metode dan tes tetapi Anda bisa macet saat membuat detail
untuk hal-hal yang sangat kompleks (kompiler dan semacamnya) desain pena dan kertas (atau setidaknya pada alat desain semacam) akan membantu membuat Anda tetap di jalur dan mata pada seluruh gambar dan menghindari pilihan desain yang buruk dan bahkan membiarkan Anda memilih pola desain tertentu dari awal
tetapi pada akhirnya itu tergantung pada seberapa baik Anda dapat terus melihat gambaran besarnya
sumber
Saya akan merekomendasikan sketsa arah umum (fase "pena & kertas") sebelum melompat ke implementasi untuk menghemat waktu dengan menyingkirkan persyaratan / kendala yang paling jelas .
Kemudian Anda dapat menyetelnya di jalan mengingat Anda tidak pernah dapat menebak semuanya pada awalnya karena hambatan lebih lanjut mungkin / akan muncul kemudian dalam pengembangan, karena berbagai alasan.
Dengan begitu Anda tahu ke mana Anda akan pergi tetapi Anda masih bisa beradaptasi dengan perubahan.
sumber
1. Jumlah persiapan yang dibutuhkan biasanya sebanding dengan kompleksitas dari apa yang Anda lakukan. Tidak masuk akal untuk menulis & menulis 2 hari penuh untuk algoritme yang digunakan sekali dalam seperempat, berjalan satu jam dengan singlethread pada satu mesin saja. Masuk akal untuk menulis & membuat kertas tiga minggu-man (jika perlu) untuk merancang modul kompensator fluks kinerja tinggi baru yang akan dapat memproses setengah juta permintaan per jam dan harus dijalankan 24/7/365 tanpa downtime.
2. Anda dapat mengetahui apakah itu kebiasaan buruk dalam 30 detik jika Anda melihat solusi apa yang Anda koding. Anda bertanya apakah itu kebiasaan yang baik atau buruk. Yah, itu tergantung kamu. Jika Anda seorang pembelajar lambat di awal karir pemrograman Anda, mungkin ide yang bagus untuk menulis semuanya dengan detail penuh. Jika Anda memiliki beberapa tahun pengalaman, itu akan cukup untuk hanya memikirkannya selama 5 menit dan kemudian lakukan saja. Tentu saja masih berkenaan dengan 1. di atas.
Intinya
Hanya kode Anda yang memberitahukan apakah Anda membutuhkan lebih banyak atau lebih sedikit pulpen & kertas. Jangan biarkan orang lain mendikte Anda, tetapi cari tahu sendiri. Itu membuat Anda terus belajar.
Penafian: Ini mungkin bukan apa yang disebut pemikiran umum dan akal sehat. Tidak apa-apa. Atur saja bookmark dan bacalah lagi dalam lima tahun atau lebih.
sumber