Saya mahasiswa baru Ilmu Komputer dan kami baru saja mulai melakukan beberapa proyek aktual dengan Python. Saya menemukan saya sangat efisien ketika saya menggunakan metode pena dan kertas yang disarankan profesor saya di kelas. Tetapi ketika saya tidak bisa menuliskan masalah saya dan menyelesaikan algoritme saya di atas kertas, saya sangat lambat. Selama lab, sepertinya aku selalu harus mengambil tugas kembali ke asramaku. Ketika saya sampai di sana dan menulisnya, saya memecahkan masalah yang membawa saya seluruh kelas dalam waktu 5 menit.
Mungkin karena saya merasa stres melihat orang-orang memecahkan laboratorium sebelum saya. Atau mungkin metode pena dan kertas.
Saya browsing melalui forum dan seseorang menulis bahwa jika Anda harus menulis program Anda di atas kertas maka Anda tidak harus menjadi seorang programmer. Saya benar-benar khawatir karena saya jauh lebih baik ketika saya bisa melihat apa yang sedang dilakukan program dan melacaknya sebelum mengetik kode yang sebenarnya. Apakah saya melakukan sesuatu yang salah?
Sunting: Maaf karena tidak jelas, tetapi ketika saya mengatakan menulis di atas kertas saya maksudkan pendekatan pemecahan masalah saya (misalnya menulis contoh, membuat tabel dengan nilai, dll.) Bukan kode saya yang sebenarnya. Saya hanya menggunakan kertas untuk mengeluarkan ide-ide saya.
sumber
Jawaban:
Tidak ada yang salah dengan mengerjakan algoritme Anda di atas kertas terlebih dahulu. Tidak terlalu banyak untuk pengkodean sehari-hari, tetapi untuk algoritma yang lebih kompleks, pemrogram profesional mengerjakannya di atas kertas atau papan tulis sepanjang waktu, terutama jika format grafis membuatnya lebih jelas. Untuk seorang siswa, setiap program itu kompleks.
Jika Anda ingin menjadi lebih baik dalam mendesain algoritma di komputer, ada beberapa teknik yang bisa Anda praktikkan. Jangan hanya memulai dengan menuliskan kode, menulis hal-hal yang sama seperti yang Anda letakkan di atas kertas sebagai komentar, lalu mengembangkannya menjadi kode nyata atau komentar yang lebih rinci satu per satu.
Misalnya, jika saya menghapus elemen dari tengah daftar tertaut, saya mungkin mulai dengan sesuatu seperti:
Maka saya mungkin mengganti
// find the element
dengan fungsi dengan lebih banyak pseudocode, dan terus berjalan sampai saya memiliki solusi lengkap. Jangan berpikir kode harus ditulis secara linear.sumber
Lakukan itu! Jika kami menyebut apa yang Anda lakukan dengan memikirkan dan merancang solusi Anda, maka masuk akal jika proses Anda akan jauh lebih cepat daripada hanya sekedar mengeluarkan kode.
Orang suka berpikir (dan orang yang berisik suka memberi tahu kami) bahwa cara mereka melakukan lebih baik. Tetapi campuran kemampuan dan keterampilan setiap orang berbeda. Jadi lakukan apa yang berhasil untuk Anda. Ketika Anda mulai berlatih, Anda mungkin akan beralih untuk melakukan lebih banyak pekerjaan desain di kepala Anda, dan menggunakan kertas untuk masalah yang lebih besar.
Satu hal yang harus diwaspadai adalah bentuk ujian yang akan diambil. Apakah mereka di atas kertas, atau apakah mereka berbasis komputer? Jika mereka berbasis kertas, maka cara Anda akan memberi Anda keuntungan. Jika berbasis komputer, maka itu juga tidak masalah: lakukan desain apa pun di atas kertas, kemudian tulis kodenya. Apapun yang terbaik!
sumber
Saya tidak menuliskan kode aktual di atas kertas, tetapi untuk hal-hal yang tidak sepele, saya hampir selalu memulai dengan papan tulis atau buku catatan. Saya biasanya membuat sketsa:
Biasanya merupakan kombinasi sketsa, kodesemu dan bahasa Inggris.
Saya menemukan bahwa dengan melakukan ini, lebih mudah untuk divisualisasikan ketika saya mulai coding. Saya juga akan melihat kekurangan sebelum saya mulai masuk ke kode karena saya bisa melihat semua yang ada di depan saya (bukannya gulir yang tak henti-hentinya dan lompatan jendela). Tidak hanya itu, setelah ditulis, saya dapat membiarkan hal-hal terbentuk di benak saya ketika saya sedang mengerjakan tugas-tugas lain. Saya juga dapat bekerja dengan cara yang tidak linier, membuat ide di atas kertas ketika ide itu mengenai saya dan kemudian kembali ke situ ketika saya mencapai titik di mana saya membutuhkannya.
Melakukan sesuatu pada kertas adalah bantuan luar biasa untuk penyimpanan memori. Tagline untuk merek notebook Field Notes adalah ini:
Setelah mengambil pendekatan yang lebih fokus untuk menuliskan segala sesuatu di atas kertas, bahkan jika saya membuat entri di aplikasi ToDo di ponsel saya beberapa saat kemudian, saya menemukan bahwa pikiran itu disemen di kepala saya jauh lebih baik daripada hanya membuat catatan elektronik. TKI, dengan merencanakan pengkodean saya di atas kertas / papan tulis, ide-idenya tetap di kepala saya lebih baik.
Ini juga berfungsi sebagai referensi praktis ketika saatnya untuk mendokumentasikan apa yang saya tulis.
sumber
Saya tidak berpikir ada sesuatu yang salah secara inheren dengan penyusunan kode (semu atau sebaliknya) di atas kertas terlebih dahulu - itu benar-benar tidak berbeda dengan menuliskannya di papan tulis, yang dilakukan banyak orang ketika membahas cara mengatasi masalah.
Apakah Anda menulis draf esai pertama untuk kelas non-CS di atas kertas terlebih dahulu sebelum mengetiknya? Sebenarnya, saya pernah melakukan itu bertahun-tahun yang lalu ketika saya masih mahasiswa, tetapi setelah tahun pertama saya, saya memaksa diri saya untuk menulis semua draft di layar, karena itu membuat menulis draft berikutnya jadi lebih mudah, dan ide yang sama berlaku untuk menulis kode.
Saya sarankan Anda mencoba mengetik algoritma Anda, bahkan jika itu hanya di editor teks seperti Word. Semakin banyak Anda melakukannya, semakin nyaman Anda untuk tidak bergantung pada kertas dan pena. Dan jika keterampilan mengetik Anda agak kurang dan itu sebenarnya sumber frustrasi Anda, ikuti kursus mengetik! Itu akan menjadi hal terbaik yang dapat Anda lakukan untuk karier masa depan Anda.
sumber
Memecahkan masalah dan menulis kode yang mengimplementasikan solusi Anda adalah dua aktivitas yang berbeda.
Jika Anda tidak terbiasa dengan bahasa, Anda akan menghabiskan banyak waktu pada kode itu sendiri - dan tidak cukup untuk menemukan solusi yang baik. Jika kertas, papan tulis atau mulai di langit-langit membantu Anda dalam hal itu, maka lakukanlah.
(Secara pribadi, saya menemukan diri saya turun dari komputer dan berjalan berputar-putar mencoba membangun solusi dalam pikiran saya)
sumber
Anda akan ace wawancara! Mereka membuat Anda menulis kode di atas kertas atau papan tulis. Saya justru sebaliknya. Mencoba menulis kawat gigi atau memotong & menempel dengan pena sangat membosankan!
Ayah saya menggunakan banyak kertas ketika memprogram COBOL. Saya pikir itu hanya gaya berpikir Anda.
sumber
Kami dulu memiliki kelas dua semester bernama The Basics of Programming. Tes tengah semester dan ujian pada akhirnya dilakukan di atas kertas. Jika Anda membuat kesalahan kompilasi, Anda kehilangan banyak poin. Jika Anda membuat kesalahan kompilasi yang besar, Anda gagal. Namun saya merasa itu mengembangkan kemampuan dalam diri kita untuk melihat kode apa saja dan menemukan garis kereta dalam jumlah waktu yang relatif lebih pendek.
sumber
Tidak ada yang salah dengan apa yang Anda lakukan, saya belajar memprogram menggunakan kertas dan pena juga.
Seperti yang orang lain sarankan lakukan apa yang cocok untuk Anda. Saya ingat program Java pertama yang saya tulis terutama di atas kertas dan kemudian saya menghabiskan dua jam mengetiknya dan lima belas menit menangis ketika saya melihat lebih dari 200 kesalahan kompiler. Ada lebih banyak tetapi kompiler hanya akan menampilkan 200 yang pertama! Yang saya maksudkan adalah bahwa dengan menulis kode di atas kertas saya dapat memikirkan algoritma dasar dan fungsionalitas untuk apa yang perlu dilakukan oleh program. Kompiler menunjukkan alasan mengapa program saya tidak dapat berjalan. 90% dari masalah berada di luar batas pengecualian dengan array.
Saat Anda mendapatkan lebih banyak pengalaman dan kepercayaan diri, Anda akan lebih sedikit menggunakan pena dan kertas. Anda sudah tahu cara menggunakan konsep dasar seperti untuk loop dan sebagainya. Anda akan memiliki contoh di program lain, yang dapat Anda gunakan kembali. Anda akan menggunakan kompiler dan IDE untuk menemukan bug yang jelas selama penulisan program. Meskipun sekarang Anda tidak memiliki pengalaman itu.
Membaca pertanyaan Anda, saya ingin tahu apakah beberapa masalah Anda mungkin karena fokus. Jika menggunakan pena dan kertas di lingkungan yang tenang membantu Anda fokus, maka hebat.
Anda masih kuliah dan masih belajar. Pada akhirnya, semua yang Anda lakukan adalah yang bekerja untuk Anda. Jika dengan menggunakan kertas dan pena Anda memesan pikiran Anda dan berpikir jernih dan tenang maka Anda pemrograman.
sumber
Kode saya jauh lebih terorganisir ketika saya mencoret-coret catatan dan pendekatan pada buku catatan, memeriksa buku, memeriksa web, dan memikirkannya. Saya juga jauh lebih dari orang visual, jadi menggambar gambar dengan struktur data sangat membantu. Saya tidak menuliskan setiap baris, tetapi saya menuliskan apa yang saya anggap sebagai fragmen "penting" atau fungsi utama. Untuk proyek yang lebih besar saya menjalankan Visio. Saya tidak yakin mengapa seseorang menganjurkan untuk melompat ke keyboard kecuali mereka jauh lebih efisien, atau dibayar per jam.
sumber
Lakukan apa yang berhasil untuk Anda. Saya tidak akan menulis kode di atas kertas. Saya menulis pseudocode dan menggambar diagram alur di atas kertas, tetapi menulis kode lengkap sepertinya membuang-buang waktu.
sumber
Saya juga menghadapi masalah yang sama pada hari pertama saya belajar keterampilan teknis.
Tetapi praktik jenis ini seharusnya tidak memberikan kesuksesan 100% karena jika kita menulis kode di atas kertas maka tidak ada kesempatan untuk memperbaiki bug, ada kemungkinan untuk menyelesaikan kesalahan dan pengecualian selama melakukan pekerjaan kertas.
Jadi pekerjaan kertas tidak memberikan navigasi apa pun untuk menyelesaikan masalah. Dan kita bisa mendapatkan kecepatan ketik sebagai bonus karena praktik sistem.
Cobalah menghabiskan lebih banyak waktu untuk latihan sistem. Ini akan memberikan kepercayaan diri dan hasil 100%.
sumber