//
archives

Archive for

Menulis Adalah Awal dari Sebuah Peradaban

Itu pesan yang disampaikan almarhum abang siswa Sigit Firmansyah (TN9) yang selalu teringat hingga sekarang. Mudah diucapkan dan sulit untuk dilakukan. Terlebih bagi yang jarang menulis dan lebih banyak coding seperti saya. Dan saat ini mulai menulis bab kedua thesis, Fundamentals and Related Works, di mana banyak isinya berhubungan dengan paper lain. Selama 3 minggu dihabiskan untuk membaca banyak paper, menggarisbawahi/men-stabilo paragraf-paragraf penting, dan memberi catatan kecil di bagian kosong paper agar paragraf-paragraf yang sulit dipahami menjadi lebih jelas. Tidak semua paper diprint, sebagian dibaca langsung dari Adobe Reader. Saat menulis akan dimulai, mencoba membaca kembali semua yang sudah ditandai dan dicatat, bertebaran entah di paper yang mana. Sulit untuk ditelusuri kembali. Semua yang diingat, hilang seketika. Sungguh 3 minggu yang sia-sia rasanya.

Jangan pernah percaya dengan ingatan. Ingatan itu senang berbohong dan berteman dengan keragu-raguan. Entah sudah keberapa kalinya banyak hal menarik yang lupa dan kadang muncul kembali, termasuk ide-ide untuk tulisan di blog atau bahkan di-coding. Dan sering kali pikiran berpindah-pindah dari satu topik ke topik lain tidak menentu, terpecah ketika iseng membaca berita-berita menarik di IEEE Spectrum atau MIT TechnologyReview.com dan muncul ide-ide baru.

Satu solusi yang menarik datang dari Hardi Sukrisman, teman Wirtschaftinformatik di kampus, dengan menggunakan software sejenis MindMapping bernama Sciplore versi beta (dan sudah keluar versi rilis, Docear). Teknik Mind Mapping mungkin sering terdengar atau setidaknya tahu, tapi sama sekali tidak pernah dicoba. Ternyata dikombinasikan dengan Foxit Reader, benar-benar berguna. Foxit Reader memungkinkan pengguna untuk meng-highlight (stabilo), memberi catatan kecil, dan menandai dengan bookmark. Fitur terakhir yang paling penting karena Sciplore akan mengimpor bookmark tersebut ke dalam worksheet Sciplore.

Bahkan karena Foxit Reader versi Linux tidak sebagus versi Windows, saya bela-belain untuk meng-compile Foxit Reader 5.x versi Windows menggunakan Wine 1.4-rc3 selama sejam. 90% bekerja baik. Dokumen PDF yang dibuat dengan LaTeX dapat dibuka, sedangkan yang bukan dengan LaTeX, beberapa tidak bisa. Belum diketahui PDF dari PDF Generator mana yang tidak bisa dibuka. Untuk yang menggunakan Windows, semuanya berjalan sempurna.

Ini sebenarnya hanya teknik lama yang sudah diajarkan oleh guru-guru SD atau SMP ketika murid diajari cara menulis yang baik, yang kemudian dipoles dengan visualisasi dan user experience yang intuitif.

Secara keseluruhan, saya sangat puas dan menganjurkan. Banyak materi penting dari paper-paper yang dikumpulkan jadi satu lebih mudah untuk dianalisis hingga mempercepat penulisan. Software ini juga cocok untuk menuliskan ide-ide liar yang berkeliaran tidak tentu atau kliping fakta berupa angka-angka yang ada di internet, seperti hasil market research Nielsen atau laporan kemajuan pembangunan di daerah-daerah.

Selain itu, lebih hemat kertas yang artinya menghemat uang dan Mind Mapping dalam software memungkinkan untuk digunakan lagi jika ada tulisan atau ide-ide lain.

Semoga software ini menambah minat menulis orang Indonesia, terlebih dalam bahasa Indonesia dan lebih khusus lagi dalam bahasa daerah. Menulis dalam bahasa Inggris juga tidak masalah agar lebih dikenal global, hanya saja sekarang referensi-referensi yang bermanfaat dalam bahasa Indonesia atau daerah sangat sedikit. Menulis dalam bahasa Indonesia bertujuan mencerdaskan bangsa kita sendiri. Orang Jerman banyak menerjemahkan buku-buku berbahasa Inggris, khususnya akademik, ke dalam bahasa mereka sendiri, dan seperti itulah mereka bisa membangun peradaban mereka sendiri, bersaing di level internasional. Mudah bagi mereka untuk menemukan literatur dalam bahasa Jerman. Bukannya membangun peradaban dengan merusak dan membakar bangunan seperti yang marak terjadi di negeri kita tercinta. Itu konyol namanya.

