1. Novice Programmer
Programmer jenis ini adalah tipe programmer yang sangat pemula.
Sebenarnya ketika kita mempelajari sebuah bahasa pemrograman yang baru,
kita selalu melalui tahap ini. Ciri dari programmer jenis ini adalah dia
membutuhkan penjelasan mendetail (bahkan sangat mendetail) mengenai
sebuah konsep dan tidak ingin terikat dengan konteks.
Artikel yang dia sukai itu yang penjelasannya mendetail. Misalnya
cara membuat membuat halaman web yang dijelaskan pertahap dari buka
notepad, isi tag <html>, <head>, <body>, save dengan
format html, double klik file dan buka dengan browser. Pernah ngalamin
ngga?
Novice programmer juga tidak ingin terikat dengan konteks. Contohnya
dia bisa membuat halaman html berdasarkan petunjuk yang telah ada,
tetapi jika halaman html ini harus dirubah (misal membuat tampilannya
berubah) tapi tidak terdapat di manual, maka ia akan kebingungan.
Biasanya seorang Novice Programmer tidak tertarik untuk belajar lebih
dalam, ia hanya ingin menyelesaikan problem yang ia hadapi dan segera
mendapatkan solusinya. Pokoknya masalahnya selesai, bagaimanapun caranya. Kira-kira seperti itu yang ada di pikirannya.
2. Advance Beginner Programmer
Programmer jenis ini agak lebih mahir dari pada tipe novice
programmer. Ciri yang paling mencolok dari advance programmer adalah
paham bagaimana sebuah tools (bahasa pemrograman, framework, API)
berjalan. Namun, ia tidak memahami big picture dari konsepnya.
Dia juga termasuk programmer yang menyukai ‘solusi cepat dan singkat’.
Pernah ngga temen-temen ngalamin ketika mempelajarai suatu API
(Application Programming Interface) dan dengan terburu-buru mencari
fungsi yang diinginkan tanpa memahami secara keseluruhan bagaiaman API
tersebut bekerja? Pernah kan? Kalau saya sih pernah ngalamin..
Kelebihan dari Advance Beginner Programmer dibanding Novice
Programmer adalah ia mampu menerapkan pemahaman yang ia miliki ke dalam
konteks yang sedang dikerjakan. Misalnya, ia bisa menyesuaikan tutorial
pembuatan aplikasi perpustakaan menggunakan java dan memodifikasi
sintaxnya agar sesuai dengan kebutuhannya.
Salah satu kelemahan yang mencolok dari Advance Beginner Programmer
adalah ia tidak mau atau belum siap mempelajari keseluruhan dari suatu
konsep. Misalnya dalam mempelajari sebuah framework, ia hanya mau
mempelajari fungsi-fungsi di dalam framework tersebut tanpa mau
mempelajari bagaiman framework tersebut bisa berjalan.
3. Competent Programmer
Programmer jenis ini memiliki ciri utama dapat melakukan troubleshooting. Maksdunya, ia dapat menyelesaikan masalah yang belum pernah ia temui sebelumnya menggunakan pengalaman yang ia miliki.
Competent Programmer juga mampu menerima saran dari seorang Expert
Programmer dengan tepat dan mampu mengaplikasinya sesuai dengan saran
dari Expert Programmer tesrsebut.
Hasil pekerjaan seorang Competent Programmer biasanya tergantung dari
jumlah pekerjaan dan pengalaman ia mengerjakan project. Semakin banyak
masalah yang telah ia pecahkan, makin cepat pula kerjanya.
Kelebihan lain dari Competent Programmer adalah ia mampu menjelaskan
kepada seorang Novice Programmer. Dimana bila seorang Expert langsung
menjelaskan ke Novice, maka si Novice kebingungan sakin tingginya ilmu
si Expert ini.
4. Proficient Programmer
Programmer jenis ini membutuhkan Big Picture. Mereka
inilah tipe orang yang tidak suka dengan tutorial yang bertele-tele.
Kalau memahami sebuah framework, mereka tidak cukup dengan melihat
fungsinya saja, tapi harus memahami bagaimana framework tersebut dapat
bekerja.
Kelebihan lain dari Proficient Programmer adalah mereka mampu belajar
tanpa mempraktekan secara langsung. Contohnya, ia dapat memahami
bagaimana cara kerja suatu framework hanya dengan membaca bagaimana
orang lain menyelesaikan project dengan menggunakan framework tersebut.
Temen-temen pernah nanya di forum ngga? Ngeh ngga, kalau ada orang
yang jawab, biasanya dia nanya kita sudah melakukan apa aja, codingnya
gimana, output yang diharapkan gimana, dan tiba-tiba dia tahu jawabannya
(padahal dia ngga nyoba sintax kita di laptopnya) ? Nah, dia itu
seorang Proficient Programmer.
Ciri lain dari seorang Proficient Programmer adalah ketika dia
melakukan test sebuah program. Ketika seorang Novice bertanya kenapa
saya melakukan tes ini? apa saja tes yang harus dilakukan? Fungsi mana
saja yang harus di tes? dan sebagainya. Sebaliknya, seorang Proficient
Programmer mengetahui dengan tepat bagian mana saja yang mungkin akan break jika dites dan melakuan tes pada bagian tersebut.
5. Expert Programmer
Oke, sampai di bagian akhir ni, Expert Programmer. Siapa mereka?
Mereka ini orang –orang yang senantiasa membagikan ilmunya kepada
kita. Merekalah orang-orang yang menulis buku, menulis artikel, membuat
bahasa pemrograman, membuat framework, membuat IDE, dan membuat orang
lain paham tentang konsep baru.
Yang menarik dari seorang Expert adalah ia mampu memberkan solusi dari suatu masalah hanya berdasarkan intuisi.
Contohnya, dari ratusan baris kode program dan puluhan fungsi
didalamnya, kemudian ketika dijalankan terdapat error pada program, Ia
dapat mengatakan, “Kayaknya di fungsi itu ada yang deh.”
EmoticonEmoticon