6 poin oleh GN⁺ 2025-05-29 | 1 komentar | Bagikan ke WhatsApp
  • Hal pertama yang saya lakukan saat bergabung dengan perusahaan baru adalah membeli buku catatan baru, dan ini bukan sekadar kegembiraan sederhana, melainkan berangkat dari pemahaman bahwa itu adalah alat inti bagi seorang pengembang
  • Menulis kode hanyalah tahap akhir; yang lebih penting adalah proses memikirkan apa yang akan dibuat dan bagaimana cara membuatnya, dan ini sering kali dimulai dari buku catatan, bukan komputer
  • Saat memvisualisasikan pemikiran dengan tulisan dan gambar di buku catatan, gagasan abstrak menjadi konkret, celah pengetahuan juga terlihat, dan hal ini membantu menghasilkan desain yang lebih baik
  • Kebiasaan menjelaskan kembali kode yang ditulis dengan tulisan menjadi alat refactoring yang efektif untuk menemukan ketidaksesuaian atau desain yang keliru
  • Catatan seperti ini juga berguna bagi diri kita di masa depan sebagai bahan untuk memulihkan konteks pengambilan keputusan, dan menjadi semacam dokumen retrospektif otomatis

Mengapa pena dan buku catatan adalah yang paling penting

  • Salah satu hal yang paling saya nantikan sebelum hari pertama kerja adalah memilih buku catatan baru
  • Bagi pengembang, buku catatan bukan sekadar alat untuk mencatat, melainkan alat untuk berpikir
  • Coding adalah eksekusi di ujung proses berpikir, dan proses memikirkan apa yang akan dibuat jauh lebih penting
  • Dalam banyak kasus, berpikir kreatif tidak mengalir dengan baik saat berada di depan komputer
    • Saat membuka editor, kita masuk ke 'mode fungsional' yang hanya berfokus pada “kode yang berjalan”

Berpikir menjauh dari komputer

  • Berjalan-jalan, atau membawa buku catatan ke sofa atau ruang terbuka untuk memikirkan masalah
  • Menata di buku catatan hal-hal seperti rancangan pendekatan, sketsa UI, flowchart untuk masalah baru, serta analisis aliran data dan ide perluasan fitur untuk kode yang sudah ada
  • Visualisasi pemikiran melalui tulisan dan gambar sangat efektif untuk mengonkretkan ide-ide yang samar
    • Celah logis yang mudah terlewat jika hanya dipikirkan di kepala akan tampak jelas saat dituangkan dalam tulisan

Menulis adalah alat refactoring terbaik

  • Setelah menulis kode, biasakan menuliskannya seolah-olah sedang menjelaskannya kepada orang lain
  • Jika memungkinkan, publikasikan sebagai blog, tetapi bahkan dalam bentuk dokumen internal pun, proses menjelaskan akan membantu menemukan ketidaksesuaian, desain yang buruk, kesalahan, dan sebagainya
  • Post terkait: Menulis adalah alat refactoring baru favorit saya

Produk samping dari berpikir sekaligus aset catatan

  • Keunggulan lain dari cara berpikir lewat tulisan adalah jejak pemikiran secara alami tersimpan sebagai catatan
  • Tanpa dokumentasi terpisah pun, produk samping dari merapikan pikiran menjadi bahan retrospektif yang sangat baik
  • Ketika nanti seseorang (terutama diri saya di masa depan) bertanya, “mengapa dilakukan seperti itu”, kita bisa membuka buku catatan dan menjelaskannya sebagaimana adanya

Tentang menulis catatan pengembang yang lebih mendalam

