self-test for the Programmer Competency Matrix by Sijin Joseph

The Programmer Competency Matrix by Sijin Joseph is a table of parameters to test the reward you will get from a programmer vs the effort you'll put in him.

Also is considered to measure whether a programmer is noob, junior, intermediate, or senior, which is a whole subject by itself that i hope to write about next time.

anyway, for the fun and interest, i will test myself, as objective as i can be, (i'll ask some guys @work to correct me and update), so the columns will be subject, my notes, score. 0-3 will be the scores so 0 is total noob, 32 is junior, 64 is intermediate and 96 is senior.

Note that since there is such a huge variety of skill someone that actually scores 96 is like the top of the world senior, and you should thing it more like 0-32,  32-60, 60-75, 75-96, since scoring 32 should be quite fast to any programmer that wants to step up, and anyone that scores 2 in everything is really a junior-senior, and even just a few scores of 3 is a real senior already.

I count on you to go read the table, so.....

skill notes score
Computer Sciencetotal points: 91.5
data structures I can even explain a bit but not in depth 1
algorithms Ye, never did any degree, i can look for the right one and alter it but not explain or write one 0
systems programmingI have some knowledge about compilers, assembly and basic CPU suff0.5
Software Engineeringtotal points: 91.5
source code version controlUsed once a bit SVN and using a bit Git, know merging ect. if TFS1.5
build automationI know technically there is a way to compile C# from CMD, did  some with python, have some automation with PowerShell0
automated testingI think like 1, but act like 00
Programmingtotal points: 4525
problem decompositionI always try to make my code generic and put the base layer in a designated zone for reuse, i would give myself a 3 here but i'll try to be modest.2.5
systems decompositionCurrently (actively) learning to apply design to correspond all relevant technologies/platforms.1.5
communicationWell, this is really the only thing i have a really good feedback except for my lazy emails....2
code organization within a fileUsing regions, code organized, basic commenting, refrences only where critical1.5
code organization across filesI naturally like organizing my files in folders, cant give myself "structure gives insight into design"2
source tree organizationHere i am a bit closed to 3, but still2
code readabilityI am improving, i used to be 0, have some comments about unusual code and bug fixes but mostly for myself1
defensive codingOnly checking arguments and return values, or for exceptions when critical, obvious, or after a bug already occurred1
error handlingMost parts of my projects leaves program in good state, good logging layer1.5
IDEI know the basic tools of VS and my own daily shortcuts1.5
APIThis one is hard since i definitely write many times some code on top or to fill gaps in the API, even in .Net and JQuery and even Angular, yet i still learn stuff everyday2.5
frameworksUsed and using alot, written 2 mini-frameworks used in my company for Sharepoint2.5
requirementsI can more and more able to see the places needed more spec, but still having mid ideas2
scriptingTouching python for fun, knows well Sharepoint Powershell.1
databaseAble to write good selects, knowledge of columns ect, but not to design a DB nor its concepts0.5
Experiencetotal points: 128
languages with professional experienceOOP, prototype (JS), basic SQL, dont know static vs dynamic ect.0.5
platforms with professional experienceC# [console, winforms],, sharepoint, javascript/JQuery, knockout/Angular, i'll count it as 52
years of professional experienceAlthough programming since i was 8, and it shows, also mentored some 7-8 years guys, in industry almost 5 years, i'll give myself and extra half point1.5
domain knowledgeI'm a web-dev, so i always work on and inside a domain2
Knowledgetotal points: 217
tool knowledgeI know to use some text editors for Client-Side files, can use sharepoint-designer1
languages exposed toMy bonus is that i have basic understanding of prototype oriented (JS), and i know some SQL1
codebase knowledgeNot much in C#, bit in, angular, made some bug-fixes on plugins and able to understand their codebase1
knowledge of upcoming technologiesKeep hearing and reading about upcomings, but never even taken betas1
platform internalsBasic knowledge of how my platforms works internally1
booksMaybe its time.....I'm more of a googler-blog-reader0
blogsHere i am trying to step from 2 to 32

Grand Total: 43

HA HA well that's embarrassing, i always though of myself intermediate licking seniority, guess i'm just finished noobinity and learning to be a true and good intermediate, which is good as long as i am improving.

I am taking additional comfort that i past the 50% in the programming area, so there i am licking some seniority, same in Experience, and main pitfalls in in the science-engineering fields, which i never was into.


Popular posts from this blog

OverTheWire[.com] Natas Walkthrough - JUST HINT, NO SPOILERS

SOLVED The item could not be indexed successfully because the item failed in the indexing subsystem

Asp.Net Ending Response options, Response.End() vs CompleteRequest()