
Programmer Competency Matrix - spydez
http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
======
huhtenberg
This sort of summaries always leave me with an impression of being written by
someone about himself and a few guys in his epsilon neighborhood.

Realistically speaking, you've gotta be not just an über-programmer, but
having extensive exposure to the HR and developer management to have any
credibility on the matter. Otherwise the statistical sample is just not there,
so the list has very little value outside of being entertaining.

A concrete gripe with this particular matrix - maintaining a blog has
_nothing_ to do with programmer's _competency_. In fact the exact opposite is
true based on my observations. The reference to the value of TopCoder rankings
is also laughable at best; again based on my own experience.

~~~
IsaacSchlueter
In the long run, I think that maintaining a blog does have to do with a
programmers competence.

Programming is a social activity. Communication and discussion are important.
Even if no one reads your blog, the act of regularly putting insights into
text form forces you to organize your thoughts. If affects your way of
thinking and your approach to problems. It exposes your thoughts to criticism,
or at least the possibility of it.

Part of the reason I was recruited and hired by Yahoo, despite not having a
lot of professional front-end experience at the time, was the fact that I
maintained a blog about web development. I was told this by both HR and the
hiring manager.

------
ajross
Uh... what conceivable purpose can this have? Bragging rights? Or is the
intent that someone checks this stuff off and decides to only hire "log(n)
level 3 competent programmers"?

Guess I'd better get to work finding professional experience in prolog, and
write some custom macros for the IDEs I don't use. Yikes, I'm falling
behind...

~~~
DaniFong
I think it's a decent taxonomy for the skills you can use in practice. It's
for learning about your weaknesses, and either learning something to fix them,
or finding yourself on a team where someone's an expert in the area.

I'd also nominate machine learning/simple ai/recommendation
systems/probabilistic filters as another skill -- once you have some
familiarity you can use it everywhere.

~~~
IsaacSchlueter
Completely agree.

After a few years doing this job and taking it seriously, diligent practice
and all that, anyone who's reasonably bright should be at the top level in at
least a few of these categories. But it's always good to spot areas that need
work, and lists like this can be very helpful.

We programmers are mental athletes. Like athletes, we shouldn't ever stop
training.

------
edw519
Hilarious! I think I saw someone I knew in every box.

I would change the IDE & log(n) (Level 3) intersection from "Has Written
Macros" to "Doesn't Use Them". Real programmers don't use training wheels.

~~~
graywh
Real programmers stopped using the IDE in favor of a good editor.

~~~
JesseAldridge
No, real programmers use cat.

~~~
graywh
Cat by itself is insufficient. You'd at least need to pair it with sed or head
and tail. Or maybe you enjoy retyping entire files just to correct that
misspelling on line 1.

~~~
jcl
Obviously, Real Programmers get it right the first time. ;)

------
Tichy
Is Prolog still relevant? I am still curious about it, but never got round to
checking it out.

------
Hexstream
The " _languages with professional experience_ " and " _languages exposed to_
" rows are duplicates, is it a bug or a feature?

I'm apparently level 1, in 13 years (I'll be 35) I should be a decent
programmer.

~~~
jcl
_All I have produced before the age of seventy is not worth taking into
account. At seventy-three I have learned a little about the real structure of
nature, of animals, plants, trees, birds, fishes and insects. In consequence
when I am eighty, I shall have made still more progress. At ninety I shall
penetrate the mystery of things; at one hundred I shall certainly have reached
a marvelous stage; and when I am a hundred and ten, everything I do, be it a
dot or a line, will be alive._ \--Hokusai

------
johnyzee
Entire sections are missing, f.ex. process. Others are naive, f.ex. build
automation (no continuous integration?).

Obviously skewed toward geekery (he is the Indian geek after all).

------
PieSquared
Um... Why did someone downmod every single comment on this page?

~~~
staticshock
inevitable noise that comes with growth, no doubt

------
PieSquared
I find myself to be mostly in the 3rd column, and sometimes in the fourth.
This just gave me some specifics of what to focus on. What columns are you
people at?

~~~
ComputerGuru
Mostly in the fourth, some in the third.

Guess I need to brush up on my data structures and learn some Erlang.

~~~
Dobbs
I found my self mostly in the second, surprised me as I'm a very noobish self
taught programmer.

I do like the reading list included had some books I'll defiantly check out.

------
ardit33
3rd column all the way. Not bad, but there is still room for improvment.

------
staticshock
could someone comment on why files should have license headers (code
organization within a file)? i'm not clear on the idea there, so i'd like to
know more.

~~~
wheels
Usually you put a copyright statement and license terms at the beginning of a
file. In the case of proprietary software it's usually simply that all rights
are reserved.

