Tingkatan atau level seorang programmer bisa dilihat dari skill yang dia miliki dalam menyelesaikan masalah pemrogramannya. Berikut ini, CodePolitan akan membahas tingkatan seorang programmer berdasarkan skill levelnya mengikuti Model Dreyfus. Model Dreyfus adalah model yang digunakan untuk mengelompokan level seseorang berdasarkan bagaimana ia mendapatkan skill kemahirannya melalui instruksi formal ataupun praktis. Pada model ini tingkatan atau skill seseorang dikelompokan menjadi 5, yaitu: Novice, Advance Beginner, Competent, Proficient, dan Expert.
Dalam penerapannya kepada tingkatan seorang programmer berdasarkan skill-nya, maka bisa dijelaskan sebagai berikut:
1. Novice Programmer
Novice adalah tingkatan paling rendah programmer dalam skill-nya. Ini bisa dibilang merupakan level pemula. Yang masuk level ini adalah mereka yang baru mengenal pemrograman, masih bingung tentang pemrograman itu sendiri dan bagaimana cara memulainya.
Programmer yang skill-nya masih ada di level ini biasanya membutuhkan panduan secara mendetail jika mempelajari sesuatu atau mengikuti tutorial. Misalnya cara menulis kode PHP, harus dijelaskan tentang bagaimana menginstal web server terlebih dahulu, kemudian menggunakan code editor apa, dan bagaiamana cara menyimpan kode program. Biasanya pada tingkatan ini, programmer masih sangat kaku terhadap konteks. Dia bisa saja menyelesaikan satu program sederhana dengan mengikuti tutorial, tapi akan kesulitan jika harus memodifikasi program tersebut.
Saya rasa semua programmer pasti pernah berada di level ini, ya karena semua pasti butuh proses. Nggak ada ceritanya seseorang programmer langsung jago coding.
2. Advance Beginner Programmer
Tingkatan selanjutnya adalah Advance Beginner Programmer. Programmer yang berada di level ini sudah memiliki skill yang lebih tinggi dari pada Novice Programmer. Karena sudah lebih banyak belajar, programmer di tingkatan ini biasanya sudah mengerti tentang programming dan apa yang ia lakukan dengan programming itu sendiri. Selain itu, programmer di level ini sudah tidak terlalu kaku dengan konteks lagi, jika dia mempelajari sesuatu, dia bisa memodifikasinya sesuai dengan kebutuhannya. Misalnya dia mempelajari panduan untuk membuat sebuah aplikasi perpustakaan, dia sudah bisa menyesuaikan mana yang dia butuhkan dan mana yang ia tidak dia butuhkan dari panduan tersebut.
Hanya saja, kelemahan dari programmer di level Advance Beginner ini adalah mereka tidak terlalu memahami konsep secara keseluruhan. Ketika mempelajari sebuah framework atau tools, dia hanya mempelajari apa yang dia butuhkan saja, dia tidak mengerti bagaimana framework atau tools itu bekerja. Orientasi utamanya adalah menyelesaikan masalah yang ia hadapai, jika beberapa fungsi saja sudah cukup untuk menyelesaikan masalahnya, maka dia hanya akan tahu tentang fungsi-fungsi tersebut saja. Dia tidak terlalu tertarik untuk memahami big picture bagaimana framework atau tools itu bekerja.
3. Competent Programmer
Level yang lebih tinggi selanjutnya adalah Competent Programmer. Seorang yang berada di tingkatan ini biasanya sudah memiliki pengalaman yang lumayan. Ciri utamanya adalah dia telah mampu melakukan troubleshooting. Ia mampu menyelesaikan masalah yang bahkan belum ia temui sebelumnya dari bekal pengalaman per-codingan-nya selama ini. Dalam belajar, programmer di level ini sudah bisa mandiri dan mengeksplorasi sendiri. Kekuatan utamanya adalah pengalaman.
4. Proficient Programmer
Naik level lagi. Level ini adalah level yang semakin master, yaitu Proficient Programmer. Seorang programmer yang sudah sampai pada tingkatan ini biasanya sudah cenderung melihat sesuatu secara keseluruhan. Tidak lagi hanya mempelajari dan menerapkan satu fungsi saja asalkan masalahnya terselesaikan, tetapi benar-benar ingin mengetahui bagaimana sesuatu itu berjalan.
Karena pengetahuannya yang menyeluruh terhadap sesuatu terkadang dia bahkan mampu memberitahukan dimana letak kesalahan sebuah kode, bahkan tanpa menjalankan kode tersebut.
5. Expert Programmer
Tingkatan paling tinggi seorang programmer dilihat dari skill-nya adalah seorang expert. Dari merekalah muncul karya-karya luar biasa. Mereka tidak hanya mempelajari sebuah konsep secara keseluruhan dari sebuah tools, mereka malahan menciptakan tools. Mereka membuat bahasa pemrograman, mereka membuat library, mereka membuat framework, membuat IDE, mereka membuat konsep-konsep baru yang bermanfaat untuk pemrograman, mereka membuat buku. Dari merekalah kita belajar banyak hal.
Semua level di atas selalu bertahap. Sebelum menjadi seorang expert, pasti mengalami menjadi proficient. Pun demikian sebelum di sampe situ kita juga pasti pernah menjadi seorang pemula (Novice). Memang begitu prosesnya. Tidak ada yang instan. Tapi mudah-mudahan dari apa yang saya sampaikan di atas, kita bisa tahu dimana posisi kita saat ini, apakah kita ada di level Expert, Proficient, Competent, Advance atau baru ada di tingkatan Novice. Jika kita telah tahu posisi kita, maka selanjutnya kita bisa belajar lebih banyak lagi sehingga skill kita terus meningkat. Seandainya di Indonesia semakin banyak Expert Programmer, sepertinya akan menarik :D
Sumber https://www.codepolitan.com/tingkatan-seorang-programmer-berdasarkan-skill-level