Berdasarkan analisa dan pengalaman saya serta setelah membaca beberapa referensi, akhirnya saya memberanikan diri untuk menulis sebuah postingan tentang tingkatan atau level seorang programmer, walaupun sebetulnya saya sendiri masih sangat dangkal tentang dunia programming. Tapi tidak ada salah saya mencoba menulis ini, agar supaya menjadi motivasi khusunya bagi saya sendiri dan teman - teman sekalian.



Baiklah, secara singkat model atau level skill seorang programmer terbagi atas lima level atau tingkatan, diantaranya :


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 , , , save dengan format html, double klik file dan buka dengan browser. Pernah ngalamin ngak ?
Novice programmer ini 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 daripada 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, dia dapat menyelesaikan masalah yang belum pernah dia temui sebelumnya. Ia biasanya lebih banyak 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 sanagat ribet dan 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, dia 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.
Mereka ini para programmer yang mampu memahami konteks dari suatu masalah dan mampu memberikan solusi yang tepat, sesuai dengan konteksnya.
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.”
Ya, intinya seorang Expert ini mampu mengetahui detail mana yang penting dan tidak penting. Apa yang ia sampaikan terkadang tak mampu ia jelaskan kenapa. Ia hanya berkata, “Pengalaman”.

Demikianlah tingkatan atau level skill seorang programmer yang dapat saya bagikan pada postingan kali ini.
Semoga Bermanfaat.
Share on Google Plus

About Unknown

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 komentar:

Posting Komentar