11/21/2016

Ini yang Membedakan Level Seorang Programmer, Kamu termasuk yang mana?

Sebelumnya saya sudah posting tentang pemrograman php yaitu tentang "filter dan sensor kata di String menggunakan regex php" dan tips tentang "hal-hal yang menghambat kesuksesan dalam berkarir", kali ini masih berhubungan dengan pemrograman, tepatnya sih akan lebih menjelaskan aktor dibalik pembuatan kode program alias si "Programmer"-nya.

Ini yang Membedakan Level Seorang Programmer, Kamu termasuk yang mana?
Tahukan anda, jika dalam membuat kode "sang dewa" a.k.a programmernya itu ternyata dapat dikelompokkan berdasarkan tingkat kepiawaiannya dalam bermain dengan sintaks-sintaks yang 'njelimet' (what is the 'njelimet'?). level-level atau tingkatan ini dibagi menjadi 5 level yaitu Novice, Advance Beginner, Competent, Proficient, dan Expert. So, how to explanation the skill of a programmer? cekidot :
  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 dan tak jarang disebut terlalu kepo) 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 click file dan buka dengan browser. level ini saya rasa memang hampir semuanya mengalami fase ini.

    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 di modif sedikit) tapi tidak terdapat di manual, maka ia akan kebingungan. (keringat dingin susah pasti keluar)

    Biasanya seorang Novice Programmer tidak tertarik untuk belajar lebih dalam, ia hanya ingin menyelesaikan problem yang ia hadapi dan segera mendapatkan solusinya. Sing penting 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’. maksudnya ketika mempelajarai suatu API (Application Programming Interface) dan dengan terburu-buru mencari fungsi yang diinginkan tanpa memahami secara keseluruhan bagaiaman API tersebut bekerja, langsung comot dan running. 

    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 sintaksnya 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.

    contoh, jika anda seseorang yang sering "nongkrong" di forum-forum diskusi pemrograman pasti pernah nemuin orang yang jika ada member bertanya suatu permasalahan, biasanya dia nanya kita sudah melakukan apa aja, kode nya gimana, output yang diharapkan gimana, dan 'ujug-ujug' dia tahu jawabannya padahal dia gak nyoba sintaks kita di laptopnya (mungkin punya semacam penerawangan) Nah, dialah yang disebut 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 
    Kalau udah denger 'Expert' udah jangan dibayangkan lagi ilmu nya se-gimana. Asal kalian tahu, 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 Programmer ini mampu mengetahui detail mana yang penting dan tidak penting. Apa yang ia sampaikan terkadang tak mampu ia jelaskan kenapa. Ia hanya berkata, “Pengalaman..”
Sekian, semoga artikel ini dapat bermanfaat dan menjadi inspirasi dan memotivasi kalian semua. jangan lupa sharenya , hehe..

sumber : computerscience

Mulai menulis blog sejak tahun 2012. Saat ini sedang disibukkan dengan karir dibidang IT nya.

Komentar yang mengandung spam / link aktif akan secara otomatis disembunyikan. Mohon maaf atas ketidaknyamanan jika pertanyaan telat ataupun tidak terbalas karena keterbatasannya waktu. Silahkan hubungi kami di menu Contact Us. Terimakasih
EmoticonEmoticon