Shortcut
Menjadi
Developer Hebat
Armanovus Slides+Notes
(Snots)
Zeddy Iskandar
z@armanovus.com
Ini bukan cara menjadi Expert
Jika ini dibiarkan dalam Software Engineering, maka hal yang sama dalam Teknik
Sipil adalah Teach Yourself Building Construction in 24 hours.
Ya, tentunya kita akan belajar sesuatu yang baru dalam waktu 24 jam. Dan dalam
24 jam akan muncul 24 konsep di setiap jam-nya. Namun bukan berarti kita
menjadi Programmer C# yang +24 poin lebih jago dari sebelumnya.
Peter Norvig menulis artikel yang bagus tentang ini, lihat Teach Yourself
Programming in 10 Years (http://norvig.com/21-days.html).
Penulis software Remote Agent, robot luar angkasa NASA yang dapat
mengidentifikasi problem, membuat schedule kerja dan melakukannya, dan
membuat planning harus mengerjakan apa hari ini. Dinilai sebagai salah satu
prestasi terbaik dalam hal Artificial Intelligence.
Penulis buku kuliah Artificial Intelligence (AI) yang menjadi standar mata
kuliah AI dan dikutip oleh lebih dari 2,500 paper ilmiah.
Yeah, jika beliau punya nasehat tentang programming, tentunya akan saya
dengarkan :)
Buku seperti Mahir dalam 24 jam hanya akan menunjukkan sesuatu secara
overview, tidak deep dan mengakibatkan menjadi expert secara cepat
Dalam 24 jam, Anda hanya akan belajar snippet code dan bukan real-world
software. Semua contoh adalah kasus yang terisolasi dan dijamin jalan,
maka Anda tidak sempat belajar dari kesalahan maupun kesuksesan menulis
aplikasi yang digunakan orang banyak.
Dalam 24 jam, Anda hanya akan belajar sendiri. Proses belajar akan lebih
meresap jika ada programmer yang lebih berpengalaman atau mentor. Inilah
mengapa ada alasan sekolah itu ada gurunya, dan kuliah itu ada dosennya.
Dalam 24 jam, Anda hanya akan belajar syntax C#. Jika background Anda
adalah Visual Basic atau Pascal atau C, maka Anda akan tetap menulis kode
C# dengan style VB/Pascal/C (prosedural). Jika Anda belajar bahasa
pemrograman OOP namun masih menggunakan paradigma prosedural, maka
tidak ada untungnya belajar C#.
Semua anak belajar musik sama dalam usia 5 tahun dan latihan musik 3 jam
per minggu.
Yang latihan dibawah 10,000 jam hanya menjadi Guru Musik biasa.
Mozart menjadi jenius musik bukan karena secara lahir sudah jenius, namun
karena oleh ayahnya (Leopold Mozart) dipaksa latihan musik terus menerus sejak
kecil. Ayahnya juga musikus hebat pada zamannya.
Laszlo Polgar, seorang guru dan pemain catur, memberikan pelajaran catur kepada
anaknya 6 jam per hari sejak kecil. Hasilnya? Dua anaknya, Susan Polgar dan Judit
Polgar menjadi Grandmaster Catur dalam usia muda. Judit Polgar mengalahkan
seorang Grandmaster dalam usia 11 tahun dan menjadi wanita pertama yang
masuk sebagai Top 10 Pemain Catur se-dunia.
Seminar 2 jam, Training 4 jam, Workshop 8 jam tidak akan membantu Anda
menjadi Developer yang lebih baik
Anda harus latihan terus. Aplikasikan apa yang telah Anda pelajari dari
training ke dalam code sehari-hari (jika memungkinkan). Belajar dari
kesalahan dan kesuksesan hasil coding baru ini.
Jika Anda ingin menjadi Developer Hebat, Anda harus passionate dengan menulis
kode. Kenapa? Karena Anda membutuhkan 10 tahun atau 10,000 jam (yang mana
lebih dahulu tercapai) menulis kode untuk menjadi Developer Hebat. Tapi bukan
berarti menulis kode yang mirip terus-terusan selama 10 tahun
Dalam artikel The Expert Mind, Scientific American July 2006, ada yang
dinamakan Effortful Study: seorang yang berlatih catur selama 10,000 jam tetap
bisa dikalahkan oleh seorang yang latihan kurang dari 10,000 jam. Yang
membedakan memang isi latihannya: yang mau mempelajari gaya permainan para
Grandmaster lalu meng-implementasikannya ke dalam permainan sekarang,
kemudian menganalisa kemenangan dan kekalahannya akan lebih unggul daripada
pemain catur yang strateginya itu-itu saja.
Begitu juga dengan C#, seorang developer 4 tahun yang mengikuti kaidah object-
oriented design dan memahami design patterns kode-nya akan lebih elegan
dibanding programmer C# 10 tahun yang masih procedural menulis kode.
http://ayende.com/Blog/archive/2008/09/23/cuddling-is-consider-harmful.aspx
http://www.codinghorror.com/blog/archives/000051.html
http://weblogs.asp.net/astopford/archive/2007/02/28/great-programmers-do-not-
make-great-software-engineers.aspx
http://norvig.com/21-days.html
http://www.sciam.com/article.cfm?id=the-expert-mind
http://haacked.com/archive/2006/12/05/The_Question_Of_Innate_Talent.aspx
http://ayende.com/Blog/archive/2007/02/03/What-can-make-a-great-
programmer.aspx