- 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
Terima kasih atas tulisannya yang bagus.!!
Saya merasa terhibur karena tulisan ini bukan sebuah checklist, dan termotivasi oleh gagasan bahwa tidak ada jalan pintas.
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.
Saya ingat perilaku yang saya duga saat wawancara.
Secara pribadi, saya juga menganggap penting untuk “selalu memikirkan apa yang sedang saya buat”.
Ternyata ada istilah yang bagus, yaitu Critical Thinking.
Sangat membantu. Terima kasih atas tulisannya yang bagus.
Kalau begitu, tinggal minta LLM membacakan dokumentasi resminya, ya!
RTFM: Tolong baca dokumentasi resminya.
Katanya ini bukan checklist, tapi sepertinya saya harus menjadikannya checklist saya.
Saya sangat setuju bahwa kita memang harus membaca dokumentasi resmi.
Saat pertama kali mengajarkan coding, saya rasa bakat seseorang sebagai programmer mulai terlihat dari apakah dia bisa membaca pesan error dengan teliti atau tidak.
.... Orang-orang yang tidak memiliki pemahaman dasar untuk mengakui bahwa error dan bug selalu ada, itulah penipu.
Kalimatnya terlalu sulit..
Di web.
Memang tidak semuanya, tetapi sebagian besar adalah poin-poin yang terasa relevan.
Opini Hacker News
Tidak menebak-nebak adalah hal terpenting dalam bisnis
Saat menangani hal baru, menikmati sedikit menebak sebelum membaca referensi secara mendalam
Lebih baik merujuk langsung ke sumber tanpa bergantung pada Stack Overflow atau LLM
Developer terbaik belajar sambil berkomunikasi dengan orang-orang di semua level
Jika dimanfaatkan dengan baik, Stack Overflow sangat membantu
Programmer terbaik tetap bisa menghasilkan kinerja luar biasa meski tanpa latar belakang CS
Selain pemrograman, komunikasi dengan domain bisnis juga penting
Membaca dan memahami pesan error sangat membantu dalam pemecahan masalah
asdfuntuk mengelola versi Python, Go, dan NodeJS, masalah dapat diselesaikan melalui pesan errorApa itu asdf? Anda harus melihat peringatannya.
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...