Mari sebarkan ilmu dengan menulis, baik itu bidang elektronik, penerbangan, sipil, lingkungan, sosial hingga sekedar bagaimana memasak coto makasar yang enak. Dalam jangka pendek efeknya mungkin tidak terlihat, tapi dalam jangka panjang, 10 tahun lagi, efeknya akan terasa bermanfaat. Jangan kuatir jika tulisan awalnya tidak berkualitas karena semakin sering menulis gaya tulisan pun akan berubah, seperti tulisan pertama di blog ini tahun 2006.

Danke, Hardi! Ich wünsche du hat mir diese Software seit letze 3 Woche gesagt. Sehr günstig!

NB: Tulisan kali ini tidak seperti 4 tulisan sebelumnya yang lebih banyak referensi karena adanya deadline progress report 3 hari lagi.

NBB: Dan pastinya ini bukan promosi software karena semua yang disebutkan gratis. Jika ada software Mind Mapping atau ada solusi cara menulis yang lebih baik, silakan di-share 

Advertisements

Sistem Rekomendasi dan SpotDokter

Ada update status teman di Facebook yang lucu. Like. Ada Fan Pages Katy Perry di Facebook. Like. Ada berita menarik di Kompas.com. Like. +1. Ada video menghasut SARA di Youtube. Dislike. Ada sepatu warna-warni lucu di Amazon. 4 bintang dari 5. Melihat resensi Batman: The Dark Knight di IMDb. 9 bintang dari 10.

Ketika kita sibuk mengaktualisasi diri, di balik data center Facebook, Amazon, Google, dan IMDb, Recommendation Engine bekerja memproses input-input yang kita berikan melalui tombol Like, Dislike, +1, dan Likert Scale (bintang-bintang) dengan algoritma kompleks– yang bisa ditelusuri di paper-paper berkaitan dengan Recommender Systems (Sistem Rekomendasi), dan memberikan berbagai macam rekomendasi untuk dilihat atau dibeli.

Contoh di Facebook dapat dilihat di sisi kanan laman: People You May Know, People To Subscribe ToDiscover New Games, dan Recommended Pages. Untuk Amazon (dan online shopping lainnya): ada baris dengan judul Customers Who Viewed This Item Also Viewed yang menampilkan barang-barang lainnya (yang mungkin saja menarik untuk dibeli). Dan IMDb di sisi kanan laman, ada Related Lists menampilkan film-film lain dengan genre sama.

Dan sistem ini menjadi terkenal ketika Amazon mengimplementasikannya untuk menjual barang kepada calon pembeli. 20-30% barang-barang yang terjual dihasilkan dari rekomendasi (cara lain untuk meningkatkan pembeliannya adalah melalui pencarian dengan kata kunci– Search dan mengisi karakteristik barang di sisi kiri laman Amazon– Knowledge-based Recommender System). Facebook pun juga menggunakannya untuk Sponsored Ad yang dapat dilihat di sisi kanan news feed.

Singkatnya Sistem Rekomendasi bertujuan memberikan rekomendasi item (barang-barang) baru kepada user (pengguna/calon pembeli) yang akan digunakan [1]. Item di sini bermacam-macam, dari barang jualan, musik, film, restoran, makanan, tempat wisata, hingga teman baru (baca: jodoh).

Pembahasan berikutnya akan menjadi lebih teknis. Stop di sini jika tidak tertarik dan lanjutkan menekan tombol like untuk update status lucu teman-teman di Facebook dan dislike video-video yang memancing kemarahan di Youtube agar dunia ini menjadi damai.

Yang masih membaca baris ini, maka termasuk dalam tipe Aktif Mencari Tahu. Alhamdulillah kalau begitu.

Jadi ada banyak teknik kompleks yang dapat digunakan dalam Sistem Rekomendasi, tapi secara mendasar ada 3 macam: Content-based, Collaborative Filtering, dan Hybrid Recommender [2] [3] [4] [5].

