Programmer Berdasarkan LEVEL-nya

Sebagai programmer kita harus tahu pada posisi mana kita sekarang sehingga kita bisa merencanakan arah pengembangan skill yang kita miliki. Berikut ini matriks sederhana untuk membantu kita menentukan tingkat skill programming kita, sekaligus membantu menentukan skill apa saja yang diperlukan untuk naik level…

Cheers…..

Tema Level-0 Level-1 Level-2 Level-3
struktur data tidak tahu perbedaan antara Array dan LinkedList mampu menjelaskan dan menggunakan Array dan LinkedList tahu keuntungan dan kerugian Array vs LinkedList. mampu menjelaskan hashtable dapat digunakan untuk menangani collision dan priority queue, serta tahu cara penerapannya tahu tentang struktur data dewa seperti B-Tree, Binomial Heap, Fibonaci Heap, Splay Tree, Skip List, dll
algoritma tidak bisa menemukan rata-rata angka dalam Array (serius… ane pernah interview orang macem ini) mengetahui algoritma sorting, searching, traversal dan retrieval struktur data tahu tentang Tree, Graph, algoritma Greedy, dan algoritma Devide-And-Conquer sederhana. serta mampu memahami isi posting ini 😀 memahami dan mampu membuat pemrograman dinamis. memiliki pemahaman yang baik tetang graph, komputasi numerik, NP problems, dll
dekomposisi masalah straight-line coding dengan banyak sekali coding copy-paste mampu memecah masalah menjadi beberapa fungsi atau prosedur mampu membuat fungsi, prosedur, atau class yang dapat digunakan kembali (reusable) untuk memecahkan masalah secara keseluruhan menggunakan struktur data dan algoritma yang tepat dan mampu membuat coding generic (object oriented) untuk merangkum aspek-aspek dari masalah yang dinamis, misalkan dependency injection
komunikasi tidak mampu mengekspresikan (menyampaikan) ide dan pikiran ke rekan kerja, miskin tata bahasa rekan kerja dapat memahami apa dikatakan, walau mungkin banyak juga yang gak bisa dimengerti. tata bahasa sedikit lebih baik mampu berkomunikasi secara efektif dengan rekan kerja mampu memahami dan mengkomunikasikan pikiran, desain, ide dan spesifikasi secara jelas dan sesuai dengan konteks
organisasi file tidak ada organisasi file, semuanya tumplek bleg dalam 1 (satu) file file-file terkait diletakkan dalam satu folder yang sama setiap file fisik mempunyai tujuan yang unik dan jelas. misalkan satu file untuk definisi class, file lain untuk definisi view, dll organisasi code, folder dan penentuan nama file memudahkan kita melihat desain aplikasi bersangkutan
kemudahan membaca kodingan variable gaje dengan suku kata tunggal, misalnya $a, $b, $px nama yang lebih manusiawi untuk file, class, variable, method, dll tidak ada lagi fungsi yang panjang. ada komentar tentang asumsi koding, ada komentar untuk menjelaskan koding yang kreatif, serta ada perbaikan bug asumsi coding diverifikasikan menggunakan fungsi asserts, kode mengalir secara alami, dan tidak ada deep nesting untuk conditionals dan methods
database berpikir bahwa Mikocok Excel adalah database tahu (sekedar tahu saja) konsep basisdata, normalisasi, dan transaksi. serta bisa menulis SQL stetement sederhana. pernah dengar istilah nosql mampu merancang skema database yang baik dan ternormalisasi, mahir dalam penggunaan views, stored prosedur, trigger. tahu perbedaan index cluster dan non-cluster.

tahu perbedaan serta rdbms dan nosql serta keuntungan dan kerugiannya.

dapat melakukan administrasi database dasar, optimasi kinerja database, optimasi index, mahir menggunakan SQL dan cursor. memahami database mirroring dan replication serta implementasinya

Mahu kapan sebaiknya menggunakan rdbms dan kapan sebaiknya menggunakan nosql, serta mampu membuat solusi yang menggabungkan keunggulan rdbms dan nosql. Mampu mengunakan MapReduce untuk query ke database nosql

bahasa pemrograman Hanya menguasai salah satu pemrograman Imperatif (Prosedural) atau Object Oriented Menguasai penrograman Imperative, Object-Oriented dan declarative (SQL). Nilai tambah bagi yang memahami perbedaan static vs dynamic typing, perbedaan weak vs strong typing and penggunaan static inferred types. Menguasai pemrograman Functional (misalnya Lisp, Scheme, F#, OCaml atau Haskell), Nilai tambah bagi yang memahami lazy evaluation, currying, continuations Menguasai pemrograman Concurrent (Erlang, Oz) and Logic (Prolog)

disarikan dari http://www.starling-software.com/employment/programmer-competency-matrix.html

dicopas dari http://pojokprogrammer.net/content/programmer-berdasarkan-level-nya

Tinggalkan komentar