Mengapa (dan Bagaimana) Saya Menulis Kode Dengan Pensil dan Kertas PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Mengapa (dan Bagaimana) Saya Menulis Kode Dengan Pensil dan Kertas

Jika pemikiran tentang kode tulisan tangan tampak konyol, mungkin Anda akan terkejut mengetahui bahwa itu tidak dapat dihindari. Jika Anda tidak yakin, pikirkan tentang wawancara kerja terakhir yang Anda lakukan, dan ingat bagaimana tidak ada komputer di ruang wawancara โ€” hanya pewawancara Anda, selembar kertas kosong, dan bolpoin biru.

Bagi para siswa di antara Anda, ini bahkan merupakan masalah yang lebih besar karena nilai Anda tergantung pada baris kode yang telah Anda masukkan secara strategis ke dalam ruang yang tersedia di lembar jawaban Anda.

Dan bukan hanya itu, pemrogram berpengalaman dapat mengarahkan Anda ke bundel lembar A4 yang telah mereka hapus dari mesin fotokopi kantor untuk menuliskan algoritme kompleks yang sedang mereka kerjakan.

Jadi apakah Anda seorang mahasiswa ujian, calon orang yang diwawancarai pekerjaan, atau seseorang yang ingin menyelesaikan jalan buntu pemrograman mereka, saya harap artikel ini membantu Anda ketika Anda meletakkan pena Anda di atas kertas untuk membuat kode.

Meskipun saya akan fokus pada aspek analog dari penulisan kode, Anda dapat menerapkan langkah-langkah ini pada pengkodean dalam bentuk atau bahasa apa pun. Jadi anggap ini juga seperti pedoman pengkodean umum yang bekerja khusus untuk saya tetapi juga bisa sangat berguna bagi Anda dalam pekerjaan Anda.

Mengapa menuliskannya?

Sebelum kita mulai, penting untuk dipahami bahwa tidak ada yang mengharapkan Anda untuk menuliskan kode siap produksi di buku catatan. Bukannya Anda bisa memasukkannya ke editor kode dan mengompilasinya tanpa kesalahan. Jika menghasilkan kode yang sempurna adalah tujuannya, Anda akan duduk di depan komputer di ruang wawancara dan ruang ujian.

Tujuan dari kode tulisan tangan adalah untuk bekerja melalui logika terlebih dahulu. Ada keinginan untuk "masuk ke browser" sesegera mungkin dalam desain, tetapi ada kebijaksanaan konvensional dalam membuat sketsa desain dengan tangan. Media dengan ketelitian rendah mendorong eksperimen cepat dan kesalahan yang tidak mahal.

Kerja keras mencoba mencari cara untuk memengaruhi item di sekitarnya dengan satu klik (dari my artikel terakhir)

Hal yang sama dapat terjadi pada kode, terutama saat mengerjakan sintaks dan semantik. Yang mengatakan, mendapatkan sintaks dan semantik yang benar adalah selalu poin plus, meskipun bukan satu-satunya fokus dari keseluruhan latihan tulisan tangan.

Mari kita lihat di mana kita bisa mulai dalam hal kode tulisan tangan.

Ketahui pertanyaan Anda

Selama tahun terakhir saya di perguruan tinggi, saya tidak bisa melakukan magang atau bahkan menghadiri wawancara kampus karena alasan kesehatan. Akibatnya, wawancara kerja pertama saya cukup literal dengan taruhan tinggi.

Ketika saya melihat ke belakang sekarang, wawancara itu cukup mudah. Tetapi karena belum pernah menghadiri satu pun sebelumnya, saya cemas tanpa alasan. Hal pertama yang ditanyakan pewawancara tentang pemrograman adalah apakah saya bisa menampilkan segitiga terbalik yang terbuat dari tanda bintang. Seperti yang saya katakan, itu mudah โ€” tidak ada for loop tidak bisa menangani, kan? Tapi seperti yang saya katakan, kecemasan saya juga memuncak.

Aku menarik napas dalam-dalam, menempelkan telapak tanganku pada selembar kertas kosong yang telah mereka siapkan untukku, menyelipkannya sepelan mungkin ke arahku di atas meja (membeli waktu, tentu saja), mengklik pena, dan kemudian aku melakukan sesuatu. Baik.

