Programmer Competency Matrix

Having worked with programmers with an extreme variance in skills, I sometimes get the feeling that there is an big lack of good programmers but when I thought about it a little more I realized that it's not very clear cut, some of the programmers have strong areas and if you confine the tasks into their strong areas then they tend to deliver well. So I started thinking about all the lines on which we can evaluate a programmer, here's what I have so far...

Programmer Competency Matrix (the table is too big to fit on this blog post and needs a whole page of it's own)

After having spent a whole afternoon on this I realize that even this is not comprehensive, this matrix is more biased towards non-visual programmers, so a big majority of web devs will not be able to relate well to this matrix, but I am tired and will come back to this at a later time.

5 Comments

  • Very interesting list, I agree, it would be very difficult to find someone with proficiency in all areas. And depending on the type of job, you would be looking for different abilities in different areas. In any case I would also add the following topics to you matrix.

    + Interaction Design
    UI Design
    Aesthetics
    Action Flow

    + Professionalism
    Basic work ethics
    Objectives / Learning goals
    Enthusiasm

  • Awesome!
    Favorite rows:
    problem decomposition
    books
    blogs

    Thanks for sharing!

  • from wikipedia, Competency includes altitude and behavior as well, it's far more important than technical skills, IMHO.

    Bo be good programmer in a team, altitude comes first.

  • do not agree with levels in algorithms. things such as dynamic programming aren't more guru than classic sorts. for example, it's more difficult to understand quick sort than to use various optimization methods.
    the same thing with NP-completeness - it doesn't take more effort to identify NP-problems than to handle collisions in hash table.

  • Wow - why we shouldn't attempt to post early Monday pre-coffee.

    I just noticed I placed O(n log(n)) faster than O(n). Great.

    Anyway - you get the point - another level between experienced and guru might be warranted in some cases if you ever felt like adding to this.

Comments have been disabled for this content.