1 komentar

 
GN⁺ 2025-05-29
Komentar Hacker News
  • Rasanya ini diskusi yang bagus. Menurutku inti utamanya bukan laptop atau alat digital itu sendiri, melainkan sesuatu yang mengubah gigi otakku. Setiap kali berganti mode, otak memberi perhatian dengan cara berbeda, jadi konteks baru bisa meningkatkan fokus, kreativitas, dan daya ingat. Misalnya, setelah terus-terusan hanya coding lalu mulai hobi baru menulis di malam hari, aku merasa otakku seperti di-reset, dan hasil kerjaku di siang hari benar-benar meningkat. Saat membuat rencana, beralih sebentar dari digital ke pena dan kertas juga mematahkan rutinitas dan membuat otak bekerja secara berbeda. Pada akhirnya, yang penting bukan alatnya, melainkan terbangun melalui perubahan

    • Aku penasaran berapa banyak developer sekarang yang pernah dipaksa mengikuti kelas dasar gambar teknik. Mungkin banyak yang pernah main Lego. Saat harus menjelaskan objek 3D di atas kertas 2D, biasanya kita perlu menggambar proyeksi dari tiga arah, dan jika bentuknya lebih rumit daripada itu, kita perlu melihatnya dari lebih banyak sudut agar bisa dijelaskan

    • Aku terkesan dengan konsep 'disfluency' yang kutemui di buku Smarter Faster Better. Font yang tidak nyaman, lingkungan baru, alat yang berbeda, dan sebagainya bisa membuat kita keluar dari mode autopilot dan mulai berpikir dengan cara baru. Aku belum pernah melihat konsep ini di tempat lain, tetapi selama 9 tahun terakhir cara aku mendekati pemecahan masalah dan pembelajaran berubah total. Bagiku, beralih ke notebook juga jadi pemicu yang bagus untuk memunculkan efek ini

    • Dalam kasusku, aku benar-benar mencatat di tiga media: buku catatan kertas, perekam suara kuno, dan file teks. Masing-masing punya kelebihan dan kekurangan unik, jadi ide juga diekspresikan secara berbeda. Perekam suara makin jarang kupakai, tetapi saat waktunya sempit dan harus cepat lanjut, itu yang paling optimal. Ketika rekamannya kudengarkan lagi lalu kutulis ulang, setiap proses pengulangan itu mengubah ide dengan cara berbeda. Melalui proses seperti ini, aku bisa melihat ide yang sama dari berbagai sudut

    • Dari hasil riset yang pernah kudengar, context switching rata-rata memakan biaya sekitar 15 menit. Aku tidak tahu seberapa akurat itu, tetapi para atasanku juga sangat memperhatikan dan menghormati hal ini

    • Yang kualami adalah saat mengikuti seri webinar live lalu langsung mencatat dengan pena dan kertas. Awalnya sangat sulit untuk mengikutinya, tetapi setelah beberapa hari aku makin mahir dalam pergantian antara mendengar dan menulis, dan rasanya jadi lebih mudah mengingat informasi auditori

  • Beberapa orang paling pintar yang pernah kutemui di bidang matematika, fisika, dan computer science bahkan tidak memakai buku catatan. Mereka justru menulis di kertas printer dengan pena lalu membuangnya setelah selesai. Aku hampir tidak pernah menemukan manfaat dari catatan pribadi lama. Yang benar-benar penting adalah mendokumentasikan hal-hal agar bisa ditemukan orang lain, dan hal-hal yang memang harus dihafal kupelajari dengan flashcard with spaced repetition. Tentu ini caraku sendiri dan mungkin tidak cocok untuk orang lain. Judul tulisan ini hanya mencoba membagikan filosofi seorang developer, bukan mengatakan semua orang harus mengikutinya. Kalau pena dan notebook tidak cocok untukmu, ya tidak perlu dipakai

    • Secara ilmiah, menuliskan sesuatu memang meningkatkan daya ingat, hafalan, dan kemampuan belajar. Bahkan kalau hasil tulisannya langsung dibuang pun tetap ada efeknya. Ada juga artikel terkait. Menulis dengan tangan mengaktifkan lebih banyak indera dan bagian otak (terutama korteks motorik) dibanding mengetik. Aku juga sering memakai ini sebagai alasan untuk ingin membeli Moleskine, tetapi tulisan tangan tidak cocok dengan workflow-ku. Aku mengetik dalam jumlah besar ke buffer teks biasa, lalu mengolahnya nanti dengan LLM seperti GPT. Saat pikiranku macet, kalau aku terus mengetik sembarang hal, bahkan kata-kata yang tidak kupahami, perlahan kesadaranku kembali, dan dari situ muncul daftar tugas, draf email, draf kode, dan sebagainya. Dalam proses itu, sebagian besar coretan awal hilang. Meski begitu, tulisan tangan tetap lebih membantu untuk daya ingat

    • Aku setuju dengan pendapatmu bahwa catatan lama itu tidak berguna. Tapi aku tetap menyimpan catatan dan kertas-kertas itu. Melihatnya lagi setelah waktu lama rasanya seperti melihat foto keluarga lama, semacam foto dari proses berpikirku di masa lalu

    • Otakku juga bekerja seperti itu. Aku juga punya catatan, tetapi satu halaman buku catatan berisi satu hari penuh pemikiran. Besoknya aku menulis di halaman berikutnya. Aku hampir tidak pernah melihat lagi isi sebelumnya. Mungkin ada nilai dalam menengok masa lalu, tetapi dalam praktiknya aku tidak benar-benar melakukannya

    • Bagiku, metode pencatatan harus sepenuhnya bebas dan tidak terstruktur agar efektif. Sulit menangkap alur dengan keyboard. Aku memakainya untuk menuliskan data yang non-linear, non-verbal, relasional, spasial, atau informasi untuk memori jangka pendek. Secara berkala aku meninjau catatan, lalu memindahkan informasi yang bermakna ke sistem pencatatan seperti kalender, tiket, wiki, spaced repetition, dan lain-lain. Pada akhirnya, sangat jarang ada isi yang layak disimpan, tapi itu tidak masalah. Buku catatan kertas bagiku bukan sistem pencatatan resmi, melainkan perpanjangan dari memori kerja

    • Dulu aku sering kehilangan catatan. Sekarang aku memindahkan catatan dengan alat teknologi menjadi teks lalu menatanya di Obsidian vault. Ke depannya aku ingin mencoba membuat hubungan antarcatatan dieksplorasi otomatis atau diberi tag agar ide lebih mudah ditemukan

  • Menyebut notebook sebagai "alat paling penting" itu terlalu romantis. Mungkin berguna bagi sebagian orang, tetapi mengatakan itu lebih penting daripada debugger, version control, atau CI adalah berlebihan. Software engineering bukan cosplay pengrajin

    • Aku OP. Setiap kali blogku muncul di HN, selalu ada yang bilang aku "hidup dalam fantasi" atau "terlalu romantis". Tentu alat-alat yang kamu sebutkan itu penting. Aku juga menghindari pengembangan tanpa version control atau debugger karena tidak efisien. Tapi bagiku, notebook benar-benar lebih penting. Alat untuk menulis dan menjalankan kode hanyalah alat agar pekerjaan bisa berjalan, sementara hal yang benar-benar penting dalam pengembangan perangkat lunak adalah membuat sesuatu yang bernilai dan memecahkan masalah. Di situ, kode itu sendiri hanya tahap implementasi yang relatif kecil. Jauh lebih penting memikirkan apa yang akan dibuat dan bagaimana membuatnya. Ada orang yang bisa berpikir lebih baik di code editor atau alat digital. Kalau aku hanya berada di code editor, aku terlalu mudah tenggelam dalam detail implementasi dan sulit membayangkan struktur keseluruhannya. Karena itu, bagiku membawa notebook dan memakainya sebelum dan sesudah coding adalah bagian pekerjaan yang sangat penting. Kalau alat ini tidak ada, kemampuan berpikir, pemecahan masalah, dan kreativitasku akan sangat tumpul, dan aku akan membuat software yang buruk

    • Yang kamu bicarakan itu bukan software engineering, melainkan software fabrication. Perbedaan antara blue collar (pekerja lapangan) dan white collar (engineer) justru ada pada sikap terhadap 'alat' ini. Bagi engineer, entah itu slide rule, kalkulator, atau superkomputer, semuanya hanya 'alat'. Bukan karena alat itu mereka melakukan engineering. Esensinya adalah 'berpikir', dan alat hanya membantu proses itu. Bagi fabrikator, mesinnya adalah segalanya. Tanpa mesin, widget tidak bisa diproduksi. Intinya bukan 'produksi', melainkan 'pemikiran'

    • Ini rasanya seperti mengatakan, "Kalau membangun rumah, tentu palu lebih penting daripada cetak biru. Ini bukan kelas seni, ini lokasi konstruksi"

    • Terima kasih sudah menyoroti poin ini. Ada banyak kasus orang menghabiskan waktu luar biasa banyak untuk sistem produktivitas, menghias catatan gtd dengan tab dan daftar, tetapi tidak benar-benar melakukan pekerjaan yang produktif. Banyak orang menulis tentang workflow Obsidian, tetapi tidak membuat catatan yang benar-benar bermakna. Ada juga yang menghabiskan seluruh waktunya membuat blog itu sendiri, tetapi tidak pernah benar-benar menulis. (Aku juga pernah begitu.) Aku sangat suka kalimat "ini bukan cosplay pengrajin, ini software engineering", akan kucatat di notebook

    • Ungkapan "craftsmanship cosplay" bagus juga. Aku ingin melihat data tentang pekerjaan, karier, usia, pendapatan, dan pendidikan untuk tiap komentar. Rasanya opini-opini ini pada akhirnya lebih banyak mengungkapkan pembicaranya daripada pengembangan software yang sukses itu sendiri. OP hanya memakai cara yang cocok baginya agar fokus dan kreativitasnya keluar dengan baik. Menganggap tulisan utama atau kritiknya sebagai standar adalah kekeliruan. Meniru polanya pada akhirnya tidak berbeda dari perilaku cargo cult

  • Sepertinya kebanyakan komentar terlalu fokus pada bagian fisik "pena dan kertas", dan justru melewatkan prinsip inti sebenarnya. Penulis memakai pena dan kertas karena saat duduk di depan komputer, ia otomatis masuk ke "mode implementasi" sehingga lebih condong ke implementasi daripada desain. Jadi poin pentingnya adalah ketika desain memang dibutuhkan, jangan sampai hanya terjebak pada implementasi; kita perlu memilih sendiri bagaimana menjaga keseimbangan itu

    • Aku OP. Senang sekali kamu menjelaskannya dengan tepat. Yang penting adalah menemukan alat yang cocok untuk diri sendiri. Aku juga selama ini merasa agak terasing, karena di kebanyakan tim teknis semua orang duduk di depan komputer seharian, sementara aku justru bisa berpikir lebih baik tanpa layar. Aku menulis artikel ini karena ingin memberi semangat kepada orang-orang yang mirip denganku
  • Pada akhirnya ini ranah produktivitas pribadi. Kita perlu bereksperimen dengan berbagai cara lalu menemukan lingkungan dan proses yang paling cocok untuk diri sendiri. Pena dan kertas membantu mengarahkan pemikiran dan desain tanpa terlalu tenggelam dalam detail berlebihan atau terdistraksi. Aku sendiri kadang bergantian antara pemikiran yang kutulis di pena dan kertas dengan pemikiran yang langsung kutulis di Sublime Text, dan keduanya sama-sama bekerja cukup baik

  • Meme bell curve yang populer di Reddit (gambar di mana dua ekstrem memakai solusi yang sama dan si 'rata-rata' malah tidak puas) sangat cocok di sini. OP menangkap intinya: berpikirlah sebelum coding. Sekarang saat karierku sudah hampir mendekati akhir (aku mulai pada 88, jadi sudah puluhan tahun), salah satu hal paling menarik adalah perubahan alat. Aku adalah senior principal software architect di perusahaan besar, dan aku tidak menulis satu baris kode pun. Semua hasil kerjaku dibuat dengan Visio, Word, PowerPoint (kadang PlantUML). Semakin tinggi level abstraksinya, semakin sederhana alatnya. Arsitektur yang kugambar akan berjalan lebih dari 10 tahun untuk keperluan militer, medis, dan pemasok tier-1 otomotif. Kode implementasi sebenarnya (kebanyakan C, C++, dulu Ada, mungkin nanti juga Rust) maupun bahasanya sama sekali tidak memengaruhi arsitektur. Yang benar-benar penting adalah blok, API, dan enkapsulasi. Itu karena semua itu memengaruhi silikon, keamanan, produksi, dan pengujian. Yang penting adalah apa yang bisa dijelaskan dalam beberapa slide, bukan kodenya sendiri. (Tentu saja, diagramku juga harus bisa bertahan ketika cacat desain ditemukan. Itu juga bagian yang menarik)

  • Notebook Leuchturm 1917 A4 Master (sangat merekomendasikan dot grid). Kualitasnya luar biasa, dan dipakai bersama fountain pen benar-benar menyenangkan. Ukuran A4 besar, jadi enak untuk menyelipkan loose paper, dan khususnya untuk desain UI, ukuran A4 benar-benar ideal

  • Aku sudah membuat software lebih dari 20 tahun, dan sebelumnya juga mengambil PhD serta riset di OChem. Penghasilanku sebagai 'senior' di Australia sudah lebih dari cukup. Aku punya aphantasia (tidak bisa membayangkan gambar di dalam pikiran), jadi aku sangat sering memakai pena dan kertas atau whiteboard. ERD, mind map, sequence diagram, berbagai macam visualisasi. Aku memakai ReMarkable sehingga memindahkan isi jadi lebih mudah dan efisiensiku juga meningkat. Mungkin bagi sebagian orang ini terlihat seperti 'romantisme murni', tetapi dalam kesuksesanku, pena dan kertas itu esensial

    • Kebanyakan orang juga tidak bisa memvisualisasikan banyak informasi sekaligus di dalam pikiran mereka. Menurutku, secara rata-rata kapasitas itu memang terbatas. Karena itulah semua orang bisa mendapat manfaat dari pena dan kertas. Hanya tingkatnya saja yang berbeda-beda
  • Setelah mencoba membangun kebiasaan organisasi dengan berbagai alat dan aplikasi catatan, sebagai resolusi tahun baru tahun ini aku membeli satu blok notepad To-Do bertanggal lalu memakainya secara bebas saat rapat atau bekerja, dan hasilnya produktivitasku jauh meningkat. Kalau ada yang penasaran, kubagikan item yang kupakai

  • Salah satu hal yang kurindukan saat masih bekerja di kantor adalah waktu berdiri di depan whiteboard besar sambil mendesain bersama rekan kerja. Saat memegang marker bersama sambil memikirkan arsitektur, sering kali muncul desain kelas yang benar-benar elegan

    • Aku memakai excalidraw untuk hal ini, dan menurutku itu lebih baik daripada whiteboard. 1) Lebih rapi dan tidak berantakan, 2) marker digital tidak pernah kering, 3) mudah direvisi dan diubah. Saat membuat desain teknis, aku selalu mulai dari excalidraw

    • Aku memakai pen display 24 inci. Waktu masih jadi CTO, aku bahkan memberikannya ke semua anggota tim. Whiteboard digital bersama seperti itu sangat praktis karena bisa terus diedit tanpa perlu menggambar ulang berkali-kali. Tidak perlu juga memotret whiteboard sebelum dihapus

    • Whiteboard (termasuk papan tulis kapur) adalah kehidupan itu sendiri