

Programmer Competency Matrix - coglethorpe
http://www.indiangeek.net/programmer-competency-matrix/

======
almost
Funny how people who write articles are what makes a good on their programming
blogs often include "writes a programming blog" as one of the attributes a
good candidate should have...

Hmmm, maybe my comment should read as: "it doesn't perfectly describe me in
every way, hence it's a terrible list" ;) I'm getting too many 2's damnit!

~~~
nihilocrat
On the same note, I don't see how 'trying out' a DVCS makes you suddenly level
3 on the "source code and version control" metric.

Programmer competency articles are sort of a macho, nerdy equivalent of "do
these pants make my butt look big?"

~~~
monkeybusiness
Yep. It's a dick measuring contest, geek-style. At least I'm going to call it
that since I did so badly. It's amazing I get anything done. And yet . . . I
do.

~~~
arohner
It absolutely is, but it is slightly useful to at least attempt to measure
competency.

Though, this chart implies all skills are equally worthwhile. There's another
extremely important category missing here, which I'll call "solving the right
problem". It might need to be split into a technical side and a
business/marketing side. Solving the customer's actual problem, and using the
correct technical approach vastly outweighs many of the categories listed.

~~~
banned_man
"Solving the right problem" is like the skill of "big picture thinking". It's
clearly important, but the evaluation of it is subjective and case-based.
What's nice about this tool is that it's relatively objective, for the most
part, although it certainly doesn't paint a complete picture of what makes a
good programmer (which is context-driven, in any case).

------
thalur
I think this is a reformatted version of this:
<http://news.ycombinator.com/item?id=232192>

~~~
HalcyonMuse
It's not a different version... it's the same thing on the same site. Saying
it's a different version is like pointing at a page in which an image is
embedded and linking to the image itself and saying they're different
versions.

------
radu_floricica
This may be pretty useful for as a pre-interview form to fill. Definitely not
as a tool to generate a score or to filter candidates, but as a way to easily
get an idea about somebody's strengths and weaknesses and to start
conversation. Also, if you have some code samples in advance (which you should
always do) they're dead easy to verify. Actually just verifying them is not a
bad interview in itself.

~~~
raffi
I don't like pre-interview surveys much. I tend to fill them out biasing
against myself which tends to be a disservice to myself and to the employers.

To use an example. Lets say I'm considered an expert in a closed pretzel
making community. I worked for the Bavarians who are renown in the pretzel
making community. While there I made some waves in the pretzel making arts.
Lets say the Bavarians are very secretive and won't talk about their pretzel
making to other pretzel makers. They're Bavarians, they don't need to.

Later I saw a job at a medium sized pretzel factory in Portugal. I liked the
location and applied as an operational pretzel maker. They asked me to fill
out a survey and I listed that I didn't have experience with dough pullers and
have only shaken the salt shaker a few times in recent history.

Quickly said factory sends a "you're not what we're looking for email".
Needless to say, I was slightly perplexed.

The survey didn't give me a chance to state that I had invented new pretzel
recipes (and pretzel making techniques that did not require dough pullers at
that) and had a different view on pretzel making because I was working for the
Bavarians for so long. They also missed out on my motivation to get closer to
people eating pretzels and take my ideas outside of the schnitzel tower the
Bavarian pretzel makers occupy.

In short, I wrote all this to say I'm not a fan of pre-interview surveys.

~~~
radu_floricica
I did mention it shouldn't be used as a filter, for exactly this reason. A
pre-interview form can be used during the interview, too. Instead of starting
with a blank sheet in front of you, you have this chart. "I see here you have
knowledge about VCS systems... which did you use?".

------
mannicken
These all things can easily be learned. Anyone can jump from 2 to 4 in a
couple of weeks by learning binary trees, SVN, starting to write unit tests,
and do all the other skills. Wouldn't make him less of a moron.

It is the abstract thinking, akin to what is needed at TopCoder and
mathematical olympiads, that makes a programmer great, not his fucking .emacs
file or nice template for a file.

------
jonnycoder
I'm surprised that I'm mostly 3s and 2s after 4 years of experience at Intel
and 1.5 years experience doing side work at college jobs. Working on many
projects has allowed me to focus strongly in a few areas. I'm still a "1" in
TDD because I only write unit scripts after the code is written and focus more
on getting stuff accomplished.

------
huhtenberg
<http://news.ycombinator.com/item?id=232192>

------
iainduncan
For a self taught programmer, I find it quite interesting to see which areas
I've gotten up to 3 or 4 and which are 2. ( Thankfully none are lower! )
Though obviously it's going to come from one industry bias, it's still useful
as a reminder of what areas I should do more reading in.

------
jstraszheim
I'm pretty much on the right side on all of these. I probably should be
getting paid more.

~~~
jrockway
Honestly, I think everyone else is too. Most of the things aren't that
advanced... or rather, I am not particularly proud that I know or do the
things listed. (It does scare me that there are 1s and 0s, though.)

------
strlen
Quick issue -- there are _many_ grades of levels 2 and 3 on that matrix (i.e.
one could know what a red-black tree is and where it should be used -- or one
could easily be able to implement it; one could know basic scheme -- tail
recursion, continuations -- or one could have made a prolog compiler on top of
common lisp (cf Norvig's book)).

In essence to put it this way:

"for $thing in ( technology, pattern, algorithm, methodology ):

it doesn't discriminate someone who've toyed with a $thing, someone who has
made an implementation of that $thing for an employer or someone who has
authored an all-new $thing."

------
yan
Heh, I'd place myself in the last column for most of these, but I still don't
consider myself a very good developer :)

------
tjic
Great article ... err, matrix.

So, how do we stack up here?

With 15 years of experience, I SHOULD be a "3" in every category... but in
reality, I'm more like 2/3 '2's and 1/3 '3's.

Chalk the shortfall up to laziness, I suppose.

How about the rest of you?

~~~
ankhmoop
I rate three across the board, which simply implies to me that the author of
the chart had similar interests and focus.

~~~
eru
Yes. How about an O(1) category above log(n)?

------
fauigerzigerk
It's clearly EBTS - Excessive Box Ticking Syndrome ;-)

------
mapleoin
This looks a lot like the list in Steve McConell's "Code Complete".

------
peregrine
These tables are mostly worthless. Just like a bunch of engineers/scientist to
take humans and make them as close to numbers as possible.

------
edw519
I prefer a binary "Programmer Competency Matrix". Kinda like Hugh Jackman in
the movie Swordfish...Get it to work in 60 seconds while getting sucked off
with a gun to your head. All the rest is fluff.

------
banned_man
Pretty good assessment tool. I've been programming professionally for 2 years,
and averaged 1.9, which seems about right.

------
grunties
I've writing a pretentious wanker matrix, but this simplifies it a lot. It's
now a simple question - do you pay attention to stuff like this?

