Perlukah kuliah untuk bisa memprogram?

Perlukah “kuliah” (mengambil pendidikan formal di universitas) untuk bisa memprogram?. Jawaban singkatnya: perlu jika Anda ingin menjadi programmer yang baik (kecuali Anda orang jenius yang rajin belajar).

Sebelum memulai argumen saya, saya perlu memberitahu bahwa perbedaan antara programmer yang baik dan programmer yang buruk sangat besar. Dalam suatu riset yang membandingkan programmer terbaik dan programmer terburuk dalam suatu perusahaan, programmer yang terbaik dibanding programmer terburuk dapat membuat program 20 kali lebih cepat, dapat mendebug 25 kali lebih cepat, membuat program yang 5 kali lebih kecil yang berjalan 10 kali lebih cepat (buku Code Complete halaman 548).

Ketika kakek saya membuat rumah, dia tidak membutuhkan arsitek. Ketika bapak saya membuat rumah kami yang pertama, dia juga tidak membutuhkan arsitek. Bagi yang berpikiran sangat sempit, mungkin dia akan segera berpikir: sekolah arsitek itu tidak perlu, anak STM saja sudah cukup. Beberapa tukang bangunan yang cuma lulusan SD pun bisa membangun rumah sederhana di perkampungan.

Coba lihat berapa jumlah rumah di Indonesia yang dibangun tanpa arsitek. Sebagian juga berpikir arsitek itu tidak perlu, mereka bahkan tidak tahu harga pasir termurah di desa ini di mana. Anda yang berpikiran waras tentunya akan segera melihat, bahwa membuat gedung tinggi, apalagi pencakar langit, tidak bisa dilakukan orang yang tidak memiliki pendidikan arsitektur.

Membuat program komputer sederhana, dan aplikasi bisnis untuk sebuah perusahaan kecil bisa dilakukan tanpa perlu kuliah. Kebanyakan aplikasi bisnis hanyalah menerjemahkan ke logika bisnis ke dalam program sederhana yang sudah difasilitasi dengan aneka library. Tapi jika Anda berpikir membuat aplikasi bisnis yang besar hanya sekedar membuat form dan report Anda salah besar. Bagaimana Anda bisa membuat sistem yang bisa menangani ratusan ribu transaksi per detik?

Lanjutkan membaca Perlukah kuliah untuk bisa memprogram?

Cinta

Menurut Kamus besar Bahasa Indonesia (KBBI):

cin·ta a 1 suka sekali; sayang benar 2 kasih sekali; terpikat

Cinta pertama saya adalah pada programming. Sebelum saya jatuh cinta pada seorang gadis, saya sudah lebih dulu jatuh cinta pada programming. Mungkin sebagian akan berpikir bahwa cinta pada programming adalah hal yang aneh, tapi banyak orang di dunia ini yang sangat cinta pada bidangnya. Kadang sulit mengerti kecintaan seseorang pada sesuatu jika Anda belum melihatnya sendiri. Saya mungkin tidak akan bisa mengerti mengapa Paul Erdős sangat menyukai matematika (The Man Who Loved Only Numbers) jika saya tidak bekerja dengan seorang professor matematika yang sangat menyukai bidangnya.

Saya suka memprogram, karena dalam banyak hal itu lebih mudah dilakukan daripada keahlian lain. Belajar piano butuh waktu bertahun-tahun, tapi memprogram midi synthetizer tidak butuh waktu lama. Belajar kode morse akan butuh beberapa minggu, tapi membuat program untuk menerjemahkan kode morse dapat dilakukan dalam waktu singkat. Membuat jam mekanik akan butuh waktu lama, tapi membuat jam digital di layar komputer hanya butuh waktu yang sangat singkat.

Memprogram merupakan gabungan dari science (karena kita harus memahami algoritma), engineering (terutama ketika membuat program yang besar), dan seni. Membuat program bisa disamakan dengan banyak hal. Membuat program itu seperti menghasilkan suatu karya seni, seperti membuat lukisan atau puisi, atau lagu. Memprogram itu seperti merancang sebuah gedung, atau pesawat. Membuat program itu seperti menyelesaikan sebuah teka-teki, seperti menyelesaikan sudoku, mengisi teka teki silang, atau menyelesaikan rubik. Memprogram merupakan gabungan dari semuanya itu.

Memprogram juga tidak butuh biaya besar. Komputer bisa didapatkan dengan biaya yang sangat murah. Meskipun komputer bisa membantu untuk memprogram,  tidak dibutuhkan komputer untuk mulai memprogram. Saya belajar assembly di atas kertas dengan tutorial dari sebuah tabloid ketika saya masih di bangku sekolah menengah. Ketika saya mengambil  pelajaran pemrograman di ITB,  para mahasiswa diharapkan dapat memprogram di atas kertas. Ujian pemrograman pun memakai kertas (selain ujian praktik di lab).

Sebuah program bisa berguna bagi banyak orang. Sebuah program bisa menghasilkan uang. Sebuah program juga bisa merusak komputer, atau melakukan hal apapun yang kita inginkan. Dalam level tertentu, memprogram itu seperti bermain tuhan. Memprogram juga akan membuat kita tertarik pada banyak hal (misalnya aneka pertanyaan filosofis mengenai determinisme, aneka pembuktian matematis, dll).

Jika Anda juga memiliki kecintaan yang sama terhadap programming, Anda bisa menuliskannya di komentar. Jika Anda tertarik untuk menulis banyak mengenai programming, Anda juga bisa meminta dibuatkan domain namaanda.cintaprogramming.com (misalnya http://yohanes.cintaprogramming.com).