Poll: How do you rate your coding skill compared to your peers?

32 points by proexploit ↗ HN
Based on the current post about top coders getting agents, I was curious about how many of our users consider themselves top coders. More generally, I'm just curious how the users here evaluate their own skills. Do we all feel we're better than our peers? Do we all feel unskilled comparatively?

53 comments

[ 22.9 ms ] story [ 1034 ms ] thread
I voted, and I'm mildly amused/interested. It does feel a little like a poll asking... How long is a piece of string? a) This long, b) That long, c) Other - please specify.
Yeah, it lacks an actual metric and a way to measure it but I'm curious which way we evaluate ourselves. E.g. do we have more than 50% of people who feel like everyone else is better or does everyone thing they're top tier.
I agree, but it's really more about perception than reality. I think this ties in nicely with the "I feel like a fraud" sentiment that people commonly express (and their course of maturing out of that sentiment).

I suspect that this would end up breaking down along lines of years-of-experience, with narcissists slightly tilting things towards the higher percentiles. :)

The Dunning Kruger effect would describe the outcome of this poll quite nicely I expect.
A piece of string is precisely 1.2cm long.
According to page 87 of the specification document (March 23rd 2013 revision), it's 12mm+-0.5mm, with a service limit of +0.5 to -1.5mm. There's a varience request in place to allow installation of 1/2" (12.7mm) string, so long as we use COTS imperial string with +0" to -1/16" tolerances.
probably just long enough to hang yourself with.
For me to be able to even guess at where I fit, either "coder" needs to be defined, or the poll needs to be "how many coders do you think are better than you" not as a percentage of coders, but as a percentage (or number) of people in the world.
Not to mention that within the tradition of the profession, "coder" is a disparaging term, often followed by the word, "monkey."
defining "peers" as "those that I actually work with"
No. That's cow-orkers.

Piers are raised structures, including bridge and building supports and walkways, typically supported by widely spread piles or pillars.

Indeed. I bow to your wizdum. ;-)
Didn't you know everyone considers themselves top tier?
I don't think that's true. I think there are a lot of developers that are either 1) unskilled/inexperienced and know it, 2) inexperienced, but think they are awesome, 3) experienced and skilled but believe themselves to be adequate, and 4) skilled developers that know they are skilled.

And I'm sure there's a whole range in between. Perception of ones skills don't always (may I say rarely) match up with their actual skills.

Personally, I think I'm average. There are moments where I think I did something smart, but they are fleeting. Is my perception accurate? I have no idea, I've never been graded by someone with far superior skills than myself. I'd consider myself insecure with my skills, but always striving to do the best I can.

It's extremely hard to get an accurate idea on where you rank. The sample size you have to draw on is small and biased. I just find it overwhelming that the more I learn, the more I realise I don't know.

However I will say, your ability to admit insecurity about your skills/acknowledging you could be better probably places you _above_ average! The scariest devs are the ones who think they're very good, but in reality are poor. For example I know something I'm really weak at is writing good multi-threaded code, I try and keep things as simple as possible, but I know other people who think they can write great multi-threaded code, but spend vast amounts of time debugging deadlocks.. Hmmm

A friend once explained his idea of knowledge. If you consider what you know to be the inside of a sphere and what you don't know to be what's touching the outside of the sphere then as you learn what you don't know grows. In reality there is a lot you don't know and will never know. The only way you figure this out is by learning.

I'm convinced that we all eventually learn enough to realize we simply don't know anything :)

I used to compete in TC many years ago... Back in 2005 or so. I was a high-ranked "yellow" coder in division one. I never made it to red.

It's a humbling experience: some of the topcoders there were simply geniuses. One of them red coder had won some US national math contest four times or so. They were making tens of thousands of $$$ by participating in contests.

You're not beating these "red" topcoder guys: you simply are not smarter than them. And I'd say that saying that a guesstime of 90% of the coders here couldn't reach high-ranked yellow either is probably very conservative.

They're not just Mensa and Triple Nine and whatnots: they're also very knowledgable about computer science and both algorithms and "tricks"... And boy do they type fast.

So what's next in typical HN fashion? Criticizing "intelligence" as not being representative of coding skills, criticizing IQ tests as not being representative of intelligence and criticizing top coder as not being "real programming" and hence not representative of coding skills, etc.

