6 ms·
Programmer Competency Matrix
- tjic 18y agoGreat 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?
- donal 18y agoI fall pretty dead on into the Level 1 category, though in certain areas I fall into the 2 and I think I managed a level 3 someplace... But, then I have < 2 years professional programming experience (proceeded by 3 years of management experience) and a masters in information systems, but even that is more management oriented. Hopefully at some point I'll be able to make up for my terrible education in the areas of math and algorithms.
- JeremyChase 18y agoI think this is interesting, but wouldn't judge yourself too heavily on it. I think many of the lines are far too easy to get to the '3' category, and leave considerable room above for really gifted programmers. My results are about 1/2 three, 1/2 two, a couple ones, and nothing in the gifted category. :) Background here is some (very bad) programming before undergrad, undergrad CS from a good school, then 6 years working in enterprise software. I really don't think this chart categorizes what makes a programmer competent though. I value the knowledge of a programmer that is extremely deep in a couple categories more than someone who has a sprinkling of everything. Jeremy
- ankhmoop 18y agoI rate three across the board, which simply implies to me that the author of the chart had similar interests and focus.
- eru 18y agoYes. How about an O(1) category above log(n)?
- thalur 18y agoI think this is a reformatted version of this: http://news.ycombinator.com/item?id=232192 http://news.ycombinator.com/item?id=232192
- HalcyonMuse 18y agoIt'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.
- almost 18y agoFunny 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 18y agoOn 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 18y agoYep. 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 18y agoIt 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 18y ago"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).
- jstraszheim 18y agoI'm pretty much on the right side on all of these. I probably should be getting paid more.
- jrockway 18y agoHonestly, 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.)
- peregrine 18y agoThese tables are mostly worthless. Just like a bunch of engineers/scientist to take humans and make them as close to numbers as possible.
- iainduncan 18y agoFor 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.
- mapleoin 18y agoThis looks a lot like the list in Steve McConell's "Code Complete".
- huhtenberg 18y agohttp://news.ycombinator.com/item?id=232192 http://news.ycombinator.com/item?id=232192
- edw519 18y agoI 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.
- yan 18y agoHeh, I'd place myself in the last column for most of these, but I still don't consider myself a very good developer :)
- banned_man 18y agoPretty good assessment tool. I've been programming professionally for 2 years, and averaged 1.9, which seems about right.
- deleted 18y ago[deleted]
- radu_floricica 18y agoThis 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 18y agoI 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 18y agoI 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?".
- jonnycoder 18y agoI'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.
- fauigerzigerk 18y agoIt's clearly EBTS - Excessive Box Ticking Syndrome ;-)
- mannicken 18y agoThese 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.
- strlen 18y agoQuick 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."
- grunties 18y agoI'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?