Comment Re:The average person thinks they've above average (Score 1) 220
The only way to get past novice or intermediate at programming is to get at least 10 years experience under your belt, at least 5 of which should be paid professional work on large complex systems or something equivalent in academia like a doctorate (anything else is just too easy).
Ah, this myth again. No, time does not equate to expertise. According to hundreds of scientific studies, time spent engaged in the exercise of a skill is the least correlated factor with expertise: people who play piano a lot, who program a lot, who have spent tens of thousands of hours drawing, are not automatically fantastically skilled, and in fact time spent exercising a skill is horribly unrelated to development of the skill.
So how does it work then? some people are no doubt just brilliant at stuff due to pure natural ability even though they never practice? What utter bullcrap.
I am not saying that practice automatically makes people better programmers (you can practice for years in a lazy way and not get any better), but I do think that to be a better programmer a huge part of it is breadth of experience at solving different problems, facing different challenges and working around different constraints.
Being naturally gifted or having a way of learning that suits the topic may give some people a slight head start or advantage in terms of needing less practice, but ultimately everyone needs to practice a skill in order to hone their abilities.
Just look at the employment market for the most compelling evidence: Senior developers with at least 5 years professional experience command more money than people fresh out of college.