Saya pertama kali menggambar segitiga terbalik yang terbuat dari tanda bintang. Begitulah cara saya menemukan kaki saya di tanah untuk mulai menjawab pertanyaan mereka.

Saya telah melihat pengembang yang brilian melakukan kesalahan hanya karena mereka tidak pernah sepenuhnya memahami apa yang sedang mereka pecahkan.

Pertanyaan yang kami kerjakan tidak seperti pertanyaan yang dipecahkan oleh fisikawan atau matematikawan. Mereka mendapatkan satu set parameter dan menemukan yang hilang; pertanyaan kami juga hasil kami. Kami sudah diberitahu apa hasil kami โ€” kami harus mencari cara untuk mencapainya. Itulah mengapa sangat penting untuk mengetahui pertanyaan dengan baik karena Anda akan melihat hasilnya.

Menulis atau menggambar apa yang ingin Anda hasilkan adalah salah satu cara terbaik untuk memulai pengkodean Anda. Saya mengerti bahwa dalam industri kita yang serba cepat, harapannya adalah kita harus terjun langsung ke pemrograman dengan menjalankan demo "hello world". Dan itu bagus untuk membiasakan diri Anda dengan sintaks yang tidak dikenal dan menghilangkan kecemasan Anda tentang mencoba sesuatu yang baru.

Tetapi ketika seseorang mengajukan pertanyaan kepada Anda dan memberi Anda hasil untuk dikerjakan, bukankah lebih baik untuk meletakkannya terlebih dahulu? Pertanyaan/hasil itu bukan hanya titik awal Anda tetapi juga titik referensi Anda. Pada setiap langkah dalam pengkodean Anda, Anda dapat melihatnya untuk memastikan Anda bekerja ke arah itu dan bahwa Anda berada di jalur yang benar.

Jadi, baik di lembar jawaban Anda atau di kertas A4 kosong yang akan Anda tulis, mulailah dengan meluangkan waktu sejenak dan tuliskan apa yang ingin Anda hasilkan. Anda dapat meletakkannya di margin atau sudut jika Anda tidak ingin itu menjadi bagian dari jawaban Anda. Pastikan itu di suatu tempat di mana Anda dapat terus merujuknya.

Garis besar kode Anda

Langkah ini seperti pedang bermata dua. Itu bisa memberi Anda peta jalan ke program Anda atau membuang waktu Anda. Tugas saya adalah memastikan itu yang pertama.

Jadi, pertama dan terutama, saya ingin mengatakan: menguraikan kode tidak diperlukan jika cakupan masalah atau pertanyaan Anda kecil. Sekali lagi, praktik ini tidak bersifat preskriptif atau universal untuk semua proyek atau situasi. Bayangkan saya adalah pewawancara Anda, dan saya meminta Anda untuk menulis cara memusatkan elemen di halaman web menggunakan CSS sebanyak mungkin. Anda tidak akan membutuhkan garis besar untuk ini. Cuplikan kode relatif kecil untuk setiap metode.

Tapi sekarang, katakanlah saya menugaskan Anda untuk menulis aplikasi web yang menangkap tanda tangan pengguna melalui antarmuka layar sentuh dan kemudian menyimpan tanda tangan di server. Tidak begitu langsung, bukan? Anda memiliki lebih dari satu hal untuk diketahui. Mungkin, sedikit garis besar dapat membantu.

  1. UI untuk menangkap tanda tangan โ€” Kanvas HTML? WebGL?
  2. Nonaktifkan acara penunjuk di halaman web lainnya saat pengguna masuk
  3. Konversi dan simpan gambar yang diambil ke file PNG โ€” JS
  4. Kemudian ubah menjadi gumpalan (mungkin) dan simpan ke tabel data log pengunjung.

Saya telah menulis urutan tindakan kasar yang menurut saya mungkin harus saya kode. Itu bisa lebih pendek atau lebih lama, tergantung pada apa yang saya inginkan darinya.

Saya sangat merekomendasikan menguraikan kode untuk proyek klien. Tulis garis besar bersama dengan persyaratan pengguna Anda atau di bagian belakang gambar rangka yang telah Anda cetak.

