Programmer Competency Matri..
Programmer Competency Matri..
net/programmer-competency-matrix/
Computer Science
1 of 3 2009/11/12 21:29
Programmer Competency Matrix | IndianGeek http://www.indiangeek.net/programmer-competency-matrix/
Good names for files, variables classes, No long functions, comments explaining unusual Code assumptions are verified using asserts, code flows
code readability Mono-syllable names
methods etc. code, bug fixes, code assumptions naturally – no deep nesting of conditionals or methods
Doesn’t understand the Checks all arguments and asserts Makes sure to check return values and check for Has his own library to help with defensive coding, writes
defensive coding
concept critical assumptions in code exceptions around code that can fail. unit tests that simulate faults
2 of 3 2009/11/12 21:29
Programmer Competency Matrix | IndianGeek http://www.indiangeek.net/programmer-competency-matrix/
years of
professional 1 2-5 6-9 10+
experience
Domain expert. Has designed and implemented several
domain No knowledge of the Has worked on at least one product in Has worked on multiple products in the same
products/solutions in the domain. Well versed with
knowledge domain the domain. domain.
standard terms, protocols used in the domain.
Knowledge
n 2 n (Level 2) log(n) (Level 3) Comments
2 (Level 0) n (Level 1)
Good knowledge of editors, debuggers, IDEs, open
Limited to primary IDE Knows about some alternatives to source alternatives etc. etc. For e.g. someone who Has actually written tools and scripts, added bonus if
tool knowledge
(VS.Net, Eclipse etc.) popular and standard tools. knows most of the tools from Scott Hanselman’s they’ve been published.
power tools list. Has used ORM tools.
Imperative, Object-Oriented and
declarative (SQL), added bonus if they
languages Imperative or Object Functional, added bonus if they understand lazy
understand static vs dynamic typing, Concurrent (Erlang, Oz) and Logic (Prolog)
exposed to Oriented evaluation, currying, continuations
weak vs strong typing and static
inferred types
Good working knowledge of code base, has Has implemented multiple big features in the codebase
codebase Has never looked at the Basic knowledge of the code layout
implemented several bug fixes and maybe some and can easily visualize the changes required for most
knowledge codebase and how to build the system
small features. features or bug fixes.
knowledge of Has played with the previews and has actually built
Has not heard of the Has heard of upcoming technologies in Has downloaded the alpha preview/CTP/beta and
upcoming something with it and as a bonus shared that with
upcoming technologies the field read some articles/manuals
technologies everyone else
3 of 3 2009/11/12 21:29