Belajar Pemrograman Dari Buku Atau Kuliah Informatika? #JuliNgeblog Day 10

Pertanyaan yang saya jadikan sebagai judul tulisan ini merupakan perdebatan yang sudah saya ketahui sejak saya duduk di bangku kuliah dan saya yakin sudah ada sejak ada jurusan Informatika belasan tahun sebelumnya. Ini juga sering sekali ditanyakan di forum atau milis pemrograman dan akhirnya ditanyakan ke saya langsung di halaman ask.fm pribadi saya.

kaka petra, gimana tanggapannya tentang: 1) komentar “buat apa kuliah jadi programmer, itu kan bisa belajar sendiri dari buku” dan 2) lulusan if itb yang kerja di posisi yg sama dengan lulusan smk? (no offense ya follower kaka petra, pure curiosity)

Dari pengamatan saya biasanya pertanyaan ini muncul dari rasa ketidak amanan pada kedua belah pihak: pihak non-formal dan pihak formal. Pihak non-formal merasa tidak aman karena merasa takut tidak bisa mengejar ketinggalan atau malah takut gajinya bisa lebih kecil karena tidak memiliki ijazah formal. Pihak formal pun merasa takut ditikung dari belakang atau sekadar ego saja.

Tapi sebelum membaca opini saya di bawah, biarlah saya mengutarakan kesimpulan di muka. Dari mana pun latar belakang Anda, formal ataupun non-formal, yang penting belajarlah dari banyak orang dan tetap berusaha untuk melakukan yang terbaik!

Saya mengenal banyak sekali orang hebat dari kedua sisi. Dari sisi formal saya kenal banyak alumni saya yang sukses. Saya mengenal seorang yang latar belakangnya akuntansi dan kemudian menjadi freelancer tersohor dan akhirnya membuka agency sendiri bahkan meluangkan waktunya untuk mengajar pemrograman ke orang yang tidak mampu membiayai kursus atau kuliah. Saya juga mengagumi teman yang dulu kuliah di farmasi, kemudian menjadi programmer kawakan yang pengetahuannya sangat melebar di banyak bidang.

Kembali ke pertanyaan pertama, untuk apa kuliah jadi programmer, kalau semuanya bisa belajar dari buku? Ini pemahaman yang sangat keliru, paling tidak untuk jurusan Informatika ITB tempat saya dulu menuntut ilmu. Di kuliah dasar pemrograman, hal ini sudah ditekankan oleh Ibu Inggriani Liem, dosen di kuliah tersebut. Bu Inge sering mengatakan kita tidak hanya belajar untuk menulis kode program atau “apa bedanya kalian dengan jurusan XX != IF, mereka juga diajarkan ngoding, kok“.

Bedanya adalah di Informatika, kita dididik menjadi seorang software engineer atau computer scientist, bukan semata orang yang hanya bisa menuliskan kode. Ada banyak sekali aspek yang menentukan seorang engineer dan scientist yang jauh lebih luas dari sekadar kode yang ditulis. Aspek ini membentang mulai dari cara analisa masalah dan penyelesaiannya, pengaplikasian teori-teori dan konsep informasi dan matematika ke dalam penyelesaian masalah, pemodelan dan desain solusi, dan lain-lain (sisanya bisa dibaca di Situs Informatika ITB)

Yang paling menarik adalah di Informatika ITB pun sebenarnya kita tidak diajarkan bahasa pemrograman. Kuliah pertama saya dulu menggunakan bahasa yang bahkan tidak ada compilernya. Istilahnya adalah notasi algoritmik. Mahasiswa diwajibkan untuk belajar bahasa pemrograman seperti Pascal, C, Java secara mandiri di lab. Untungnya saya sebelum masuk kuliah sudah bisa bahasa-bahasa di atas termasuk PHP dan BASIC. PHP masih saya gunakan hingga sekarang termasuk Java, Python, Javascript, dll sementara BASIC sudah tidak pernah terdengar lagi.

Menurut saya aspek yang paling sulit didapat dari belajar sendiri dari buku adalah aspek sosial. Meski terdengar bertentangan dengan intuisi tapi ini natural. Pemrograman sekarang ini adalah kegiatan sosial. Kode yang awalnya ditujukan untuk dimengerti oleh komputer sekarang ditulis dengan tujuan dapat dibaca oleh orang lain. Perangkat lunak yang kita gunakan seperti Linux yang menjalankan ponsel Android ditulis sedikitnya oleh seribu orang lebih.

Di hampir semua mata kuliah Informatika, mahasiswa diwajibkan mempraktekkan pengembangan perangkat lunak dalam tim dalam bentuk tugas-tugas kuliah. Dalam pengerjaan tugas mahasiswa mendapat pengalaman bagaimana berkoordinasi dalam bentuk kode program. Mahasiswa belajar bagaimana membaca spesifikasi yang diberikan oleh dosen dan membagi tugas kepada anggota tim. Kode yang dikumpulkan juga akan dibaca oleh asisten dosen dan keterbacaan ini juga dimasukkan ke dalam kriteria penilaian.

Hal yang membantu juga di kuliah adalah kita lebih mudah untuk berdiskusi dan bertanya. Beberapa teman kuliah saya membuat kelompok belajar yang sering berkumpul untuk membahas materi kuliah (biasanya 20 menit pertama dan kemudian dilanjutkan bergosip selama 4 jam). Pintu ruangan dosen juga selalu terbuka (umumnya kiasan) untuk bertanya. Saya jarang mendengar ada yang melakukan, tetapi kalau ada mahasiswa yang kurang mengerti dan mengirim email untuk bertanya saya yakin dosen pasti dengan senang hati menjawab.

