150 poin oleh GN⁺ 2025-04-10 | 19 komentar | Bagikan ke WhatsApp
  • Penulis, setelah bertemu dengan berbagai pengembang, mulai memikirkan ciri-ciri umum yang dimiliki pengembang terbaik
  • Tulisan ini adalah catatan pengamatan yang dibuat untuk memberi inspirasi kepada pengembang pemula atau mereka yang ingin berkembang

Baca dokumentasi referensi terlebih dahulu

  • Penting untuk membiasakan diri membaca dokumentasi resmi terlebih dahulu, alih-alih langsung mencari di Stack Overflow atau LLM
  • Dokumentasi resmi seperti Apache, Python, dan TOML ternyata ditulis dengan cukup baik
  • Kebiasaan belajar langsung dari sumber akan sangat membantu dalam jangka panjang

Pahami alat secara mendalam

  • Mengetahui cara ‘menggunakan’ alat dan ‘memahaminya’ adalah dua tingkat yang berbeda
  • Orang yang benar-benar memahami alat dapat menjelaskan setiap pengaturannya
  • Untuk benar-benar memahaminya, Anda harus mengetahui:
    • sejarahnya (mengapa dibuat)
    • kondisinya saat ini (siapa yang memeliharanya)
    • batasannya (kapan tidak cocok digunakan)
    • ekosistemnya (alat lain di sekitarnya, library, dan sebagainya)
      secara menyeluruh
  • Jika Anda banyak menggunakan Kafka, Anda harus memahaminya lebih dari sekadar tingkat pengetahuan yang didapat dari Reddit

Baca pesan error dengan cermat

  • Jika diperhatikan baik-baik, pesan error mengandung petunjuk
  • Pengembang terbaik dapat menyimpulkan masalah hanya dari sedikit informasi
  • Sekitar 80% masalah bisa diselesaikan hanya dengan membaca pesan error dengan benar

Mampu memecah masalah menjadi bagian kecil

  • Mengalami kebuntuan adalah hal yang wajar, dan untuk menyelesaikannya Anda harus bisa memecah masalah
  • Orang yang berpengalaman atau sangat mahir memecahkan masalah dapat melakukannya dengan mudah
  • Pada akhirnya, pekerjaan inti pengembang adalah memecah masalah besar menjadi masalah-masalah kecil
  • Jika masalah-masalah sederhana diselesaikan satu per satu, masalah keseluruhan pun akan terpecahkan

Tangani kode tanpa rasa takut

  • Pengembang terbaik tidak takut membaca kode
  • Mereka tidak berkata seperti “itu bukan wilayah saya”, melainkan langsung mencoba dan belajar
  • Sering kali mereka cepat menjadi ahli di dalam tim bahkan pada kode yang baru pertama kali mereka tangani

Selalu bantu orang lain

  • Pengembang yang tetap membantu meski sibuk adalah rekan tim yang baik sekaligus profesional yang hebat
  • Rasa ingin tahu dan sikap kolaboratif adalah kualitas penting dari pengembang yang baik

Menulislah

  • Pengembang hebat pandai berbicara dan mampu menuangkan pikirannya dalam tulisan
  • Mereka membagikan pemikiran melalui blog, presentasi, aktivitas open source, dan sebagainya
  • Kemampuan menulis terhubung langsung dengan struktur berpikir
  • Kode dari orang yang menulis dengan baik cenderung terstruktur, jelas, dan kadang jenaka

Jangan berhenti belajar

  • Orang yang terus belajar tanpa memandang usia adalah pengembang yang benar-benar unggul
  • Mereka tidak ragu mencoba alat atau bahasa baru
  • Mereka tidak mengikuti teknologi terbaru secara membabi buta, melainkan mampu menganalisis sendiri kelebihan dan kekurangannya
  • Bahkan di usia muda, jika terjebak dalam pola pikir tetap, pertumbuhan akan berhenti