Agar lebih mudah menjelaskan 3 macam algoritma ini, saya akan menggunakan contoh, yaitu app Android yang baru di-launch oleh Project Eden: SpotDokter [6]. Aplikasi direktori mobile untuk memberikan informasi tentang dokter, rumah sakit, apotek, dan laboratorium yang cukup lengkap [7]. Selain itu, app ini memiliki fitur location-aware, meski belum sepenuhnya kelebihan location digunakan.

Permasalahan yang muncul adalah bagaimana kita bisa menemukan dokter yang cocok dengan keinginan kita (preference). Ada orang yang cocoknya dengan dokter A, tapi mungkin tidak terlalu cocok dengan dokter B. Mencari satu per satu melalui direktori jelas bukan pekerjaan mudah. Melakukan pencarian dengan kata kunci, tentu jika kita sudah tahu dokter mana yang ingin dituju. Menggunakan fitur location, ini untuk mencari dokter yang lokasinya paling dekat, bukan mencari dokter yang cocok.

Permasalahan seperti inilah yang coba dijawab Sistem Rekomendasi dengan memberikan rekomendasi dari pengalaman pribadi sebelumnya atau dengan pengalaman pasien-pasien lainnya (Word of Mouth) yang sudah menggunakan jasa dokter tertentu. Saya pribadi (to the best of my knowledge) tidak melihat ada fitur ini pada app SpotDokter dan tertarik untuk memberikan sumbang saran dari sisi akademik. Tentunya masalah privasi menjadi sangat krusial karena ini berhubungan dengan nama baik dokter dan medical record pasien.

Algoritma pertama yang dapat kita gunakan adalah Content-based. Teknik ini akan merekomendasikan dokter dengan menggunakan pengalaman pribadi sebelumnya. Sama sekali tidak bergantung dari pengalaman pasien-pasien lain. Caranya dengan mencocokkan user profile, yaitu dokter-dokter yang sudah di-rating sebelumnya (Like atau 5-star Likert Scale), dengan item profile, semua informasi yang berhubungan dengan dokter-dokter baru yang belum pernah dituju untuk direkomendasikan.

Detailnya, teknik ini dapat diimplementasi dengan menggunakan information retrieval (TF-IDF/Term Frequency – Inverse Document Frequency) untuk memberikan nilai TF-IDF tiap kata pada deskripsi sekumpulan dokter-dokter potensial untuk direkomendasikan dan nilai TF-IDF pada user profile, deskripsi dokter-dokter yang pernah dituju [2] [3]. Kemudian cari dokter yang paling sesuai dengan preference dari user profile menggunakan similarity measure, seperti cosine similarity measure dengan TF-IDF sebagai vektor, sehingga didapatkan sejumlah rekomendasi dokter disorting berdasarkan kemiripan (similary).

Ada 3 masalah yang dimiliki algoritma Content-based. Pertama, tidak semua domain dapat menggunakan teknik ini karena memanfaatkan text processing. Selain itu, kita (atau tim SpotDokter) harus melengkapi semua deskripsi item yang tentunya tidak otomatis dan melelahkan. Kedua, semakin lama rekomendasi (dokter) yang diberikan akan semakin spesifik (overspecialization) sehingga tidak memunculkan rekomendasi yang baru. Dan yang terakhir, adalah new user problem. Penggunaan awal tidak akan memunculkan rekomendasi yang berkualitas karena memang tidak ada sama sekali dokter yang di-rating atau terlalu sedikit data untuk diproses.

Algoritma kedua dan yang cukup populer digunakan adalah Collaborative Filtering. Teknik ini akan merekomendasikan dokter-dokter menggunakan pengalaman pasien-pasien lainnya. Dan pengalaman pasien-pasien lain yang kita gunakan adalah pasien-pasien yang memiliki kemiripan saat merating dokter-dokter yang telah dituju. Dengan demikian, teknik ini sama sekali tidak membutuhkan deskripsi dari item (dokter-dokter) seperti yang disebutkan pada problem pertama Content-based.

Ada beberapa macam implementasi yang akan digunakan, seperti user-based dan item-based [8]. Yang akan dijelaskan di sini adalah user-based sebagai algoritma yang pertama kali muncul dan lebih intuitif. Teknik ini mencoba untuk “memprediksi” rating dari dokter yang belum pernah dituju.

