Study Shows Programmers Get Better With Age
mikejuk writes "It's a prejudice the young and old both share, but with opposite conclusions, of course. Young is best or old is best — most have an opinion. Now we have some interesting statistics ingeniously gathered and processed by Peter Knego, 'big data' style, that 'proves' older is better when it comes to programming, at least!"
I've managed programmers for almost 20 years. You want to catch them in middle age. Too young, and they are inexperienced and likely to fall prey to the latest language/paradigm/etc. Scripted or uncompiled languages are a prime example. I'm sure Python's great; I don't want it anywhere near my project however. Anyone over 50 is likely to lean towards C (or C++) whether it's required or not - when the only tool you have is a hammer, everything looks like a nail. The sad fact is, weighing the lesser of the evils, I can't afford to pay 50 year old C-jockeys $100k+ per year, when I can find a Python kiddie to do it for $40k.
People are only realizing this now, having been burned time and time again by young programmers who don't have a fucking clue what they're doing.
Yes, most of them are proponents of using Ruby and Ruby on Rails. In fact, those are the only tools in their toolbox. The solution to every problem is a web app. Then again, that's exactly what we should expect from 18-year-olds who have no university-level training, and merely picked up their "craft" by reading blog posts.
Well, it turns out that writing anything larger than a blog using Ruby and Rails just isn't a good idea. It's not maintainable, the performance is absolutely shitty, and the product itself doesn't provide any value. Unfortunately, many customers didn't find that out until well after these Rubyists had made a mess of the situation.
These days, it's only safe to trust developers who know languages like C or C++. Even if you're having them use Java, C#, Python or even Perl, at least they have a wide base of knowledge that lets them make sensible and correct decisions.
I've been in the industry for over 30 years now. I've witnessed first-hand the transition from COBOL-based systems from the 1960s and 1970s, to C-based systems of the 1970s, to C++ applications of the 1980s, to Java systems of the 1990s, to C# apps of the 2000s, to today's web apps.
Users today are worse off than they've ever been. Web apps, especially those hosted externally from an organization, are among the most inefficient, ineffective software systems ever created.
Ask any long-time computer/software user in a given organization how software has helped their productivity. They will immediately tell you that the software they had to use was much better when it was actual native applications, rather than the web apps they have to use today.
Native apps are always better. That's why smart people still use real email clients, rather than GMail and other webmail systems.
You can always add network connectivity to a native app. You can't add quality to a web app.
Where experience counts is in the "soft" areas: recognising approaches that will or will not work, as they have or haven't in the past. Knowing where your limits are and knowing being able to tell when others need help (even if they don't have the experience, or are too vain to know or ask, themselves). And knowing whether an unknown problem will take a couple of days to solve or a couple of years.
The problem with experience is that those who have it frequently end up working for those who don't, but who display the "can do" attitude that attracts lots of employers - as opposed to the "that'll never work" which can be the voice of experience, itself. As there's nobody as unswervingly certain as the truly ignorant, the experienced people have learned not to try to "advise" these individuals as they will only resent it, feel threatened by it and become even more steadfast in their refusal to accept advice.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
I actually think web apps are a good idea. The problem is in their execution.
Specifically the problem is that while web apps are becoming popular for "real applications" .. they are still being developed in a style suitable for your personal blog.
Which is where I think the mixing of experience with new ideas needs to come into play. You need old experienced guys getting young "web types" to go through proper program design, development and testing. You also need web technologies to evolve from their "copy+paste from the web and modify as needed" state into something designed for real work.
older programmers who were typically maths graduates are far more skilled than the younger "computer science" graduates
I second that. The kids I've hired right out of school hadn't learned decent programming in school, they had all been doing their own projects on the side. When I started my career as a programmer, there was no computer science department at the university, so we did math or physics, or astrophysics, which involves a lot of programming and a lot of problem solving.
no, I don't have a sig
I think older programmers might be more adaptable than you think. The more languages I've learned (at least to a basic level) the faster I pick up new ones because I recognize stuff I've seen before and only have to pick up the deltas.
Quidnam Latine loqui modo coepi?
Experience definitely counts for a lot in programming. I certainly think I'm a better programmer now than I was ten years ago. I've learned a lot in that time!
On the other hand, I do think there's some truth in the suggestion that better programmers are more likely to stay in the field. The best programmers are the people who love doing it, who come home from a day of programming at work to spend their evening doing their own programming projects, who are always learning about new subjects and techniques just for the fun of it. And those are precisely the people who are most likely to turn down that promotion to management; who, if they get laid off, don't even consider switching fields because why would they ever want to do something else? Mediocre programmers leave the field as they get older, leaving only the better ones.
"I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
I look at code I wrote a few months ago, and I cringe. I look at code I wrote years ago, and I feel like inventing a time machine just so I can slap past-me in the face for being so stupid.
I mean, seriously, why did I use #DEFINES so much for constant variables? And goto... I still have nightmares about some of my older code. And I'm sure that 2 years from now I'll look back at the code I wrote now and feel just as ashamed.
Programming skills don't really age. Some of my best code styles have come from looking back at ancient stuff - LISP in particular, but I have style quirks I picked up from almost every language I know. Sure, I write everything in more-or-less modern languages (C++ is still modern, right?), but that's just syntax. If you know the heart of programming, you can only get better as time goes on.
That neatly describes new, young, callow graduates coming into their first job. It doesn't describe many people over 35 with family commitments, a good network of professional contacts and an impressive array of successes under their belts. Hence, companies are not very likely to rate "experience" highly as it tends to make employees who will question decisions, undermine authority with "suggestions", know what their employment record is worth and have developed the ability to promote their skills.
Never mind that experienced people can produce better results. The quality of their product is ultimately defined by the quality of the design decisions - good implementations don't matter if the underlying basis of the product is rocky - either from a technical point of view or that it simply doesn't address any needs that would make it sell profitably. Companies would argue that it's better to have fast workers, doing 60 hour weeks with no time off and get a shaky design out the door quickly, since then the failure comes to light sooner. That the young workers also get paid a lot less helps too as it makes the failures even cheaper - though it does make them a lot more probable, too.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
The "study" that doesn't deserve to be called one claims that people who write more answers and ask fewer questions on SO are better programmers. That is as dumb as saying that business consultants are better CEOs or football trainers are better football players... As far as I am concerned, I am 38 now and I'd say that I've become more experienced and much lazier, but I wouldn't pay myself a higher salary for a programming job than I'd have for the younger me at 25. Among other things, because I could spend 20 hours in a row trying to solve a particular problem back then, i.e. what I lacked in experience, I more than made up for with persistence and enthusiasm.
"I love my job, but I hate talking to people like you" (Freddie Mercury)
Unfortunately, someone with 25 years' experience would expect to be paid a little bit more than someone with 5, which makes them much less attractive to the employer. No company is going to keep programmers around long for that reason. Even though the opposite is true, you'll hear employers and contract managers say how the younger programmers have a more "up-to-date skillset". It's just code for "they'll work for almost nothing and are too young to care about things like benefits". Older programmers are likely to have families and obligations and maybe even a little plan in life. Those are anathema to corporate wishes. Corporations want disposable widgets.
That's why it's so sad that wrong-headed policies are trying to raise the retirement age at the same time that policies are making it harder for older workers to find jobs. So here in the US for example, instead of having 65 year-olds on Social Security that they've paid into for the past 40 plus years, you'll have unemployed 65 year-olds living on cat food. It comes from the point of view held by the ownership class and the economic elite that people who are 65 and retired, who have worked for 2/3 of their lives and are now getting very modest pensions and maybe health care have it just too damn good. Yet a hedge fund manager who employs nobody and makes more than $50million/yr must not be taxed more than 16% because they are "job creators". And a corporate CEO (who on average have had their incomes increase by 25% last year to an average $10,000,000.00 can not be taxed 2.5% more because they are "job creators" even though last year they cut their US work force by nearly 15% and sent another 8,000 jobs to a country where the working conditions are so bad they have to put nets around the building because so many employees are trying to kill themselves by jumping off.
This system is known as "Reaganomics" and it's still being taught in business schools.
You are welcome on my lawn.
DO NOT WRITE A CHRONOLOGICAL RESUME!
I took the early years off my resume when I revised it earlier this year, leaving only the last three jobs with dates going back to 2006. I left off my graduation date, and lumped all 22 years of my pre-2006 projects/companies into "Other experience" at the end. When I updated it on Dice (on a whim, since the one there was 4 years old) I started getting flooded with phone calls and emails.
Now, if I was in the market to move (I've got a job with crappy pay but decent benefits, so I'm hanging on to it) I'd likely have to dye my hair so the interviewer wouldn't kick me out. But it's better than being told by one interviewer verbatim, "The customer likes your skills but you're too old. He wants someone who will 'grow into the position' over 5 years." I wish I had had a recorder on my phone, but playing the "age card" is something you can only do once, because even winning an age discrimination lawsuit means you're radioactive as far as getting any other jobs.
By the taping of my glasses, something geeky this way passes
I'm 50 next year. My programming ability gets better and better all the time, and has done since I started in 1980. When I look back at stuff I wrote in the 80s, it's cringe-worthy and an embarrassment. I'll probably say the same about the stuff I'm doing now when I'm 70.
What has changed for the worse though is my energy. Back then I could code like a demon, then go out and party half the night and carry on next day without feeling any the worse. Of course, I was pouring my energy into a lot of bad code, but it often ended up working by brute force. Now I find it hard to stare at the screen for long periods at a time and overall my work rate is much lower - but its effectiveness is much higher.
which is a little different from being the most modern coder. I code in .net mostly, either vb or C#. After a while, you start seeing repetitive problems (It sounds cooler if you call them "patterns" even though the term adds almost nothing semantically). After a while, you can write a class with a function to append an array to an array either horizontally or vertically in your sleep.
But you don't. You have them all pre-written after a while, which is why it seems to management that you're not working as hard. You just solve the problem and go home without noise or drama.
Please do not read this sig. Thank you.