Jangan terobsesi pada status

  • Pengembang yang baik mau belajar dari siapa pun tanpa memandang jabatan
  • Mereka memiliki sikap bahwa bahkan dari junior pun selalu ada hal yang bisa dipelajari
  • Mereka mendapat inspirasi dari percakapan dengan orang-orang yang memiliki sudut pandang baru

Bangun reputasi

  • Keahlian itu penting, tetapi membuat keahlian Anda dikenal juga penting
  • Reputasi adalah sarana untuk memperluas pengaruh
  • Reputasi dapat dibangun dengan cara-cara berikut:
    • membuat atau merilis layanan penting secara langsung
    • mengembangkan alat yang dikenal luas
    • berkontribusi pada open source yang terkenal
    • menulis buku yang sering dikutip
  • Reputasi tidak dibangun dalam semalam; dibutuhkan usaha yang konsisten dan waktu

Miliki kesabaran

  • Kesabaran dibutuhkan baik terhadap manusia maupun komputer
  • Orang di sekitar Anda bukan bodoh; mereka hanya kekurangan informasi
  • Tanpa kesabaran, rasa frustrasi mudah menumpuk dan kolaborasi menjadi sulit
  • Untuk menyelesaikan masalah sulit, dibutuhkan fokus dan ketekunan

Jangan menyalahkan komputer

  • Pengembang terbaik tidak pernah menyalahkan sistem atau faktor eksternal
  • Bahkan masalah yang tampak acak pun memiliki alasan yang logis
  • Sikap untuk terus menggali sampai menemukan penyebabnya adalah hal yang penting

Mampu mengatakan “Saya tidak tahu”

  • Dalam wawancara, ada kalanya penulis sengaja menunggu momen ketika seseorang berkata “Saya tidak tahu”
  • Yang penting bukan jawabannya, melainkan sikapnya
  • Kandidat terbaik mengakui bahwa mereka tidak tahu, lalu mulai menalar
  • Sikap mengakui ketidaktahuan menunjukkan potensi untuk belajar
  • Orang yang berbohong atau berpura-pura tahu memberi dampak negatif bagi tim

Jangan menebak

  • Seperti filosofi PEP 20, saat ada ambiguitas, jangan pernah menebak
  • Risiko menebak:
    • jika salah, hasilnya bug
    • bahkan jika benar, Anda bisa percaya pada asumsi yang salah dan memicu masalah di kemudian hari
  • Jika tidak yakin:
    • bertanyalah
    • baca dokumentasi
    • gunakan alat debugging
    • cari dasar atau bukti

Jaga agar tetap sederhana

  • Orang pintar menulis kode yang pintar, orang hebat menulis kode yang sederhana
  • Kode yang sederhana jauh lebih menguntungkan untuk pemeliharaan
  • Keahlian sejati adalah mampu membedakan kapan kompleksitas memang diperlukan dan kapan tidak

Pemikiran penutup

  • Tulisan ini bukan checklist, dan rekayasa yang hebat bukanlah kompetisi
  • Namun, jangan menipu diri sendiri dengan berpikir bahwa Anda bisa melewati pekerjaan yang sulit
  • Tidak ada jalan pintas untuk menjadi pengembang yang hebat

19 komentar

 
dduha 2025-04-24

Terima kasih atas tulisannya yang bagus.!!

 
openman 2025-04-17

Saya merasa terhibur karena tulisan ini bukan sebuah checklist, dan termotivasi oleh gagasan bahwa tidak ada jalan pintas.

 
geekbini 2025-04-13

Jika memahami proyek perusahaan,
apa pun bidangnya saat menjadi developer senior
baik itu firmware, aplikasi, maupun web,
sepertinya seseorang akan mencapai tingkat di mana ia mampu melakukan debugging atas bagaimana masalah terjadi
sambil melihat log debug web, aplikasi, atau firmware.

 
softer 2025-04-11

Saya ingat perilaku yang saya duga saat wawancara.

 
wogns3623 2025-04-11

Secara pribadi, saya juga menganggap penting untuk “selalu memikirkan apa yang sedang saya buat”.

 
wogns3623 2025-04-13

