Since I don't see this specifically addressed in the text: I suspect this is a classic case of survivorship bias. The same way the stock market looks better and better the further back you go, because you aren't tracking the stocks of companies that are no longer in business, developers probably look better and better the further they are into their careers, since all the ones who've fallen by the wayside probably were the weaker developers who found something better to do with their time.<p>As a somewhat older developer, I find this a surprisingly difficult question to answer honestly. Comparing myself to myself from 10 years ago, I sincerely think I'm more effective, but self-delusion may play a part in that. I've probably lost some of my "step", in terms of raw capacity to memorize and compute mentally, and I have more commitments outside of the world of software, which dilutes my efforts further. Then again, the strategic ideas I have are more dependably correct, and I spend less time chasing down dead ends, either because I've been down them before or had the good luck of witnessing them second- or third-hand.<p>I've gotten a chance to see a world-class developer very closely between the ages of 36 and 45. He started this period as, very easily, the greatest engineer I'd ever even heard stories of, and I'm pretty sure he got better over that decade. It can be done.
Aaargh! The data doesn’t say this, all the data says is “Older StackOverflow users have disproportionately high SO reputation.”<p>An alternate explanation is that for some reason older developers are more likely to be addicted to Stack Overflow.<p>A big problem here is the unproven assertion that high SO reputation means you are a “better developer.” Does it really? (After all, with few exceptions, the more active you are on SO, the higher your reputation, <i>period</i>, regardless of your answer quality, partly because downvoting is strongly disincentivized. And the article itself notes that older programmers don’t receive significantly more upvotes per post!) Until that’s shown, the article’s conclusion is highly suspect.<p>Frankly, I’m embarrassed so few people seem to be calling out the terrible reasoning behind this post. It may well be that older programmers are “better,” but what we have here is nothing more than a colossal failure to understand science, reasoning, and evidence.
I'm 45 with a little short of 30 years of programming experience. Our team at HP (I'm not a manager) has a few programmers that are significantly older and a few that are very young. From my observation, what's different about young vs. old programmers is not related to the speed at which we pick up new technologies (we all love to tinker with the latest stuff) but at the general approach to problem solving.<p>Older engineers tend to compare new problems to experiences from the past. The tools at our disposal have become much better but the fundamental mechanisms haven't changed that much so it's easier to identify whether there's a real benefit to using a new tool or if it's better to stick with what you have.<p>As an experienced developer it's a little easier to avoid sinking effort into novel but misguided technologies.<p>As a young developer it's a little easier to be open-minded about promising technologies.<p>But don't pay any attention to me - my SO rep is less than 30% of the average for my age bracket...
I don't disagree with the conclusion: people who aren't as dedicated to or good at programming transition to people or product/program/project management[1]; the remaining folk receive additional experience which allows them to capitalize further on their passion and talent.<p>However, this isn't exactly proven by the data: what Stackoverflow shows is that older developers are better at talking intelligently about programming. That's extremely useful (and helps career wise), but it isn't the same thing as being a better developer. Sometimes it correlates (the best programmers I've known have also participated in organizations like IETF, written RFCs and have also thoroughly documented their work), but it isn't a total ordering (I know plenty of programmers who are better than I, but who don't participate in any public forums).<p>On the other hand, I've yet to find a successful programming language made by someone before their thirties. Contrast it, on the other hand, with some of the most ground changing academic work in Computer Science and Mathematics being done by people in their twenties.<p>[1] There's nothing wrong with that: Google's APM program particularly is a great example of "engineers who don't want to code" being extremely useful. See also "The Russian Lit Major" by rands: <a href="http://www.randsinrepose.com/archives/2006/09/06/russian_history.html" rel="nofollow">http://www.randsinrepose.com/archives/2006/09/06/russian_his...</a>
What this really shows is that developers get better at answering technical questions with age. There is probably _some_ correlation to development skill, but the data doesn't demonstrate that. I'd expect developers to know more things as they get older, and I wouldn't be surprised if they got better at answering questions. Not sure that makes them better at the development part.
I used to think younger developers were better, but with the experience of age, I now realize that older developers are better.<p>Honestly, though, I think programming is a "young man's game", partly because you are sharper, have more energy etc when young; but mostly because when everything is reinvented each decade, you are better off starting fresh, without being aware of other choices.<p>The exception is for higher-level tasks, such as marketing, managing people, strategic business decisions, and code architecture. Also, I would think, language/library/API/framework design. I hesitate a little, because many of these are based on the needs of current programmers, which the front-line troops know better because they are doing it (they are the users). However, for deeper insights, age has the benefit of seeing deeper patterns over decades, and over generations of usage. Most language designers seem to be older (but is that just because their languages are now old?)
Age correlates with experience.<p>If you've been something longer, you've had time to learn what works and what doesn't, and why.<p>Thus, you can do a better job at guiding people who are newer to the material.
Honest question: what happens to developers after they are no longer "Developers"?<p>As a 29-year-old I'm kind of freaked out by the fact that I'm on the older part of that distribution.
Maybe with coding, it's either up or out. Older developers who have better skills most likely enjoy what they are doing and are somewhat good at it. If they weren't, they would have left the profession, maybe to become project managers or some related position. It's not like you're always forced out of your position, it's just that when you look down the road, you can see that if you're not a great coder, it may be best to find something you're better at. A 25 year old coder may still be figuring out if that line of work is sustainable over the course of a career.
A quote from this really stuck out for me:<p>"So, senior coders earn their higher reputation by providing more answers, not by having answers of (significantly) higher quality."<p>A lot of people here are focused on "being smarter" or "doing a better job" or "higher quality"<p>Excluding all of the self-taught developers, and limiting ourselves only to people who follow the standard "get a 4-year college degree then go out in the real world and work" crowd, as that's pretty sizable. Make extrapolations as necessary.<p>Remember your first year (or two?) of development? Looking back, you were probably way in over your head, had mentors looking after you, making tons of mistakes etc.<p>Fast forward 5 years. Can you write code faster? Probably not. Can you write better code? Sometimes. It's all about experiences and learning from them. When you take a new job, or a new project, or a new anything, you call upon past experiences to guide the efforts of this process. It might be something as vague as "I am going to write tests first because I found it helped me earlier", or (ignoring TDD), "I'm not going to write this function like this, because I know the code will be hard to test when I get around to writing a test for it later"<p>You learn this all from experience. Senior people who have been in the field longer have more experience. They aren't "better" in the sense that they are smarter or have more intelligence, they just know MORE because they've been exposed to more.<p>It's also why so many people (especially in hacker news) have been successful without degrees. It's not a degree that matters it's EXPERIENCE.<p>It might be a fine line differentiating between smartness gained from pure intelligence and "smartness" gained via experience, but I think it's an important distinction, and one that I think this post highlights well.
Hardly seems like they get better with age, just more active in educating other developers. The quality of posts doesn't look related to age at all. As far as I can tell, that should be the parameter to measure if you are going to make any sort of induction about the quality of a dev from their SO profile.<p>And obviously, the fact that this only takes data from SO means whatever the conclusions, they only hold true for the kind of people that post there.
I think there might also be another selection bias here, in that StackOverflow might be a bit self-selecting for developers who know their stuff.<p>It's hard to say what this says about developers as a whole, including the ones not on SO, which I assume is a large number.<p>An alternative hypothesis might be this: Good developers get better over time, whatever that means.<p>I would suspect that people who form bad habits early on don't enjoy the same benefits of experience as those who built on solid foundations.
Interesting hypothesis, but the faulty data renders the results presented useless. Namely, only 53% of SO users enter their age. Therefore the data may be wildly biased towards people who are willing to enter their age in an online profile.<p>In addition this only represents SO programmers, which while a great bunch, is hardly representative of all programmers.
This analysis is completely wrong because the bell shaped curve is not measuring number of developers. It is measuring number of SO users. There are SO users that are not developers, and a lot of developers that are not SO users, so there is no valid conclusion that can be taken from these numbers about the general population of developers.
The title s/b "Stackoverflow developers get better with age. And scarcer."<p>Stackoverflow is not representative of the overall developer population. As an example of an alternate view compare the relative number of items tagged on SO with C#, Java, and PHP. Then compare that to the number of listings of those tags on Dice.
There's one huge hole in the analysis: the dataset.<p>The older someone is, the less chance they'll spend time on an internet community site, especially at work, which is when a lot of people access stackoverflow.<p>Old dudes work while they're at work, because they learned their work ethic in pre-internet times.
The myth that engineers lose their game when they get older always seemed a little off to me. It usually gets clumped in with all the software jobs are going to go to China. I have met a lot of very bad developers that were older as well as very good ones. The same goes for young developers.
<i>"On the graph we can see a textbook example of a bell distribution curve."</i><p>Is this an actual bell curve? It's not symmetrical. (<a href="http://en.wikipedia.org/wiki/Normal_distribution" rel="nofollow">http://en.wikipedia.org/wiki/Normal_distribution</a>)
Seeing that 70% decline in number of developers (on SO) from age 30 to age 40 and assuming they are still working, what do the older "has-been" developers do now and what titles do they have? Perhaps they have never heard of SO? Or they have stopped needing and/or using SO? Statistics based on educational website usage seem to always skew younger.<p>Analogously, if I measured academic skills and availability by time spent in libraries and time spent teaching, I'm sure we'd see a similar peak in 20's because grad students spend so much time doing both these things and productive professors need this less.
One could also find another, not so positive trend in the article:<p>The older the developer, the less curious they are <= the less questions they have.<p>Of course you could say it's because the older developers are more experienced. But would that quality per se quell the thirst for new knowledge?<p>Just thinking aloud...
Number of developers by age is likely inversely proportional to the growth in the industry. I'd also say people get into development at a later date in their lives - late 20s - because they started doing something else before making the jump - marketers, engineers, painters, physicists.
Older people have, on average, been using stackoverflow for longer. SO rep scales roughly linearly with time spent contributing.<p>This probably isn't enough to explain the entire effect shown in the graph, but in 10 years (if people still use SO), it would be.
I'm a little surprised to see that they provide more answers, but that they aren't of better quality. I would have expected experience to show more.<p>Of course, we only know they are older, not that they have more years of experience.
I wonder that they didn't do the correlation of length of time on SO (i.e., since join date) vs. reputation. Did the older developers join SO earlier, on average? How many rep points per day did older vs. younger devs accumulate?
A minor nit, I know, but a bell curve is symmetrical. So the graph shows some sort of fat-tailed distribution, and we cannot "see a textbook example of a bell distribution curve".
How did this post title come from that article? If anything, we old fogies are just more prolix - but not necessarily better. (Judging from his statistics, anyway.)
My guess is that the older developers have more time to comment and follow up. Plenty of times I have looked for solutions on stackoverflow, but have been too busy to post responses because of looming deadlines. This is like saying my grandparents would make for better farmers because they spend their whole day on Farmville.
By looking at the Reputation by Age graph it looks more like there are just a few really good older developers. The rest probably are so out of touch they do not participate in developer communities such as Stack Overflow.<p>In my experience it has been that older developers hold on to old coding habits that are today considered dangerous and are reluctant to change that.
What this post shows me is that older developers are less willing to ask questions, less willing to admit when they don't know something, less willing to do anything to fix it.<p>My personal experience is that older developers just don't get it. They haven't kept up with the exponential increases in productivity that we have had in the last 5 years. Things that used to take 2 days 10 years ago can be done in 2 minutes now, but they are still used to thinking that they did it quickly if they finish it in 2 days, so that's how long it takes them to do it.<p>Also my personal experience is that older developers can't handle the asynchronous nature of modern communications very well. They always want to work on only one thing at a time and get confused/ much slower if they have to work on multiple things, whereas younger developers will happily be able to switch in between tasks while waiting for the previous task to finish compiling/running without problems.