Cuplikan cepat poin-poin Anda memberi Anda peta, daftar tugas, dan daftar periksa untuk diverifikasi ketika Anda mencapai akhir proyek โ€” hampir seluruh ringkasan proyek Anda dalam daftar kesetiaan rendah. Itu juga bisa menjadi templat untuk memulai proyek serupa Anda berikutnya.

Tapi seperti yang saya katakan sebelumnya, langkah ini seperti pedang bermata dua. Anda harus membuat ini singkat untuk peserta ujian dan orang yang diwawancarai ketika ada kendala waktu.

Jika Anda tidak tahu harus mulai dari mana, tuliskan hanya tiga fungsi penting yang harus Anda kodekan dalam aplikasi Anda, dan jika Anda punya waktu, buatlah menjadi lima.

Tapi itu saja. Habiskan waktu sesedikit mungkin untuk ini, dan jangan memusingkan detailnya. Garis besar tidak akan memberi Anda poin tambahan. Itu ada hanya untuk membantu Anda memastikan Anda memiliki segalanya tertutup. Ini menangkap reaksi awal Anda dan membuat Anda tetap jujur โ€‹โ€‹sepanjang hidup proyek.

Tulisan tangan vs. tulisan steno

Kertas bergaris putih dengan catatan tulisan tangan kursif dengan tinta hitam.
Referensi cepat untuk menonaktifkan pemilihan teks

Saatnya memulai pengkodean. Jadi, apa yang Anda tulis? โ€œBdrsโ€ atau โ€œborder-radius"; "div -> p" atau "<div><p></div></p>"; "pl()" atau "println()"; "q()" atau "querySelector()"?

Jika orang lain menilai kode Anda, maka tidak ada pilihan. Tinggalkan singkatan, kode semu, pintasan Emmet, dan bentuk tulisan steno lainnya. Jika tidak, tidak ada alasan untuk berasumsi bahwa siapa pun yang membaca ini tahu apa arti singkatan Anda.

Ini benar-benar terserah Anda.

Jika Anda telah kehilangan kontak dengan menulis dengan tangan โ€” dan banyak dari kita telah melakukannya โ€” lebih baik jangan berlebihan dengan notasi tulisan tangan, karena akan membosankan. Pada saat yang sama, tidak ada yang namanya terlalu hemat dengan tulisan Anda. Tidak jika Anda ingin dapat melihat kembali suatu hari nanti dan memahami apa yang telah Anda tulis.

Saya memiliki file terbuka di aplikasi pencatat saya dan notepad berjajar di meja saya tempat saya menuliskan potongan kode yang ingin saya simpan untuk referensi nanti. Mereka tidak terorganisir, hanya aliran cuplikan yang panjang. Itu sebabnya ketika saya menelusuri catatan lama, saya tidak akan tahu apa yang ingin saya tulis jika saya tidak menuliskannya dengan jelas.

Saya lupa sintaks sepanjang waktu. Misalnya, saya telah menggunakan notasi panah untuk fungsi JavaScript sejak diperkenalkan (karena lebih pendek), dan saya cukup yakin jika seseorang tiba-tiba meminta saya untuk mendefinisikan suatu fungsi menggunakan function kata kunci, saya bahkan mungkin salah menempatkan tanda kurung atau nama fungsi, memicu kesalahan sintaksis.

Bukan hal yang aneh bagi kami untuk melupakan sintaks yang sudah lama tidak kami gunakan. Itulah mengapa lebih baik menulis catatan Anda dengan jelas ketika Anda tahu Anda membutuhkannya untuk referensi di masa mendatang.

Aliran kode yang tidak berurutan

Tidak seperti langkah terakhir, yang tidak berlaku untuk Anda yang diwawancarai dan peserta tes, langkah ini khusus untuk Anda.

Sebagian besar bahasa pemrograman diinterpretasikan, dikompilasi, dan dieksekusi sehingga terkadang kode yang telah ditulis sebelumnya di sumber dieksekusi kemudian saat dipanggil. Kami melakukannya dalam JavaScript, misalnya, dengan pemanggilan fungsi โ€” fungsi dapat didefinisikan pada awalnya, kemudian dieksekusi kemudian. Peserta ujian dan orang yang diwawancarai dapat menggunakan ini untuk mulai mengerjakan poin kritis dari jawaban Anda terlebih dahulu.

