15 ms·
Older Is Wiser: Study Shows Software Developers’ Skills Improve Over Time
- freework 14y agoIn other news, water is wet.
- nahname 14y agoI am unaware of any technique that translates knowledge metrics into skill metrics. This leads me to question why no is discussing that this research is solely based on stackoverflow. Knowledge != skill To me, all this study proves is that people who have spent more time on the earth have accumulated more information, on average. Which should be completely unsurprising.
- HackyGeeky 14y agoShouldn't this be true for any industry ?
- etjossem 14y agoDr. Murphy-Hill uses absolute StackOverflow reputation as the only metric. He demonstrates that older developers spend more time sharing knowledge than their younger counterparts, but I'm not sure about the jump to "skills improve over time." I suspect high reputation on SO reflects (at best) either a developer's perceived confidence in her skills or her desire to share whatever knowledge she has! Perhaps the title should have been "older developers like teaching." Not as sexy, though.
- Blinkky 14y agoThe problem with using stack overflow as your dataset is most of the programmers on the site are interested in expending their technical knowledge. So if 50% of "young" programmers are on stack overflow but only 20% of "old" programmers are on stack you get results that don't indicate the actual population. The only thing we can actually gather from the data is that with "programmers on stack overflow older is wiser."
- etjossem 14y ago"Programmers on Stack Overflow: older users like teaching."
- ap22213 14y agoWow - is this what constitutes 'research' these days? Look at some data on stackoverflow.com as if it's a representative sample, and then make some general conclusions?
- hobs 14y agoDont worry, the question was whether or not people got better at something they more they did it. News at 11.
- benjamincburns 14y agoIndeed. > They found that an individual’s reputation increases with age, at least into a user’s 40s. I really hope that's some bad paraphrasing, because I take that to mean for user X at time T, rep(X, T1) <= rep(X, T2). Unless you're very actively malicious (for which you'll get banned) your reputation should never go down by a meaningful amount over time.
- ajross 14y agoHonestly I think it's more poor interpretation than bad paraphrasing. They were sampling reputation and correlating with age, not tracking reputation scores of single users with time. So a more precise, if not clearer statement would be "They found that median reputation increases with poster age at least into a user's 40's". Better? Whether this constitutes good science or not is not something I'll speak to, having only skimmed it. But certainly stackoverflow.com looks like good data for this kind of research to me. I'd hope they'd have done things like control for different fields, different activity times for the accounts, etc... But I don't know.
- benjamincburns 14y ago> "They found that median reputation increases with poster age at least into a user's 40's". Better? Better. And admittedly this is what I was hoping they meant - I was probably being a bit too pedantic.
- api 14y agoThe prevalence of discrimination toward extreme youth in the software industry is probably a historical artifact of the fact that it's a new industry, so for the most part young people were the ones who "got it." That being said, I think it cuts both ways. Both younger and older developers have advantages. Older developers tend to see pitfalls and avoid them better. They tend to have a more diverse skill set, better organizational skills, and more knowledge of related domains outside programming (such as marketing, business, finance, etc.). Older developers are also less vulnerable to faddish thinking, choosing tools that they can ship with over the latest faddish language or technique. (And recognizing today's fads as yesterday's fads repackaged, which they often are.) Finally, older developers sometimes remember things that didn't work long ago but that might work today. Younger folks might not have a clue that certain things don't have to be the way they are, while an older person might be able to explain why a certain decision was made and then help them question whether it's still necessary today. A lot of innovation can be realized by searching through the discarded piles of yesteryear's ideas and asking, for each one, "are the reasons this was discarded still valid?" Young developers have the advantage of fresh eyes. They don't carry the accumulated baggage of prior environments and old ways of doing things. They can more easily dump legacy cruft, embrace genuinely novel and interesting ways of doing things, etc. They also sometimes have more energy, having simpler lives and lacking things like kids and mortgages and personal accountants. I think it's easier for a young developer to focus laser-like on one thing for a long time. I think the ideal team has both, and listens to both. It's also possible for anyone, regardless of age, to take on either of these sets of characteristics. It's possible for younger programmers to take the time to scratch the surface of fads, or listen to the older ones and learn from them. It's also possible for older programmers to intentionally "forget what they have learned" and open themselves to the possibility that such-and-such isn't needed anymore, etc. Edit: I also think it's important for teams to avoid the dark side of both. For older developers, it's the curmudgeon, or the developer so set in their ways they are not open to any new idea. For younger developers it's the cowboy who thinks they know more than they really know and will waste a lot of time reinventing wheels, chasing things already known not to work for provable reasons, etc.
- PaulHoule 14y agoThe best teams work to actively transfer the experience from senior people to junior.
- instakill 14y agoShocking.
- bargl 14y agoI wish I could up vote you more than once :-)
- cl8ton 14y agoI am one of the older'ish programmers One day a young programmer flies into the office talking about the new MVC frameworks and how it would revolutionize how we write programs. He was mystified when I explained how MVC works to him without even looking at what framework he was ranting about. He asked how I knew? I told him it was invented at PARC in the 70's and I've used them starting in 1995 with the MFC C++ for document view. This was more of a reintroduction of an older methodology suited to web. Older developers also get to see the linear progression of current technologies and how they arrived at current day implementation. What worked and what didn't work.
- Evbn 14y agoWow, when kids don't even know that the latest fad was originally popularised by Apple, we have entered postmodern hipsterdom.
- zwass 14y agoAre you referring to MVC in iOS programming? I would attribute the current popularity of MVC to Rails.
- deleted 14y ago[deleted]
- btilly 14y agoThere were lots of MVC frameworks for web development that predated Rails. For example Struts.
- arethuza 14y agoAnd MVC was talked about a lot as a design pattern for Web apps before Struts was started - I remember we rolled our own rather nifty one in 2001 or so and failed to get our execs to open source it so it died when the team withered away after our acquisition.
- Evbn 14y agoBefore we backslap too much, note that the study isn't about programming skills, it is about sitting on SO all day answering questions instead of working.
- mtviewdave 14y agoThat would be a more compelling argument if the startup community hadn't spent the last several years claiming that participation in online forums like StackOverflow is a good metric for evaluating the quality of potential hires.
- matula 14y agoExactly. And lately, it seems to Github repos and open source projects you've contributed to (which actually isn't so horrible).
- benjamincburns 14y agoHire an individual. Don't hire an old person or a young person or a guy or a girl or a... just.. don't. An individual at age 40 is generally more qualified than he or she was at age 25. However, absent of other context the fact that one individual is 25 and another is 40 has no bearing on the prediction of whether the one individual or the other is a better fit for a technical role. Go for the individual who can show adaptability and/or a history of compounding success in the areas that you need. My anecdote: I once had an argument with my former non-technical manager. She was arguing in favor of hiring a woman in her late 30s with two masters degrees to serve as a lead software architect. The degrees were in two subfields of physics, one theoretical, one applied. This would be the candidate's first position outside of academia. I participated in the candidate's entire interview process, and I recommended against hiring her for any position. She didn't have enough experience and she was awful at all of the technical portions of the interview process, especially her code. At the same time I was arguing that I should've been the lead, as this was a position the rest of the team had thrust me into and I was effective in the role. The manager's argument was that the candidate was more qualified. After some discussion, "more qualified" turned out to mean older (we both agreed the degrees weren't a strong indicator). In the end, the candidate was hired for nearly twice my salary (apparently upper management likes letters after a candidate's name). She never fit the lead role, so the team never accepted her for it. Further, she was very ineffective as a developer (we were working in Java, her experience was in Matlab and R), so we either had to refactor a lot of her work or let it go to review and decline to accept it. Everything that went her way took months longer than necessary. In the end I think she wound up working in some type of higher-end sales/administrative capacity.
- voidlogic 14y agoBeing at least an average coder is a prerequisite to leading a team of coders. A team lead that can't code is like an Army officer that can't pass his physical tests or clean his rifle. He will not have the respect of the rank and file. A team lead (as opposed to a project manager) that can't code is doomed. (Notice I don't mention language, a good programmer can be coding in something new within a week or maybe two and after a couple of months should be completely fluent.)
- kailuowang 14y agoAs long as the developer keeps curiosity and learning new software technologies rather than getting comfortable with the tool that he trusts to get things done, which, I think, is a stage which the majority of developers will reach one day. I am not sure if it's wiser to continue coding without the fun of learning new tricks (meaning when new tricks no longer interest you). I think when that happens a real hacker will stop hacking code and start to hacking something else. That being said, I am sure there are hackers that never get tired of learning new tricks.
- pablisco 14y agoTypical availability heuristic. We meet a couple of Jurassic programmers that are stuck on their old ways and we correlate those unrelated properties. You'll be surprised of how many "young" developers are reluctant to learn a new language, tech or OS.
- mrinterweb 14y agoAs a developer, it scares me to think that I may have a harder time finding a job after 40. For me, 40 is not far off. I love coding and want to do it professionally until I retire. I hope this trend of discrimination ends soon. It is sad to think that people would be discouraged from doing what they love just because of discrimination.
- shalmanese 14y agoI find the study to be highly suspect. Looking at Stack Overflow means that you're only looking at people who are looking to learn & grow. It could be perfectly possible that programmers "weed out" of career advancement as they age and stay stuck with the same skills but those same programmers never think to create a SO profile.
- chris_mahan 14y agoI'm 45 this year, and I have a SO account. I contribute very little to it now because some of my questions and responses were closed and deleted.
- brudgers 14y agoI have reservations about the study, but for different reasons. I suspect there is a correlation between age and the perceived value of participating in online discussions. I also suspect that there is a correlation between age and the perceived value of that person's contributions to an online discussion. I suspect that in Stack Overflow discussions which discourage lols and memes, older programmers are more likely to find an intrinsic value from participation and are likely to be better able to communicate their responses clearly (just by having more experience writing). Joel Spolsky created a site he (as an over forty programmer) deemed constructive. Those sharing his general experience are more likely to share his views about what is constructive. The same might be approximately true for HN (PG is about a year older than Joel Spolsky). But the less ruthless editing of HN may play a role.
- mimiflynn 14y agoWhen interviewing programmers, I've not noticed any stark differences between the old and the young, but I have noticed a difference between years of experience, as expected. Yes, hire an individule that is excited and willing to learn new things and keep up with this crazy industry the way others keep up with sports, politics, and whatnot ;)
- zmanian 14y agoI've found a wealth of talent by swimming against the Silicon Valley tide of favoring youth. There is an annoying pathology at work though. During the 90's most experienced developers were incentivised to move into management or sales roles. Many of the management/sales roles these developers moved into have disappeared. There is a population of older software developers who kept coding through the late 90's and early 00's who are almost invariably awesome. There is also population of older developers who left day to day coding work and have seen their employment prospects diminish who are trying to get back into development. This is a more difficult population to work with.
- avenger123 14y agoI believe this focus on favoring youth is very much a Silicon Valley/tech startup bias. I primarily work in the Energy sector and there is no definite bias towards hiring young. I would suspect this generally also applies to other industries.
- dreamdu5t 14y agoPeople don't get worse at something over time... They get better. Imagine that.
- wzdd 14y agoObvious response: the programmers whose skills declined over time stopped being programmers. Selection bias, in other words. Apparently the study didn't take this into account? Edit: I'd love for this study to be meaningful, as I'm in my 30s. But it doesn't seem to be.
- D9u 14y agoSome say, "Use it or lose it," but I think it's more like riding a bike, you never really forget how, but you might need some practice with the new bike before you get up-to-speed.
- alex613 14y agoYou mean the more I do something, the better I get at it? Mind = blown.
- HackyGeeky 14y agoLOL, yes that's what I said too. This should be the case in any industry.
- beat 14y agoAs a 40-something who is 20 years into his career, I don't think I'm a particularly better PROGRAMMER than I was about five years in. But there is SO much more to being a useful tech than programming! And I'm much more sophisticated about big-picture thinking, business, and planning these days. Back when I was barely past "junior", I got to work on some really cool software at a dotcom-era startup. Technically, it was a blast. As a business decision, it was absolutely idiotic, and it was a massive management failure to have us wasting our time on it at all. (Basically, the idea was that six man-months of code at the time would save the company millions in the future. Which would have been true, if it HAD a future. Never, ever waste precious development effort on something that can be bought easily off-the-shelf and isn't core competence for your product! That's not even a good use of time in an established company, much less a ticking-clock startup!) As I'm prone to saying, I cost as much as two junior programmers, but I can do things that two junior programmers can't do. And actually, cost is one of the problems older programmers have... senior == expensive. On the other hand, if you're in the industry for 20+ years and haven't found a way to make yourself and your work more valuable than what some drone straight out of college can do, but you expect to get paid more than said drone, you're asking to get sidelined. The problem isn't the myth that older programmers are less flexible than younger ones. The problem is that so many older programmers haven't attended to their careers in a way to make themselves substantially more valuable than some pliant kid. It's not enough to do the kid's job better... you have to do things the kid CANNOT do.
- jorgeleo 14y ago"I cost as much as two junior programmers, but I can do things that two junior programmers can't do" Love it. I'm about the same place in my career, and I completely agree.
- beat 14y agoThis reminds me of a conversation with an old friend... a pic of the two of us when I was 20 or so appeared on Facebook, and he asked that if 20 year old me met today's me, what would surprise him most? I replied that it would be how today's me kept calling 20 year old me "dumbass".
- rapht 14y agoI'm sorry, isn't that what's called "experience", which is about the only factor that differentiates an "old" person vs a "young" person when they are considered having identical theoretical knowledge ?
- throwaway1979 14y agoI must admit ... I am in awe of the programming prowess of some of the older devs I work with - we're talking about people aged 55+! One guy I work with seems to actually know what the bazillion options in Eclipse do. You can only do this with experience in my book.
- moron4hire 14y agoIt is fundamentally hard to find good developers, but that is not because there are so few good developers, it is because there are so many bad developers. I meet great programmers all the time, but I never see them on job interview. The reason is because good developers do not apply directly to jobs. They find out about positions through their friends and move through their network, not through recruiters. And it's the correct way to do things. You're never going to be able to learn who a person is, the whole person, from a resume and a battery of interviews. You'll learn who they have groomed themselves to look like, which won't be a real person. The answer to all the problems with hiring--not enough female candidates, not enough skilled candidates, etc.--is all entirely due to the hirer not socializing enough with the types of people he or she wants for their position. If you don't know the people you want, then you won't find them. In short, treat people like people, not equipment. The noun in HR is "resources" not "human".
- jebblue 14y ago>> The reason is because good developers do not apply directly to jobs. They find out about positions through their friends and move through their network, not through recruiters. So if I were to go by that then, I'm a bad programmer?
- moron4hire 14y agoYou're likely a pie or a perhaps an '87 Datsun.
- NegativeK 14y agoIt's been my understanding that cost and willingness to work far more than 40 hours a week have been a main drive in hiring a young workforce.
- codex 14y agoThere appears to be no attempt to correct for survivorship bias in this study, making it at best highly suspect and at worst, worthless. For all we know, people who are good at getting karma on Stack Overflow stay on the site simply because they're good at getting karma on Stack Overflow.
- adventured 14y agoThose 40 somethings? Yeah, they built the modern Web and Internet. To use an easy example: who do I want on my team, John Carmack (42), or some 19 year old kid that is working on his first engine (and is likely to stumble over a million landmines due to lack of experience)? Easy choice, I'll take the ridiculously vast experience and refined skillset.
- willismichael 14y agoTo be fair, John Carmack WAS "some 19 year old kid ... working on his first engine" and within a few years had launched some very successful projects.
- adventured 14y agoSure, and the programming work he was doing back then required very little prior knowledge. He invented a lot of it as he went, and has been able to scale from day one with the radical increase in complexity. Try building something like the latest id Tech engine or the Unreal Engine from scratch. Carmack could do it, a 19 year old kid writing his first engine could not.
- mosselman 14y agoNo shit.
- doktrin 14y agoI'm curious as to how the situation will look 20 years down the line as the current (young'ish) workforce grows up. My hunch is that as the industry matures, the current trend of age discrimination will gradually fall by the wayside. There will always be some predisposition, as within most industries, to tend towards age discrimination in certain situations. However, my guess is that software will begin to look more like established engineering professions, demographic wise, as time goes on.
- Zelphyr 14y agoIn other news; The sky is blue and dogs bark.
- lazyBilly 14y agoI'm not old, per se, I'm probably at my peak marketability-- old enough that, if I were stupid, I would have washed out by now, young enough to be stereotypically perceived as vigorous. I can grow a nice lush beard and there's no gray in it yet. The only real doomsday issue I ever ran into with older programmers was an increasing unwillingness (in some) to add onto their stack. The good news is that after the third or fourth new language you pile on, the next one gets a lot easier. If you know C, a lisp variant (although I prefer an ML variant), and a decent scripting language (I learned perl first, but I sort of hate it), you're not likely to get surprised by much. The programming hivemind really can't process new ideas all that quickly, so you rapidly gain exposure to the core ideologies that form the foundation of the fancy 'new' trends. And then you're just learning some syntax and getting comfy with a new API. Unless you get lazy, shit really does get a lot easier. But with tech, the next wave is inevitably coming, and you're either on it or under it.
- betterunix 14y ago"If you know C, a lisp variant (although I prefer an ML variant), and a decent scripting language (I learned perl first, but I sort of hate it), you're not likely to get surprised by much" I think a person with that knowledge set might be surprised by this: https://en.wikipedia.org/wiki/Constraint_programming https://en.wikipedia.org/wiki/Constraint_programming New programming paradigms emerge over time, and force us to rethink our approaches to solving problems. I think the key is not learning many languages, but learning many paradigms, and becoming skilled in the use of one paradigm before moving on to the next. Learning several languages with the same approach to programming is not as useful as learning several languages with completely different approaches.
- dobbsbob 14y agoThe discrimination towards extreme youth is all about money, because they can pay them 1/4 what a senior developer would ask for. They also will probably do a bunch of free overtime and not complain, until they've been there a few years and realize the shaft they are getting. I was surprised how little the young Sr Android developer at Google makes. They obviously hired him to pay him as little as possible as compared to an experienced lifelong developer. Google I guess doesn't care about bugs or experience seems like most tech companies they just want to keep pushing new releases to get you to buy and upgrade to them. The Sr Android developer is constantly complaining about a lack of free time on his google+ page and has been taking a lot of leave. He's yet another young developer working obscene amounts of hours so Google doesn't have to pay for extra employees.
- michaelochurch 14y agoThere are a lot of badass older programmers in Real Technology, but VC-istan does seem to be a young man's game. It's not that these people think older programmers are incompetent. A few of them do, but mostly, it's just brutal age-grading of peoples' careers. If you're a 45-year-old non-manager (never mind that you might not want to be a manager) they're afraid to have you around their 22-year-old, Red Bull-drinking brogrammers-- especially if you've done a couple startups and you're still not rich. Then the VC-istani founders definitely don't want you around because you might indicate to them that billion-dollar exits don't happen just because you're a nice guy.
- zafka 14y agoI was older when I started-36 year old freshly minted Computer Engineer. Dumb lucky enough to take the first offer I got from the folks I had been interning with. Siemens Communications in Boca, 1996. I was working with about a hundred engineers on a huge code base in an arcane language (CHILL). I was able to learn Intel assembly to patch live systems, pretty good proprietary configuration management, and quite a bit about the Dilbert principle. At that time, I worked with Old guys who were great, and old guys who were less proficient than me. One of my friends who was 22, came in and ran a project. The bottom line is, if you were adept when you started, you most likely get better with age, if you just apply yourself a bit.
- rbanffy 14y agoThis idea deserves more than this short post, but, in my experience, developers who learned to program in the 80's are consistently better than those who grew within GUIs. Either that, or I just communicate better with people my age ;-)
- n00b101 14y agoYou guys don't get it. It's not about how old you are, it's about what kind of persona you project. If you are confident, tall, good looking, have all your hair, young enough _looking_ for your age, well rounded, intimidatingly brilliant, experienced, and professionally successful, then you are good to go - age does not matter. If, on the other hand, you are all washed up then yes age is a negative factor. This doesn't just apply to software programming, the same patterns occur with, e.g. investment bankers.
- Sami_Lehtinen 14y agoIsn't it clear? Experienced developer can give you huge list what to do and why, and what not to do and yet again exactly why. I'm seen millions of ways writing extremely bad and unreliable code. I can tell exactly why not to write such code. Nothing kills more productivity than totally unreliable code. Use transactions, locking, handle exceptions, give clear error indicaton, log possible issues. Use auto-recovery, if possible. It's not that hard, it should be really obvious for anyone. Don't write stuff that totally kills performance, use batching, sane SQL queries, indexes, etc.