What I really liked about TopCoder is that it was (probably still is) a "put up or shut up".

You think you're better than 75% to 100% of coders out there? Go participate to a few TopCoder contests and get your arse handed to you and then we'll talk again.

(I didn't vote btw)

FWIW, I don't consider "all coders" to be "my peers". I am 100% certain I'm "better than 75% of coders". At the same time I'm surrounded by friends and colleagues where that's clearly not the case.
Reminds me about one stat I heard a few days ago: 90% of the drivers consider themselves better at driving than the 50% of drivers.

See the oxymoron?

I think it's the same in the programming land.

How can you quantify something like this?

Software engineering has so many different specializations that it's possible that everyone is better in different ways. I might not be the best at solving problems such as the ones on TopCoder, or probably not the best at working with hardware, but if you ask me something specific about bioinformatics, I know that domain fairly well.

I think it's strange to say you're better than 75% - 100% of all coders when you can't possibly have the knowledge about every field and every domain. All things considered, I'm definitely in the 0 - 25%.

Having interviewed about a hundred programmers who responded to a job search specifying that we're looking for "brilliant coders", I can objectively say that 90% are below average...

Seriously though, your perception depends very much on the quality of your peers. I'm lucky enough to be immersed among the very best, so the average developers I regularly interview seem - to me - incapable of programming their way out of a paper bag, even though they hold normal positions in normal companies, presumably successfully.

How can 90% be below average? Perhaps you yourself are not familiar with mathematics?
90% can be below average. It depends on how you define 'average.' If you're using the median, then 'below average' can only be 50%. But if you use the mean (or its variants), then you can have 90% of a population be 'below average' if the population is very skewed.

    $ python
    >>> import numpy as np
    >>> data = np.array([2, 1, 3, 2, 100000])
    >>> np.mean(data)
    20001.599999999999
    >>> np.median(data)
    2.0
I added the "seriously though" to clarify the obvious joke. Sorry you took it seriously, though.
Also, he was talking about 90% of coders he interviews. Of course they'd be below average - if they were above average, someone would hire them and they'd leave the job poll quickly. Such is the pitfalls of sampling a non-random population...
In this poll we're going to see a lot of bias introduced from both the Dunning-Kruger effect and Imposter syndrome...
"How do you rate your coding skill against other HN guy that replies? far lower/lower/mid/better/far better" could be interresting :)
Is my peers defined as those in the same field as my work, or other coders my age, or all other coders?

I'm in a traditionally non-coding field, so my ability to code is significantly above average compared to them on the occasions that I do sling code in order to help solve a problem (I would be one of maybe 2 or 3 in an office of 100-150 that would be proficient in this). On the other hand, I'm probably well below-average if you compare me to anyone who actually codes for a living.

I have read "peers" as "people I work with", and "better" as "for a coding task, who will do a better job than me in my company". It has the advantages to be a day to day situation. I may be wrong.
In plain words: I suck. The day I stop sucking, is the day I stop learning. I'm not better than anyone.
If you're average, then there are a lot of coders who are objectively less skilled than you, by any reasonable metric. Being humble doesn't require you to claim otherwise.
I'm not being humble, or trying to be (or trying to appear to be). That's how I really feel. I suck. I'm not average, either. I actually think I'm the worst guy in the room. How come? It helps me prevail over any obstacle. By understanding that I suck, any problem that makes me stumble is not too small for me to tackle. Doesn't matter your skills or experience, everyone always hits bumps.
(comment deleted)
Prediction: everyone here is better than everyone else here
I think I'm better than 75% to 100% of coders who think that 'coding skill' is a total order.
(comment deleted)
Actual coding skills are not what makes a good developer. Being a good developer is about applying the right knowledge in the right way. I'm great at that. But I wouldn't bet on being able to out-program other competent programmers.
(comment deleted)
Below average for everyone, slightly but not much above average among php coders.

I can find people who think i'm brilliant, meanwhile I know that plenty of people here wouldn't hire me to bring them coffee. It depends on your perspective I suppose.

How can we measure "better"? LOC, number of tests? Lets define "better"!
I'm better than 50% to 75% of coders