Seperti yang telah saya katakan sejak awal, tujuan kode tulisan tangan adalah untuk mengerjakan atau menguji logika apa pun yang Anda program. Yang terbaik adalah ketika Anda fokus untuk menyelesaikannya terlebih dahulu.

Mari kita ambil contoh buku teks klasik โ€” sebuah program untuk menemukan nth Angka Fibonacci. Jika saya menulis garis besar sederhana untuk itu, itu akan menjadi seperti ini:

  1. Dapatkan masukannya.
  2. Menghitung bilangan Fibonacci.
  3. Ringkaslah keluarannya.
  4. Cetak keluaran.

Semua langkah dalam garis besar itu penting; namun, 1, 3, dan 4 lebih wajib. Mereka diperlukan tetapi tidak cukup penting untuk segera difokuskan.

Lebih baik mulai menuliskan kode untuk menghitung angka Fibonacci daripada mengambil input. Bungkus dalam suatu fungsi, lalu lanjutkan dan tulis kode secara berurutan dan tuliskan baris untuk memanggil fungsi itu jika perlu.

Luangkan waktu Anda untuk menulis kode yang berfokus pada inti masalah.

Profesional sejati dapat melompat ke depan. Katakanlah saya memiliki proyek klien, dan saya harus bekerja dengan beberapa geometri segitiga โ€” memiliki dua sisi, sudut yang berlawanan, dan harus menemukan panjang sisi ketiga. Dan saya memutuskan untuk mencoret-coret kertas untuk memulai daripada membuka IDE.

Pertama, saya akan menggambar segitiga, tentu saja (itu adalah sesuatu yang sangat saya alami, seperti yang Anda tahu). Saya akan menuliskan beberapa contoh panjang dan sudut. Kemudian saya akan menulis rumus (pujian dari pencarian online, pasti), dan kemudian saya akan langsung ke kode untuk fungsi tersebut.

Tidak ada gunanya saya menuliskan langkah-langkah wajib meskipun saya akan membutuhkannya dalam kode siap produksi. Namun akan berbeda jika saya harus menuliskannya di lembar jawaban saat ujian. Saya tidak bisa melewatkan langkah lainnya; namun, saya masih bisa memulai dengan kode untuk rumusnya.

Kode semu

Chris sudah menulis artikel berguna tentang pseudo-code bahwa saya sangat menyarankan Anda memberikan bacaan yang solid.

Untuk semua profesional yang merasa bahwa keseluruhan kode tulisan tangan tidak tampak seperti secangkir teh Anda, tetapi mungkin masih penasaran apakah itu dapat membantu Anda, maka kode semu mungkin keseimbangan yang Anda cari.

Ini mirip dengan menguraikan kode, seperti yang saya sebutkan di salah satu langkah sebelumnya. Namun, ini lebih singkat dan terasa lebih seperti pengkodean singkatan. Kadang-kadang juga disebut sebagai "kode kerangka."

Berikut beberapa kode semu cepat untuk tata letak kisi CSS:

Grid
5 60px rows
6 100px columns

Tidak banyak yang bisa ditulis! Jadi, meskipun meletakkan pensil di atas kertas sangat bagus untuk hal semacam ini, sama efektif, cepat, dan murah untuk menuliskan beberapa kode semu ke dalam program apa pun yang Anda gunakan.

Spasi dan komentar

Saya percaya kode adalah 90% kata kunci dan 10% tab. Tanpa spasi, keterbacaan kata berkurang. Indentasi juga diperlukan untuk kode tulisan tangan. Namun, jangan menggunakannya untuk setiap level karena lebar kertas akan membatasi Anda. Gunakan spasi dengan bijaksana, tetapi gunakanlah.

Kertas kuning tidak bergaris dengan kode tulisan tangan di kursif dengan tinta hitam.
Cuplikan OG berharga, ditulis dengan TLC ekstra