Rating setiap dokter oleh setiap pasien menjadi penting dan khususnya rating 5-star Likert Scale agar menghasilkan rekomendasi yang lebih berkualitas. Dan dari kumpulan rating-rating ini, kita sudah memiliki sebuah matrix user-item (pasien-dokter) yang berisi nilai rating yang berbeda-beda untuk setiap pasangan pasien dan dokter.

Untuk memprediksi rating dokter yang belum pernah dituju (belum dirating) didapat dari hasil aggregasi/penjumlahan dari “kemiripan rating pengguna dengan rating semua pasien-pasien lainnya terhadap dokter-dokter yang sama” menggunakan Pearson similarity (seperti cosine similarity measure) yang diberi bobot weighted sum. Bobot total (weighted sum) di sini bertujuan untuk memberikan bobot lebih pada pasien-pasien lain yang memiliki kemiripan pemberian rating sehingga rekomendasi dokter-dokter akan cenderung cocok dengan pilihan pengguna.

Ada 2 masalah yang dimiliki algorithma Collaborative Filtering. Pertama, new user problem yang sama dengan masalah ketiga dari Content-based. Kedua, new item problem di mana sulit untuk memberikan rekomendasi ketika item (dokter) lainnya belum dirating oleh pengguna (pasien) lainnya. Dua masalah ini jika dijadikan satu maka akan terlihat sparsity atau jumlah rating yang ada terlalu sedikit dibandingkan total rating seluruhnya (user x item) sehingga jika tidak ada irisan di antara rating pengguna dan pasien-pasien lainnya terhadap dokter-dokter yang sama sulit untuk merekomendasikan dokter-dokter baru.

Oleh karena adanya masalah-masalah yang dimiliki oleh Content-based and Collaborative Filtering, maka muncul algoritma ketiga yaitu Hybrid Recommender. Mencoba menggabungkan kelebihan dari tiap algoritma untuk menutupi kekurangan algoritma lainnya. Contohnya seperti yang digunakan oleh [5] menggabungkan Content-based (CB) dan Collaborative Filtering (CF). CB digunakan pada tahap awal penggunaan app untuk menghasilkan pseudo rating sehingga didapatkan matriks yang penuh (full matrix). Kemudian setelah banyak rating aktual dimasukkan barulah digunakan CF untuk merekomendasikan dokter-dokter. Penelitian membuktikan bahwa secara empirik Hybrid Recommender menghasilkan rekomendasi lebih berkualitas ketimbang pure CB ataupun pure CF.

Banyak teknik lainnya yang bisa dieksplor untuk memberikan rekomendasi yang berkualitas kepada para pengguna, seperti memanfaatkan location, di mana ini sudah masuk dalam topik Context-Aware Recommender Systems. Kapan-kapan akan saya bahas.

Sekian, penjelasan pengantar tentang Sistem Rekomendasi dengan contoh app SpotDokter yang baru saja di-launching. Artikel ini hanya bertujuan untuk memberikan gagasan agar kualitas software (dan app) di Indonesia semakin bagus. Selain itu, software (dan app) menjadi raja di negaranya sendiri.

Referensi

[1] F. Ricci, L. Rokach, B. Shapira. Chapter 1: Introduction to Recommender Systems Handbook. Recommender Systems Handbook. Springer. 2011.

[2] G. Adomavicius, A. Tuzhilin. Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions. IEEE Transactions on Knowledge and Data Engineering. pp734-749. 2005

[3] M. Balabanovic, Y. Shoham. Fab: Content-based, Collaborative Recommendation. Comm. ACM, vol. 40, no. 3, pp. 66-72. 1997.

[4] J.S. Breese, D. Heckerman, and C. Kadie. Empirical Analysis of Predictive Algorithms for Collaborative Filtering. Proc. 14th Conf. Uncertainty in Artificial Intelligence. July 1998.

[5] P. Melville, R.J. Mooney, and R. Nagarajan. Content-Boosted Collaborative Filtering for Improved Recommendations. Proc. 18th Nat’l Conf. Artificial Intelligence. 2002.

[6] Dailysocial.net. Aplikasi Direktori Fasilitas Kesehatan SpotDokter Diluncurkan Hari Ini.

[7] Tempo.com. Sakit? Tanya ke Spotdokter.com.

[8] G. Linden, B. Smith, J. York. Amazon.com Recommendations: Item-to-Item Collaborative Filtering. IEEE Internet Computing. Jan/Feb 2003.

Bukan Sekedar Programmer

