Kutukan Pengetahuan

January 22, by JULIUS SIRAIT

“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”  — Edsger Dijkstra

Btw, judulnya seperti judul film horor haha .. Ceritanya saya kemarin baca buku Made to Stick (belum selesai baca). Ada membahas tentang The Curse of Knowledge. Kalau diterjemahkan ke bahasa Indonesia jadi kutukan pengetahuan. Kalau dibikin jadi judul, udah mirip2 judul berita di detik.com :)

Okay, apakah itu kutukan pengetahuan?

Misalkan anda tidak mengerti apa itu continuation. Kemudian anda belajar. Sekarang anda mengerti apa itu continuation. Trus anda diminta mengkomunikasikan apa yang anda mengerti ke orang lain yang belum ngerti. Pesan yang bagaimana yang akan anda sampaikan?

Yang pasti pesan yang bisa dimengerti oleh orang yang belum ngerti apa2. Disinilah terjadi kutukan itu. Kita gak ingat lagi gimana rasanya jadi orang yang gak ngerti apa itu continuation. Karna kita udah belajar. Kita udah memiliki pengetahuan itu. Hampir tidak mungkin buat kita untuk tau gimana pesan yang pas buat orang lain yang belum ngerti. 

Bingung kan?

Simplenya gini. Anda nulis blog. Anda rasa tulisan anda jelas banget. Gampang dimengerti. Tapi ternyata anda salah. Orang2 tidak mengerti.

Atau anda mendengar presentasi atau dosen ngajar. Dia ngomong panjang lebar. Tapi anda yang mendengarkan bingung. Dosen ini ngomong apa, nggak ngerti.

Itu karna kutukan pengetahuan.

Kutukan ini bukan hanya ketika kita mengkomunikasikan pengetahuan kita aja. Tapi juga hal lain, seperti quote dari Dijkstra diatas. 

Iya, iya. Dijkstra terlalu membesar2kan. Tapi ada benarnya juga. Ketika kita belajar basic, kita selalu bound,  ke cara berpikir programmer basic. Ketika diminta untuk melakukan hal lain, menjadi sangat susah.

Pernah ketemu orang lisp? Ketika kita kasih problem, dia akan kasih solusi dengan cara berpikir yang beda dengan anda yang suka pake C. Biasanya solusinya rekursif mulu. Kemudian anda terheran2, kok bisa dia mikirnya begitu?

Kemudian pernah dengar gak, sebaiknya yang coding dan yang design itu orang berbeda? Itu karna kutukan pengetahuan. Ketika kita tau bagaimana mengimplementasikannya, susah untuk mendisain yang bagus. 

Kemudian pertanyaan terakhir.

Matz, yang bikin bahasa ruby dan implementasinya MRI (Matz Ruby Interpreter). Apakah Matz tau cara mrogram ruby yang baik? Menurut kutukan pengetahuan, dia bukan programmer ruby yang baik, karna dia tau bagaimana ruby diimplementasikan.

Setuju? :) 

Kalau anda tidak mengerti tulisan ini, berarti masalahnya saya kena kutukan ini.