Jika Anda menulis kode untuk Anda gunakan, saya juga percaya bahwa jika Anda telah mengikuti semua yang telah saya sebutkan sejauh ini dan telah menuliskan output Anda dan garis besar pada halaman, Anda mungkin bahkan tidak perlu menyertakan komentar. Komentar memberi tahu Anda dengan cepat apa yang dilakukan rangkaian kode berikut. Jika Anda telah menulis dan membaca garis besar kode, maka komentar adalah catatan yang berlebihan.

Namun, jika penilaian Anda mengatakan untuk meletakkannya, maka lakukanlah. Tambahkan ke sisi kanan kode (karena Anda tidak akan dapat menyisipkannya di antara baris yang sudah tertulis seperti yang Anda bisa, katakanlah, Kode VS). Gunakan garis miring, kurung, atau panah untuk menunjukkan bahwa itu adalah komentar.

Untuk peserta ujian yang tidak percaya diri dengan sintaks tertentu, tuliskan komentar. Dengan cara ini, setidaknya, Anda membiarkan orang yang menilai makalah Anda mengetahui niat Anda dengan kode yang diformat secara salah itu. Dan gunakan hanya pembatas yang benar untuk menunjukkan komentar โ€” misalnya, itu akan menjadi garis miring untuk JavaScript.

Analog vs digital

Seperti yang saya sebutkan sebelumnya, semua yang saya berikan di sini adalah saran pengkodean umum. Jika Anda tidak ingin mencoba ini dengan kertas fisik, aplikasi pencatat apa pun juga berfungsi.

Tetapi jika Anda akan mencoba rute digital, rekomendasi saya adalah mencoba menggunakan sesuatu selain aplikasi pencatat langsung. Bekerja dengan lebih banyak alat digital visual โ€” diagram alur, peta pikiran, gambar rangka, dll. Mereka dapat membantu Anda memvisualisasikan hasil Anda, garis besar, dan kode itu sendiri.

Saya bukan warga digital (kecuali untuk bekerja di web dan baru-baru ini beralih ke membaca e-book), jadi saya tetap menggunakan buku catatan fisik.

Alat favorit saya untuk kode tulisan tangan

Pensil dan kertas apa pun bisa digunakan! Tetapi ada banyak pilihan di luar sana, dan ini adalah beberapa alat pilihan yang saya gunakan:

Tidak ada cara "menulis" untuk membuat kode

Saya harap, jika tidak ada yang lain, cara kecil saya menulis kode dengan pensil dan kertas membuat Anda mengevaluasi cara Anda merencanakan dan menulis kode. Saya suka mengetahui bagaimana pengembang lain mendekati pekerjaan mereka, dan ini adalah cara saya memberi Anda gambaran tentang cara saya melakukan sesuatu.

Sekali lagi, tidak ada yang ilmiah atau seni eksak di sini. Tetapi jika Anda ingin mencoba perencanaan kode tulisan tangan, inilah semua yang telah kami bahas dalam daftar pesanan yang bagus:

  1. Mulailah dengan menuliskan (dengan data sampel, jika diperlukan) keluaran kode Anda.
  2. Tulis garis besar untuk kode. Harap simpan dalam tiga langkah untuk proyek kecil atau yang tidak terlalu rumit.
  3. Gunakan notasi tangan. Pengembang yang menulis untuk diri mereka sendiri dapat menggunakan notasi steno selama tulisan tersebut dapat dibaca dan masuk akal bagi Anda saat Anda merujuknya nanti.
  4. Saat berada di bawah batasan waktu, pertimbangkan untuk menulis kode yang menangani inti masalah terlebih dahulu. Kemudian, tuliskan panggilan ke kode itu di tempat yang tepat dalam kode berurutan Anda.
  5. Jika Anda merasa percaya diri, cobalah menulis kode semu yang membahas gagasan utama.
  6. Gunakan lekukan dan spasi yang tepat โ€” dan perhatikan lebar kertas.

Itu dia! Ketika Anda siap untuk mencoba menulis kode dengan tangan, saya harap artikel ini memudahkan Anda untuk memulai. Dan jika Anda sedang duduk untuk ujian atau wawancara, saya harap ini membantu Anda fokus untuk mendapatkan pertanyaan dengan benar.

Stempel Waktu:

Lebih dari Trik CSS