Ternyata ada istilah yang bagus, yaitu Critical Thinking.

 
lighteach 2025-04-10

Sangat membantu. Terima kasih atas tulisannya yang bagus.

 
kylian 2025-04-10

Kalau begitu, tinggal minta LLM membacakan dokumentasi resminya, ya!

 
dudlf016 2025-04-10

RTFM: Tolong baca dokumentasi resminya.

 
kandk 2025-04-10

Katanya ini bukan checklist, tapi sepertinya saya harus menjadikannya checklist saya.

 
haejuk99 2025-04-10

Saya sangat setuju bahwa kita memang harus membaca dokumentasi resmi.

 
aer0700 2025-04-10

Saat pertama kali mengajarkan coding, saya rasa bakat seseorang sebagai programmer mulai terlihat dari apakah dia bisa membaca pesan error dengan teliti atau tidak.

 
postinsight 2025-04-19

.... Orang-orang yang tidak memiliki pemahaman dasar untuk mengakui bahwa error dan bug selalu ada, itulah penipu.

 
roxie 2025-05-05

Kalimatnya terlalu sulit..

 
postinsight 2025-04-19

Di web.

 
coremaker 2025-04-10

Memang tidak semuanya, tetapi sebagian besar adalah poin-poin yang terasa relevan.

 
GN⁺ 2025-04-10
Opini Hacker News
  • Tidak menebak-nebak adalah hal terpenting dalam bisnis

    • Mengembangkan kemampuan pemecahan masalah di manufaktur semikonduktor, dan biaya dari asumsi yang salah sangat besar
    • Harus selalu memahami akar penyebab secara 100%
    • Alasan menghindari tech stack yang tidak lazim adalah karena hal itu menghambat analisis akar masalah
    • Menyelesaikan masalah dengan tepat adalah cara tercepat untuk membangun reputasi
  • Saat menangani hal baru, menikmati sedikit menebak sebelum membaca referensi secara mendalam

    • Saat mempelajari bahasa atau API baru, menebak lewat tutorial lalu membaca referensinya
    • Lebih menyukai bahasa dan IDE yang mendukung fitur seperti Intellisense
  • Lebih baik merujuk langsung ke sumber tanpa bergantung pada Stack Overflow atau LLM

    • Seperti buku matematika, awalnya sulit tetapi lama-kelamaan menjadi bisa dipahami
    • docs.rs untuk crate Rust, hoogle untuk Haskell, dan referensi C++ adalah bahan referensi yang sangat baik
  • Developer terbaik belajar sambil berkomunikasi dengan orang-orang di semua level

    • Orang baru memberikan sudut pandang segar, dan hambatan di masa lalu mungkin sudah hilang
    • Perlu secara berkala memeriksa alasan keberadaan suatu aturan
  • Jika dimanfaatkan dengan baik, Stack Overflow sangat membantu

    • LLM berguna untuk analisis kejadian real-time atau otomatisasi, tetapi tidak dapat menggantikan programmer
    • Setelah memahami topik lewat LLM, sebaiknya merujuk ke dokumentasi resmi
  • Programmer terbaik tetap bisa menghasilkan kinerja luar biasa meski tanpa latar belakang CS

    • Ada kasus orang non-jurusan yang belajar pemrograman dan berkembang dengan cepat
  • Selain pemrograman, komunikasi dengan domain bisnis juga penting

    • Perlu mempertimbangkan berbagai faktor di luar pemrograman
  • Membaca dan memahami pesan error sangat membantu dalam pemecahan masalah

    • Saat menggunakan asdf untuk mengelola versi Python, Go, dan NodeJS, masalah dapat diselesaikan melalui pesan error
 
postinsight 2025-04-19

Apa itu asdf? Anda harus melihat peringatannya.

 
postinsight 2025-04-19

Yah, menurut saya sikap untuk tidak berusaha menjadi yang mutlak terbaik justru lebih baik. Soal menulis... soal membantu... kalau dilihat dari orang-orang yang begitu...