Selain itu aspek sosial yang didapat dari kuliah adalah membangun jaringan yang akan berguna di masa depan. Jaringan kuat antar mahasiswa bisa diolah ketika lulus menjadi jaringan profesional dan akan memberikan hasil beberapa tahun kemudian. Selain itu juga dengan membangun jaringan dosen akan memberikan hasil yang lebih besar dalam waktu yang lebih cepat. Saya sering menyarankan ke mahasiswa untuk banyak-banyak mengenal dosen dan kalau bisa coba ikut membantu proyek-proyek mereka. Selain mendapat uang lebih untuk tambahan jajan, keuntungan lain adalah mendapat ilmu dan wejangan langsung dari dosen yang tidak akan didapat dari kuliah dan ditambah lagi kesempatah terpapar terhadap koneksi ke dunia profesional. Faktanya, posisi saya sekarang dimulai dari sepuluh tahun lalu saat saya mengetuk pintu ruangan Bu Inge dan menanyakan apa yang saya bisa bantu untuk pelatihan Tim Olimpiade Komputer yang dibina oleh beliau.

Dari sekian banyak keuntungan kuliah dibandingkan jalur non-formal, saya yakin banyak dari hal tersebut yang dapat dikejar apalagi dengan bantuan banyaknya sumber informasi. Kuliah di Coursera misalnya. Saya sendiri belajar beberapa hal dari situs ini materi-materi yang tidak sempat saya ambil di bangku kuliah. Ada juga Quora tempat kita bisa bertanya pada ahlinya. Saya sering bertanya di situ untuk hal-hal yang tidak saya mengerti. Di samping itu saya juga terbuka bagi siapa pun yang bertanya lewat email. Saya akan usahakan balas di sela-sela kesibukan.

Untuk aspek sosialnya juga bisa dikejar dengan usaha lebih seperti mulai berkontribusi di proyek-proyek open source. Selain itu juga bisa mulai membangun jaringan dengan menghadiri seminar atau workshop kemudian mengajak kenalan para peserta dan pengajar. Selalu ada cara bagi mereka yang mau berusaha.

Tentunya penjelasan di atas tidak berlaku untuk semua lulusan Informatika. Ada yang kuliahnya rajin dan setelah lulus hasilnya baik. Ada juga yang kuliahnya malas-malasan dan sering bolos dan lulusnya tidak terlalu jelek (saya misalnya, hehe). Tidak jarang ada yang kuliahnya juga baik tapi akhirnya banting haluan karena tidak merasa memiliki passion. Ada juga beberapa lulusan yang pada saat kuliah begitu-begitu saja, dan sekarang juga begitu-begitu saja.

Lalu mengenai pertanyaan tentang bagaimana kalau lulusan Informatika ITB ditempatkan pada posisi yang sama dengan lulusan SMK. Saya rasa tidak masalah. Mungkin perusahaan yang bersangkutan sudah memiliki pertimbangan, misalnya lulusan SMK tersebut sudah memiliki portofolio yang sangat panjang.

Perbedaan mendasar antara lulusan SMK Informatika dan Sarjana Informatika terletak pada tujuannya. Lulusan SMK Informatika dididik untuk siap kerja; silabus dan mata pelajarannya lebih banyak berfokus pada hal-hal praktikal dan (harusnya) banyak paparan ke industri. Lulusan Sarjana Informatika (ITB) dididik untuk memecahkan masalah; isi kuliahnya lebih diberatkan ke dalam hal-hal seperti konsep, teori, dan abstraksi. Banyak sarjana yang awalnya lambat untuk beradaptasi dengan industri tapi setelah sekian lama langsung melejit.

Dan banyak juga yang akhirnya jatuh biasanya karena ego. Ego adalah penyakit kebanyakan lulusan ITB (sejujurnya saya hingga sekarang kadang-kadang dikuasai oleh ego). Ketika ada hal yang tidak sesuai dengan mereka inginkan, orang yang dikuasai ego akan menyalahkan keadaan atau orang lain. Tetapi kalau semua sejalan dengan yang mereka inginkan, mereka merasa itu semua adalah kontribusi dari mereka.

Daripada mempermasalahkan posisi yang sama, jadikan itu sebagai sarana untuk berkolaborasi. Saya rasa baik yang lulusan sarjana dan kejuruan bisa saling belajar satu sama lain. Kesampingkan rasa ego untuk kepentingan organisasi niscaya akan memberi keuntungan bagi semua orang.

Yang terpenting adalah berusaha untuk menghasilkan yang terbaik. Ketika diberi tugas oleh manajer atau atasan, tanyakan apa tujuan yang ingin dicapai dari tugas tersebut. Setiap selesai mengerjakan tugas, coba tinjau ulang kira-kira kalau diberi tugas yang sama lagi apa yang bisa ditingkatkan. Apa kah algoritmanya bisa dioptimasi, proses pengerjaannya bisa diperbaiki, apakah biayanya bisa ditekan, atau adakah bagian yang bisa diotomatisasi? Dan jangan lupa untuk meminta pendapat dan peninjauan ulang dari manajer atau atasan. Ingat, mereka bukan cenayang yang bisa membaca pikiran. Kalau ada ide atau komplain harus sering disampaikan jangan tunggu penilaian kinerja tahunan. Seperti yang saya tulis di awal, proses pengembangan perangkat lunak adalah proses sosial, butuh komunikasi.

Demikian opini dari saya yang penuh anekdot pribadi. Intinya menurut pendapat saya pertanyaan-pertanyaan di atas tidak perlu terlalu diperdebatkan karena menghabiskan waktu dan tidak ada tujuan jelasnya. Cobalah berkenalan dengan banyak orang dari banyak latar belakang dan belajar dari mereka semua. Dan di atas semua itu lakukan yang terbaik.

Leave a Reply