Self evaluation

Ok, I’ve recently come across this Programmer Competency Matrix so I’m going to rate myself today, and it’ll be interesting to come back and compare at a later date.

data structuresBetween level 1 and 2
algorithmsLevel 1
systems programmingBetween level 1 and 2
source code version controlLevel 3
build automationLevel 3
automated testingLevel 1, quickly on the way to level 2
problem decompositionBetween level 2 and 3
systems decompositionLevel 3
communicationLevel 3
code organization within a fileLevel 3
code organization across filesLevel 3
source tree organizationBetween level 2 and 3
code readabilityLevel 2, and I think I need to seriously be more disciplined here
defensive codingThis one varies wildly from project to project depending on the scope and risk
error handlingMostly level 2, level 3 where it really counts I think
IDELevel 3 I guess, I like simple tools I can master
APIWell, this depends on which system I'm using right now! But in general I'm probably a level 1 for my most often used platforms, and I'm looking forward to going deeper in some specific areas
frameworksIf this is talking about incorporating third party libraries, then level 2
requirementsI think level 3
scriptingJust scraping into level 3
databaseLevel 3 for sure
languages with professional experienceProbably only level 1
platforms with professional experienceI think level 2
years of professional experienceLevel 3
domain knowledgeThis can only be evaluated for a specific project
tool knowledgeI guess level 2, maybe 3
languages exposed toAh, here maybe level 2
codebase knowledgeAgain, project specific, but I have certainly got up to speed on existing codebases pretty quickly several times
knowledge of upcoming technologiesThese days I'm more at level 1 or 2
platform internalsGenerally I think level 2
booksQuickly getting to level 2
blogsI think level 3, what do you think?

So that’s me at this point in time, and thanks to Graham Lee for linking to the matrix which prompted me to do so as well.