Jeff Atwood, CTO Stack Exchange, mengklasifikasikan level programmer dalam 8 tingkatan. Dead Programmer, Successful Programmer, Famous Programmer, Working Programmer, Average Programmer, Amateur Programmer, Unknown Programmer, dan Bad Programmer. Oh tentunya ini bukan standar internasional, hanya berdasarkan dari pengalamannya saja. Mengacu dengan klasifikasi Jeff Atwood, sekarang pertanyaannya di level manakah kita sekarang? Lima atau sepuluh tahun lagi akan berada di level yang mana? Pada akhirnya kita mau di level yang mana?

Sedikit mungkin yang ingin menjadi Dead Programmer. Dead di sini bukan dalam arti sebenarnya, melainkan programmer yang kontribusinya kepada dunia besar sekali. Temuan, buku, dan papernya selalu dipelajari dan dikembangkan, bahkan setelah si empunya sudah tiada.

Dan rasanya tidak sopan jika tidak menyebutkan Donald Knuth sebagai salah satu contohnya. Orang komputer wajib hukumnya untuk tahu siapa Knuth. The Art of Computer Programming, buah karya sang Profesor mengenai analisis algoritma  yang dipaparkan dengan sangat detil sudah seperti kitab suci di dunia komputer. Tanpa algoritma yang tepat, sulit rasanya membayangkan komputer akan sekencang saat ini atau chatting di Instant Messenger tanpa delay.

Tapi saya yakin, rasanya banyak di antara kita pasti memilih ingin jadi Successful Programmer. Punya insting bisnis bagus, dikenal di kalangan programmer,  dan code yang ditulis berubah menjadi bisnis sukses, seperti Bill Gates dan Mark Zuckerberg. Atau mungkin contoh lokalnya seperti Andrew Darwis, CEO Kaskus, dan Kris Antoni, CEO Toge Production, bidang game.

Dan sebagian lainnya ingin menjadi Famous Programmer, yang sekarang lebih dikenal dengan sebutan hacker, ninja programmer, atau rockstar programmer. Kemampuan yang dimiliki sudah berada di antara level 2 dan level 3 menurut Programmer Competency Matrix. 20% pekerja yang memberikan 80% kontribusi ke perusahaan. Jenis programmer yang paling banyak dicari. Saat ini, ketika umur masih di bawah 30 tahun, jujur tipe ini yang sedang saya tuju dan yang ingin dibahas di sini.

Ketika kita ingin menjadi Famous Programmer, programmer yang memang benar-benar mengerti tentang programming, apa yang kita lakukan sekarang sudah mencerminkan apa yang dicita-citakan? Berapa jam waktu yang dihabiskan untuk coding dan membaca buku computer science? Apa yang kita coding sekarang sesuatu yang penting atau yang biasa-biasa saja?

Pada tahun 2008, Malcolm Gladwell, dengan bukunya yang berjudul Outliers, berpendapat untuk menjadi ahli di satu bidang, kita harus berlatih minimal 10000 jam. Dibutuhkan sekitar 4 atau 5 tahun (seperti lamanya kuliah sarjana) jika sungguh-sungguh. Contohnya Beatles yang mengasah musikalitas mereka dengan sering manggung di Hamburg atau Bill Gates yang menghabiskan banyak waktunya ketika SMP dan SMA mengakses komputer di George Washington University.

Namun di sisi lain, Dr Hamming, peraih Turing Award dan penemu Hamming Code–satu generasi dengan Shannon, dalam pidatonya You and Your Research di Bellcore pada tahun 1986, bercerita bahwa banyak teman baiknya di Bell Labs bekerja keras bahkan lebih keras dari dia sendiri, namun, tidak banyak temuan yang bisa ditunjukkan. Menurutnya, berjibaku mencoba menyelesaikan first-class problem jauh lebih bermanfaat ketimbang menyelesaikan masalah yang biasa-biasa saja. Proses dalam pengerjaan first-class problem itu lebih penting ketimbang hasil akhirnya.

Dia juga menyadari perbedaan antara orang yang bekerja dengan pintu tertutup dan pintu terbuka. Bekerja dengan pintu tertutup akan lebih cepat menyelesaikan pekerjaan hari ini dan esok harinya. Lebih produktif dari orang kebanyakan. Akan tetapi, 10 tahun kemudian sebenarnya orang tersebut tidak tahu masalah apa sebenarnya yang layak untuk dipilih dan dikerjakan. Sebaliknya, orang yang bekerja dengan pintu terbuka akan sering mendapatkan banyak interupsi dari teman kerjanya. Namun demikan, terkadang dia akan lebih tahu masalah penting apa saja yang ada di dunia ini.

