views:

756

answers:

12

Does any rating system exist to rate the capabilities of a person as a programmer, much like an Intelligence Quotient Test, where specific insights on predefined aspects are rated based on answers / multiple-choice questions.

Ideally in a language-independent manner because the core programmer understandings are usually similar from platform-to-platform.

Also, capabilities we take for granted which actually make us more efficient / intellegent like visualization of data structures and processes, spatial-reasoning, in-mind simulation of code by just glancing, etc.

Typically there might be two categories of programmer solution design, functional-oriented and object-oriented, so if the balance of design style can be calculated.

Programmer-quotient? or Software-quotient? Any such rating system?


Duplicate of How exactly do you judge how well a programmer performs though this question is specifically about metrics for rating programmer capability not just advice.

+9  A: 

Personally, I rate programmers highly if:

  • they write quality code
  • they deliver that code on time
  • they don't upset team dynamics

IMO all other metrics are pretty pointless.

Galwegian
I know that if every aspect of your understandings can be brought down to the logical plane, they can be measured and rated. This would enable objective or semi-objective readings into the person's programming capability.
Jenko
Please people, do not respond to this question, its a duplicate of many of the same question. It's sad that someone who calls himself a geek would spam this facility :(
Helen Neely
+8  A: 

http://ratemykitten.com provides a template. Just display a picture of the programmer and buttons from 1-10. 1 is poor, and 10 is the best. Unfortunately, http://ratemyprogrammer.com is parked.

joeforker
You are probably talking *to* the guy who's squatting on it.
T.E.D.
+1 for funny site, -1 for getting more rep than me with an unserious answer. So, i give you; nothing!
Filip Ekberg
Has anyone else noticed that most good programmers seem to have a cat at home?
Chris Needham
Does a small child that likes to lick himself count?
EBGreen
Only if it's your small child
annakata
I don't have a cat. Nor a child. Does that make me a bad programmer? I seriously hope not.
Martinho Fernandes
Can I please have this spam deleted?
Jenko
Are serious answers are the only good answers?
joeforker
This is some utterly irrelevant, useless information. In all fair sense it should be deleted without further thought. SO is not a programmer's jokebook. This is the place we come for answers to serious, objective problems.
Jenko
At least down-vote this spam so its not the first and "best" answer.
Jenko
OK, cool. I didn't know SO stood for SeriousObjective. My bad. My only regret is that the question was closed when I had 9 votes, tantalizingly close to getting the 'Nice Answer' badge. But it's not spam. More like drivel.
joeforker
This metric is trivial to implement and produces an exact number rating the programmer. These concrete advantages over the other answers should not be dismissed, and is the result any less useful?
joeforker
+2  A: 

I've had several interviews before where I've had to take a psychometric test. I'm dubious as to how meaningful the results are in a programming aptitude context, but the interviewers seems to love 'em!

Stu Mackellar
I've taken a few of those tests, one for an employer (I was given the results), and some for career development. Most of the tests, pretty much nailed me ... they were right on.
John MacIntyre
Your horriscope would do the same job of convincing people they understand you, but for much less money.
T.E.D.
People tend to be more similar to other people than they expect, probably having something to do with how I can perceive myself and how I can perceive others (vastly differently). A random personality profile will often be rated as insightful.
David Thornley
Looking for more such metrics, keep it up!
Jenko
A: 

They are able to explain what they do ;) and document their stuff.

wishi
+5  A: 

Why this obession with quantifying everything we see? After working with someone for a while it will always be obvious if he is a valuable coworker or not. This could be due to a number of things like previous posters mentioned, ie quality of code, delivery times, etc. But lets not forget things such as personality, sense of humor, taking responsibility for code, willingness to help others.

I've worked for far too many companies where they seemed to rate coders at how arrogant they were, or how many testers they could make cry in a week.

willcodejavaforfood
+1  A: 

This is, naturally, a subjective matter. There are a bunch of aptitude tests that strive to be language-agnostic (e.g. W-APT Programming Aptitude Test). Certifications (Microsoft, Sun, Oracle, etc) help to measure competency in particular languages (you could argue that this reflects some level of programming aptitude). There's even a study that suggests that people either "get" programming or they don't (see "Separating Programming Sheep from Non-Programming Goats" on Coding Horror). Personally, I think nothing beats a direct measurement of aptitude --- the quality of the programmer's output.

Zach Scrivena
+1  A: 

How much you know doesn't rate; How good can you get?

The main thing i look at in a developer is; What ability does this person have to evolve?

The most important part of being a programmer is to be able to adapt to changes, such as requirement changes, new languages and other variables.

If i hire someone I don't care how much he knows, for all i know it might have taken him 30 years to learn how to create a while-loop? So, based on this, the ability to learn, adapt and communicate is the bases i would look at.

So what if they write really bad code? Well if the can adapt, teach them how you want it to be done? It's rare that someone just shows up and knows everything about you and your project anyways.

But what if.. Hey there's no buts in this :)

Filip Ekberg
Wow, downvoted? How is this NOT relevant?
Filip Ekberg
I commiserate with you +1
Zach Scrivena
+1  A: 

rating at a job interview: first look at what they need to do, determine what skills they need.

rating for evaluations:

  • put in a list for different jobs you have determined and make requirements for the jobs. Measure them on how good the fulfill the requirements. This also gives them goals to work to and makes it more tangible for them.
  • Let the colleagues give reviews on how well they perform
KeesDijk
+2  A: 

Steve McConnell's company, Construx, maintains a Professional Development Ladder for developers. It is designed for objectively evaluating performance over detailed knowledge areas, in an effort to determine a career path.

Anthony Mastrean
Looking for more such metrics, keep it up!
Jenko
+2  A: 

I don't think there could really be any way to objectively rate programmers. For one thing, you'd have to first come up with some objective definition of "good" programming. Not only would that be next to impossible, but different people would have different things they are looking for.

For instance, the ability to read and understand someone else's code, no matter how badly written, would be far and away the most important skill in shops that are mostly doing maintanence. In a startup, you might care much more about a programmer's ability to come up with good designs de-novo. The awesome maintanence guy would be nearly useless to you.

Even within good designers, there are some people who create wonderful working programs that are easy to maintain and are practicaly works of art, but they might take a while to do it. Then you have folk who are just awesome at pumping out working code quickly, but it might be only average in quality (or worse). Which designer you prefer is going to be largely a matter of taste, and partly depend on what product cycles look like in your industry.

Also, some programmers are going to get along well in a team, some aren't. Some might with most teams, but might happen to rub one person in your team the wrong way. Some will even get along too well, and impeede work with tons of chit-chat. "Personality tests" are notorious for promoting sociopaths who can easily be emotionally detached enough to game the tests.

But even if you could quantify all the skills you think are important, and wieght them all to your tastes, there is really no accepted objective way to measure people against them.

T.E.D.
A: 

Ability to structure a problem clearly and elegantly. The number one commonality in bad programmers I've worked with is a lack of sensitivity to bad code smells.

There's a big divide in the quality of programmers I usually meet, not between great and expert but between "acceptable competence" and "barely able to compile". People in the latter category can be found out very quickly, their code is usually very long, very verbose, littered with cut-n-paste coding and global variables. It's code that just, just manages to get things done.

On the other side, you almost by definition aren't really qualified to evaluate people better than yourself. So I'll rate as an "expert" someone better than me.

Steve B.
A: 

In no particular order:

  • on the quality of their code (the cleaner, more concise and easier to read, the better)
  • on their communication with others
  • with their ability to work to project deadlines and under pressure

anythinig else, like being "a nice guy/gal", is a bonus after that.

Chris