What you are seeing is not "how much above average developers there is" but "how much above average developers there is that also read codeproject".
Developers reading about development are not that many, most work to pay the bill and go home, never reading anything.
Codeproject developers are above average developers average for that reason.
1725 people responded (so far) to the poll out of 10 million users. Don't you think there might be some selection bias in those who choose to respond. Two points. First, the ones who respond are more likely to be the sorts of folks who are engaged in and interested in the programming community. I'd say those folks are more likely to be exceptional. Second, and perhaps more important, maybe the exceptional folks are more likely to be willing to toot their own horn than the below average folks are willing to admit to themselves that they might be in the wrong profession.
Frankly, I'm surprised the results aren't even more skewed towards the top.
Well,i feel like above average but still there is a thing to consider it.Comparing my circumstances,logic and skill with the people i knew or i worked, my mind considers mine as above average, .
But,damn sure if i would participate an world class event where some very good developers would compete then i could find myself as below average, .
I also feel like a fallen god, there is so much I don't know at this point. Now, while lack of knowledge doesn't make me a poor programmer, it does make me an unskilled programmer in a variety of areas! Ah, semantics!
I'm sorry, I should have said that the below average programmers would not spend any time actually reading the articles on Code Project. There are plenty of below average types who post "Gimmie the codez".
Just because the code works, it doesn't mean that it is good code.
I see you point and the math behind it, but I disagree about lies. In this case the question has the "do you consider yourself" which is not enough. What is missing is the strict definition of the comparison in a form like globally, in your company, in CP etc (you may not agree). Because of that and since the question triggers self-esteem in the background, I recognize two possible states in any answer: true or false not truth or lie.
To make it more clear if I say that I'm well above average comparing myself with my colleagues in my company, it may be true for this comparison but not necessarily for all other comparisons. To make it wider and add another aspect, if I say that I’m better than you and it is also true, that doesn't necessarily mean that I'm good.
Living in an owned "fairytale" is the most common way of living and this is not a lie.
Don't take the CP polls too serious!
This is like with all on-line polls: the statistics is heavily biased - the participants decide themselves to participate...
If *you* choose an arbitrary sample of programmers worldwide and ask the question, you would get
a) a better confidence in the "average" figures
b) may detect a slightly distorted self-perception of the people of this profession
PS: How about a poll on this topic: "Do you think participating in online polls is silly? If so, do you consider yourself silly?" - Your poll would collect data on something else: schizophrenia
Well basically, it’s very complicated. Do I possess an illusory superiority, or do I underestimate my own abilities based on how I perceive other peoples performance? Dunning–Kruger Effect[^]
I have the ability to solve problems that others have told me that can’t be solved (When someone tells me “you can’t do that”, I’ve probably already finished the task) But I also get a lot of “why are you doing it that way, there’s already a method to do that for you?”
[EDIT] Fixed link. (Overestimated Chris's CP auto link feature)
I have been a professional developer for just over 13 years now. For all of that time I've felt like I don't know what I am doing, like I am getting away with it, that I am bluffing my way through.
I have mostly worked in Progress and C# .Net with bits of a number of other languages.
Yet those I have worked for have always been more than happy with what I have done, the users I have developed for the same. I have always been able to do things that other developers where I work cannot.
I have, however, never thought of that as being down to my coding ability, but my problem solving abilities and the way that my mind works.
If you tried to apply any sort of code review or other test to what I do I am certain it would fail miserably, the same with any sort of formal coding test or exam.
But I get things done, I get things to work, I fix problems that have been hanging around for ages.
And all along I feel that I don't really know what I am doing, that I am fudging my way along.
I put below average.
I'm not very good.
I do, however, seem to be very useful.
“I believe that there is an equality to all humanity. We all suck.” Bill Hicks
I have always been able to do things that other developers where I work cannot.
This makes you at least "above average". If you can do it faster with less errors as well then you are "well above average".
The question was how good a developer are you, not how good a coder are you. A good coder may know the syntax of every command in the book - or even several books - and yet cannot work their way out of a paper bag. A good developer knows how best to solve problems, code is just the means.
- I would love to change the world, but they won’t give me the source code.
This is useless as you can say whatever you want about yourself.
What really matters is what others can say about you as a professional.
What you really show sometimes is much different than what you think you are, and chances are that this metric is more accurate than your own (if you even have one).
Having a clear knowledge about others perception of you can really help improving yourself.
A good example are Client or Employee Yearly Reviews.
When a client or boss is asked to review someone, and that task is handled properly, the person under review may discover things about himself that wouldn't be easy or even possible on a daily basis interaction.