February 15, 2024
Satu artikel menarik ditulis oleh Peter Norvig tentang belajar pemrograman. Kita bisa membaca versi aslinya di sini Teach Yourself Programming in Ten Years dan versi bahasa Indonesia Belajar Programming Sendiri Dalam Sepuluh Tahun. Saya merasa perlu menulis ulang ini di blog untuk mempermudah saya :)
Norvig melakukan riset dan menemukan bahwa sekarang ini banyak sekali buku dengan judul “Belajar X dalam Y hari” atau bahkan jam. Entah orang-orang sekarang ini terburu-buru untuk belajar tentang komputer, atau komputer adalah hal yang sangat mudah dipelajari dari hal-hal lainnya. Tidak ada buku untuk belajar Beethoven, atau Fisika Kuantum, atau bahkan Melatih Anjing dalam beberapa hari.
Dalam waktu sesingkat 3 hari kita tidak akan punya cukup waktu untuk menulis beberapa program yang berguna, dan belajar dari keberhasilan dan kegagalan program-program ini. Kita tidak akan punya cukup waktu untuk bekerja dengan seorang programmer berpengalaman dan mengerti seperti apa hidup dalam lingkungan C++. Singkatnya, kita tidak akan punya cukup waktu untuk belajar banyak. Jadi buku dengan judul semacam itu hanya bisa berbicara tentang hal-hal yg superfisial, bukan pengertian yg mendalam.
“Mengerti sesuatu hal dengan sedikit adalah hal yang berbahaya.” - Alexander Pope
Dalam 3 hari kita bisa belajar sedikit sintaks C++ (jika kita telah mengetahui bahasa pemrograman yg lain), tapi tidak bisa belajar banyak bagaimana cara menggunakan bahasa tersebut. Singkatnya, jika kita adalah seorang programmer Basic, kita bisa belajar menulis program menggunakan sintaks C++ dalam gaya Basic, tapi kita tidak bisa memahami keunggulan dan kekurangan dari C++. Satu contoh lain adalah kita perlu belajar sedikit tentang JavaScript karena perlu membuat sebuah interface dari program yang sudah ada. Yang sebenarnya terjadi adalah kita tidak sedang mempelajari bagaimana untuk memrogram; kita hanya belajar bagaimana melakukan hal tersebut. Jadi apa gunanya?
“Sebuah bahasa pemrograman yang tidak mengubah cara berpikir anda tentang pemrograman, tidak berguna untuk dipelajari.” - Alan Perlis
Banyak bukti ilmiah yang menunjukkan bahwa perlu waktu yang panjang bagi seseorang untuk mengembangkan keahliannya.
Malcolm Gladwell mengatakan itu perlu 10,000 jam, berdasarkan laporan dalam sebuah studi murid-murid di Berlin Academy of Music yang membandingkan tiga group: terbaik, menengah, dan terakhir dari sebuah kelas dan bertanya kepada mereka berapa lama mereka latihan:
Setiap orang, dari ketiga group ini, mulai bermain kira-kira pada umur yang sama, sekitar umur 3 – 5 tahun. Dalam tahun-tahun pertama ini, semua latihan sekitar 2 – 3 jam seminggu. Tetapi sekitar umur 8 tahun, perbedaan yang sesungguhnya mulai muncul.
Murid-murid yang akan menjadi terbaik di kelasnya mulai berlatih lebih banyak dari yg lainnya:
6 jam seminggu pada umur 9
8 jam seminggu pada umur 12
16 jam seminggu pada umur 14
dan terus bertambah hingga saat mereka berumur 20 tahun mereka berlatih lebih dari 30 jam seminggu.Saat mereka berumur 20 tahun, orang-orang terbaik ini telah berlatih selama 10,000 jam dalam hidup mereka. Murid-murid yg cukup baik hanya 8,000 jam, dan yang menjadi guru musik di masa depan hanya sedikit lebih dari 4,000 jam.
Cari pekerjaan. Jika tidak menyukai sekolah, kita bisa (dengan cukup dedikasi) mendapatkan pengalaman yang mirip di pekerjaan. Belajar dari buku saja tidak akan cukup.
“Pendidikan Computer Science tidak bisa membuat siapapun menjadi programmer, sama halnya mempelajari kuas dan warna tidak bisa membuat seseorang menjadi pelukis.” - Eric Raymond, penulis “The New Hacker’s Dictionary”.
Perlis mengatakan bahwa para pemain hebat memiliki kualitas internal yang melampaui pelatihan mereka. Tapi dari mana kualitasnya berasal? Apakah itu bawaan? Atau apakah mereka mengembangkannya melalui ketekunan?
“Siapa pun bisa memasak, tapi hanya mereka yang tak kenal takut yang bisa menjadi hebat.” - Auguste Gusteau (koki fiksi di Ratatouille)
Norvig menganggap pernyataan tersebut sebagai keberanian untuk bersedia mengabdikan sebagian besar hidup seseorang untuk melakukan praktik deliberatif.
“Tidak semua orang bisa menjadi seniman hebat, tapi seniman hebat bisa datang dari mana saja.” Anton Ego (kritikus Gusteau)
Jadi, silakan beli buku Java/Ruby/Javascript/PHP itu; kita mungkin akan mendapat manfaat darinya. Namun itu tidak akan mengubah hidup kita, atau keahlian kita secara keseluruhan sebagai seorang programmer dalam 24 jam atau 21 hari. Bagaimana jika kita mencoba bekerja keras untuk terus berkembang selama 24 bulan?