Live data from Hacker News

Programmer Competency Matrix

indiangeek.net

21–30 of 46 posts

Re: Programmer Competency Matrix

#24

Here's an alternative 1x1 matrix: [ build something that people will pay money for by any means necessary ] Much easier to remember.

It's true, but that's only one way to be a great programmer. There are a lot of positions out there where it might be incredibly valuable to an organization to build a new CMS, a better UI, or a more robust middle tier, but these aren't independently valuable. With two or three people who can do these things, you can make something people pay money for, but that doesn't mean that the individual programmers aren't competent.

Re: Programmer Competency Matrix

#25
Hmm... as joe_the_user said, it's a nice checklist for holes in one's background, but I'm not sure if it should serve as a list for "hireability" - I know people that are probably on the higher end of most of the points, but are terrible at real-world situations.

These probably are crucial for the kind of programming done at the startups, though.

I score as Level 1 or Level 2 at most on almost all the items, some Level 3 points don't seem relevant (why should I need a license header for my work programming?).

What I believe is that some of the points are WAY more important than others, I personally place great value on my domain and business knowledge and believe that is a trend going forward.

Still, thanks for making it available, reminded me I have to do some more studies.

Re: Programmer Competency Matrix

#26
post #7

Where's O(1)?

I had a professor in college that used to say A+ is for me, A is reserved for God, A- for the head of the department, and the grades B+ and below are for you... So by that line of reasoning I assume that O(1) is reserved for the author.

I think for O(1) in each category you can write "have conceived, designed, and implemented" a log(n) concept, construct, or tool.

data structures: creator of skip lists

algorithms: creator of genetic algoritms

systems programming: lead engineer on JVM HotSpot

source control: "subversion sucks, here's Git"

build automations: creators of Maven

etc. (You can go down the whole list and figure out exactly what O(1) is and who belongs to that set.)

Re: Programmer Competency Matrix

#28

Here's an alternative 1x1 matrix: [ build something that people will pay money for by any means necessary ] Much easier to remember.

christ. i know this place is related to yc. but sometimes the constant emphasis on making money gets a little tedious.

Agreed. This attitude is why software has such a bad reputation. People are in such need for software, that they will tolerate horribly unreliable software if it happens to sort of solve their problems. Good software is rarely available, so people just expect it to be bad.

If people started demanding software as reliable as the things produced by other engineering professions (buildings that don't collapse, etc.), then being a good programmer would be strictly tied to making money. But right now, the code is the least important part of software companies. The idea and the marketing is significantly more important. (Hello, Twitter.)

Also, people are quick to associate personal gain with the economic value of a program. The Facebook founders may be rich, but automatic trading systems handle a lot more money (even though the programmers didn't necessarily get rich writing it). Facebook can have as many bugs as it wants, and they will be fine. An automatic trading system can ... cause problems ... if it is not bug-free (and well-written, or written by good developers). But you never hear about that sort of thing from these people; only how their blog makes $10/day and that how they are a genius and visionary for doing that.

Re: Programmer Competency Matrix

#29

Isn't this the sort of table that shows its author is a L337 hax0r because he's in the top category of everything? Anyone who automatically puts things like DVCS, TDD, and practices obviously related to Open Source development in the top tier sounds more like a Kool-Aid drinker than an objective observer making a sincere attempt to provide a useful resource.

A lot of the O(log N) items were depressingly basic. An undergrad education in CS will get you to O(log N) in basically all the Computer Science categories.

Where are the finger trees? Array-mapped hash tries? Cuckoo hashes? Where's the domain-specific algorithm knowledge, like machine learning or information retrieval or computer vision? The IDE plugins? "Let it crash" and supervisor processes for error handling?

It's also depressing that O(log N) for "years of experience" = 10+. A motivated and reasonably intelligent student can get to O(log N) in all the other categories with an undergraduate CS degree and about 2 years of work experience at a good employer.

Re: Programmer Competency Matrix

#30

This matrix is a bunch of crap. The ability to "get things done" is the most important factor of programmer competency. Every thing else is incidental.

Not true. Getting "things done" while creating an O(N^2) solution, in spaghetti code, to a problem that's already well solved by an external library is horrible.
Post reply on HN