How many developers over 40 do you know?
davybrion.com
davybrion.com
Here's a hint: When you find yourself writing this kind of awkward, smiley-equipped parenthetical statement in the middle of your big topic sentence, it means something. It means that your subconscious is trying to tell you to delete the sentence and start over.
I'd say more, but I'm turning forty any day now, so I'm out of time. I've only got hours left to learn Haskell before I become senile.
I've met plenty of good older developers. I've also met plenty of marginally competent younger ones.
I left <big company> several years ago - part of the reason is that it was not as rewarding to me personally to be spending all of my time on management and administration.
My advice would be to follow your passion - if you want to build your skills as a developer, be sure to refuse to be "promoted" into management or do a really crappy job at all the non-development tasks your company tries to get you to do.
1. industry fairly young. yes there were some professional programmers back in the 70's but the number needed and working know probably dwarfs that by a couple orders of magnitude. websites, mobile devices, appliances, vehicles, CAD/CAM modeling, simulations, CNC, toys, Wall Street -- tons more places running software now than used to
2. the pay's pretty darn good. much easier to retire younger from a salary-type career, plus if you're a software/entrepreneur type it's fairly easy to start your own company focusing on that and score FU money -- not guaranteed, of course, and not impossible in other fields, but other fields are capital intensive whereas this one pretty much just requires a single PC and a chair to get started, and this field has seen a lot of growth and innovation in the last few decades, it's not an old/mature/commodity industry like many others are (cutting hair, selling oranges, etc.)
3. tech mastery freshness. while the fundamentals you learned a few decades ago will still serve you well, there's a lot of superficial/application-facing/fashionable technology that's changed pretty rapidly -- again, not all of it has changed, but the rate of change has been higher than a lot of other working fields. Humans get better over time at anything they do long enough. There's a natural tendency to slowly get very good at doing things the old way, even if it's no longer the best way. I looooooved writing C apps for several years but I'm glad I made the jump to languages and tools which are better suited for that role. Eventually a good chance somebody fails to make the jump to new tech/paradigm -- increasingly due to distraction from family, friends, hobbies, health issues, travel. Speaking in generalizations, of course.
4. it's demanding work, intellectually. folks burn out. eye strain. wrist strain. brain strain. the 1st 100 times you're asked to solve some evil bug caused by dipshit coworkers may be interesting or satisfying to solve, but eventually it gets old. (I think this is a big reason why Java is so popular inside large corps: it reduces chance that newbs/dipshits hurt themselves, plus, when shit does hit fan, Java has great tools and hooks for digging in quickly and finding out what's wrong and fixing it, in runtime/production scenarios, not just static code reviews)
5. management track black hole, certainly. partly the demand to push programmers into it, partly because you get bored, partly because you lose your edge, partly because it's a more sure-fire way to increase your pay in a corporate/salary type job working for The Man, and you don't want to become a contractor or start your own business, for whatever reason
We also have a "mythology effect" but with a twist... It applies to companies alive and thriving today (unlike an urban myth where no credible source can be found).
Consider stories from early days at Apple and other companies where no one was older than 30, then 35, then they stopped reporting. That was mid-1980's and into early 1990's for other businesses. Then it repeated in 1999-2000 with brand name dot com start-ups. It's happening today with upstart game companies that consider 7 years experience to be senior level.
So this meme persists on some level with each wave of newcomers (e.g., college grads).
I suspect that the effect gets compounded by newer programmers beginning with relatively newer languages and tools. It's easier to master a language/tool when it grows up with you. I saw this when C became mainstream, with Python, with Ruby, and currently with Clojure, Scala, etc.
When C was blossoming outside of Bell Labs (following Peter Norton's "Industrial Strength Programming Language" article in mid-1980's), when Python was merely v1.5 in 1999, when Ruby wasn't yet associated with Rails-- the majority of people using these were young, looking for an edge and seeking to avoid pitfalls associated with urban myths about what came before. (e.g., pre-ANSI C satisfied concerns that Lisp was slow and required special hardware-- myths circulating college labs of late 1980's)
It's easier to debunk these things today, thanks to the programming languages shoot-out, stackoverflow and threaded comments such as on HN. Due to these reality-check possibilities, we may hopefully put such systemic ignorance behind us.
I know lots of developers over 40 who are great. I also know folks who were good once but now are not. There is a strong correlation between continuing education and continuing competence.
A lot of young developers re-create the wheel, they don't know they are because they haven't been around the block that many times but they are. Then along comes an older developer who has to use their code/api/design and recognizes it for what it is, another wheel designed by someone who didn't realize this was old hat. How someone responds to this situation (which occurs again and again) seems to be key.
You can note the particular vagaries of this particular implementation of the wheel concept and work with it to get done what you want to get done, you can throw it out and replace it with a more up to date implementation of a wheel, or you can get disgusted at how little this developer knew when they tried to do this particular implementation of wheelness. I got to meet the guy who invented the insertion sort this way, not. (well he thought he had invented it)
Seeing wheel re-implementations gets old fast, trust me.
So if you let it get to you, you lose your sense of wonder. That thing where every new technique you saw was thought provoking and, well, new. It gets replaced with "gee IBM did it that way in the 60's and it didn't work for them either." If you let it get under your skin you will burn out and become one of those developers that just stops looking at new stuff because you know you will have seen it all before and it will be wrong for the same reasons the other six versions were wrong. And you will miss out on the stuff that really is new, and your currency in the art will degrade.
How many developers under 30 do you know who can tell you the second order effects of their new network protocol? How many even care? How many have found themselves intersecting the same bad design decisions that were bad back in the last century and are still bad today?
And finally, technologists are often like classmates from college, at first nobody you know is married then it seems like everyone you know is, or no one has kids and then suddenly everyone is busy with their kids. Your social circle ages like you do, if you know a lot of really great developers when you are 25 I can guarantee you that you will know several when you are 45.
Am I the oldest person on HN?
Edit: That goes for pg too.
You may be glad to know that HN ⊂ 'the' developer community.
(For the record, I'm 'only' 26)
I won't speak for any of the others, but rest assured you're not alone.
I've now realized that this is more due to the corporate (or wanna be corporate) environments that I've worked in. Such environments really suck the life out of you and are rarely conducive to staying passionate about software development.
My assumption is that people passionate about development don't stick around more than 5 years in these environments and either move to smaller startups or go independent soon after.
I think .NET developers like myself almost exclusively see this type of environment in the jobs that demand our skill set. All the more reason why I'm focusing on learning Ruby, NoSQL, iOS, and Linux in my spare time.
Engineers who are now in their 40s, sonny.
This is not an issue unique to developers.
If it happens to make a difference, so much the better. But you gotta keep up.
Whether it be programming, other technical things, art, language, various books, or any other skill... I don't know why anyone would ever stop.
Programmers who love their craft stay current in the areas that interest them. No one talks about older writers or older lawyers loosing their edge.