Pernahkah anda punya rekan yang bisa pemrograman komputer tapi tidak berlatar belakang informatika/sejenisnya? Saya punya. Mulai dari programmer yang copy paste source code sampai dengan yang mampu bikin class sendiri juga ada. Disisi lain saya juga memiliki teman dengan latar belakang informatika namun kemampuan codingnya sama seperti rekan saya yang otodidak, bahkan ada yang mengaku lulusan informatika namun tidak mampu melakukan coding program.
Saya punya teman, pintar, logic programmingnya oke, menguasai lebih dari satu bahasa pemrograman selain itu proses codingnya juga cepat. Kalo disuruh misalnya “Gue butuh program bla.. bla.. bla.., elo bisa buat?” dia langsung jawab “Bisa!”. Tapi, giliran disuruh bikin ER Diagram ataupun DFD dia bingung harus mulai darimana.
Lalu timbul pertanyaan saya, kenapa masih ada lulusan informatika bisa dikalahkan oleh orang-orang otodidak dalam pemrograman? sebegitu mudahkah menjadi seorang programmer? apakah hanya dengan mengetahui logika pemrograman dan syntax-nya maka sudah menjadi seorang programmer? Lalu apa yang membedakan programmer lulusan teknik informatika dan yang otodidak?
Berdasarkan pengalaman saya bertemu dengan programmer otodidak, hampir sebagian besar mengerti pemrograman namun tidak diawali dengan belajar teori-teori dasar pemrograman. Biasanya hal itu akan dipelajari sambil berjalan seiring dengan mencoba beberapa baris kode. Sedangkan dalam dunia pendidikan, AFAIK, sebelum coding diharuskan mengerti terlebih dahulu teori-teori dasar seperti misalnya DFD, ER Diagram, bit, Byte dan lain sebagainya, baru nanti akan melangkah ke pemrogramannya.
Jika anda programmer terlepas apapun latar belakangnya tentu pernah mengalami hal-hal seperti dibawah ini :
- Penggunaan beberapa fungsi-fungsi sejenis yang terkadang membingungkan dalam penggunaannya. Seperti misalnya kapan harus menggunakan str_replace dan kapan menggunakan ereg_replace atau kenapa harus strstr daripada preg_match() dalam PHP?
- Jika berhubungan dengan field-field database pernahkah penentuan type field berdasarkan alasan yang jelas? Seperti misalnya kenapa harus bigint daripada int atau langsung comot yang paling besar? *mysql style*
- Kenapa harus ADO daripada DAO untuk melakukan koneksi ke database *Lha, masih pake VB 6.0
Jujur, untuk hal-hal seperti itu kadang saya harus buka buku lagi, ya maklumlah namanya juga programmer pemula dan otodidak pula.
Berkaca dari contoh kasus diatas, lalu apa yang seharusnya membedakan antara programmer otodidak dan programmer berlatar belakang informatika?
Menurut saya yang memiliki latar belakang informatika harus bisa mengungguli yang otodidak dengan menguasai teori-teori dasar ini. Kemampuan seperti menyusun ER Diagram, DFD, bit, Byte, alokasi memori dan hal-hal lainnya harus bisa dikuasai oleh yang berlatar belakang informatika. Bahkan akan lebih bagus jika programmer berlatar belakang informatika mampu menguasai itu semua namun dapat menjelaskannya dengan bahasa yang mudah dimengerti oleh orang lain. Bukan tidak mungkin programmer otodidak akan mempelajari hal seperti itu mengingat resources pemrograman sangat banyak beredar di internet. Ini tantangan yang akan dialami oleh lulusan informatika khususnya para programmer.