Selain itu, Hamming berpendapat bahwa “great scientist tolerate ambiguity very well”. Ambigu yang dimaksud adalah untuk tidak sepenuhnya percaya dengan apa yang dikerjakan sehingga cukup bisa menyadari adanya kekurangan untuk menjadikan hasil kerjanya menjadi lebih baik.

Dari dua pendapat di atas, terlihat jelas perbedaan bagaimana menjadi seorang ahli. Galdwell menekankan pada kuantitas. Untuk menjadi programmer jago maka dibutuhkan jam terbang yang tinggi. Namun, Hamming berpendapat kuantitas saja tidak cukup. Kualitas dari apa yang diprogram itu sama pentingnya. Dan jangan cepat berpuas diri.

Kuantitas dan kualitas mesti seimbang. Berkutatlah dengan programming hingga minimal 10.000 jam tapi lakukanlah pada hal-hal yang memang penting.

Misalkan, keinginan menjadi ahli di bidang machine learning. Mengerti kelebihan dan kekurangan dari setiap clustering dan classification algorithm. Akan tetapi, dalam prosesnya malah menghabiskan banyak waktu mempelajari computer network, menulis shell scripting untuk mengatur susunan mp3 di harddisk. Tidak salah memang, tapi tidak tepat dengan apa yang dituju.

Awalnya ketika masih menjadi mahasiswa sarjana, jelas sangat perlu untuk belajar segala hal. Mencoba bahasa pemrograman dengan paradigma yang berbeda– prosedural, berorientasi objek, functional, logic, dan lain-lainnya. Mencoba database SQL ataupun NoSQL. Memahami berbagai macam algoritma dan struktur data dasar. Mencoba meraba-raba sebenarnya mau ke mana melangkah, tapi setelah itu, baik sebagai mahasiswa pascasarjana atau bekerja di perusahaan, sudah saatnya mulai mengerjakan first-class problem.

Berat memang. Perlu determinasi dan konsistensi. Contohnya salah seorang teman yang memulai kuliah master. Profesor meminta para mahasiswa S2-nya untuk memilih satu topik yang berhubungan dengan projek-projek yang ada di Apache Project sebagai penelitian. Ada banyak projek menarik dan menggoda untuk dipilih, tapi akan lebih menarik untuk memilih projek yang memang bermanfaat dan dapat diterapkan di Indonesia.

Setelah didiskusikan (atau dijerumuskan?), jatuhlah pilihan pada Apache Mahout. Scalable Machine Learning. Mengapa Mahout? Sebenarnya bukan Mahout-nya yang menarik tapi kumpulan algoritma di dalamnya termasuk recommender system dan machine learning yang jadi alasan utama.

Di Indonesia, memang siapa yang butuh? Jawaban paling mudahnya adalah para pemilik online shopping. Lihat Amazon. Ketika membuka salah satu produk baju olahraga laki-laki, maka akan ditampilkan pilihan-pilihan baju olahraga laki-laki lainnya dengan melihat selera pembeli lainnya yang sama. Lainnya, berguna juga menampilkan barang-barang seperti apa yang sebaiknya ditawarkan ke pembeli dengan mengenali pola-pola pembelian di masa lalu.

Itu baru sebagian kecil aplikasi nyatanya karena penggunaan machine learning cukup luas, dari biometric, image recognition hingga AI robot. Apa yang ingin disampaikan di sini adalah apa yang dipilih mencoba untuk menjawab permasalahan secara tepat sasaran di Indonesia. Saya pribadi akan memasukkan topik ini ke dalam first-class problem. Dan betul, ini bukan topik yang mudah, semudah membalikkan telapak tangan, tapi butuh determinasi dan konsistensi untuk mempelajarinya. “Semangat, mang!”

Semoga makin banyak programmer di Indonesia yang masuk level Famous Programmer. Bukan cuma sekedar coding atau malah membuat spagheti code (atau versi lokal: indomie-code by adegawa) yang membuat pusing programmer lainnya. Saya pribadi, setelah melihat begitu banyak teman di kampus yang ahli di bidang masing-masing, merasa masih menjadi Average Programmer yang butuh jam terbang lebih banyak.