Challenging the Myth That Programming Careers End at 40
thenewstack.io
thenewstack.io
(1) there have been a few periods of off-time related mainly to layoffs and company closures, most notably the dot-com crash.
The analogy I’ve sometimes drawn recently is about specific buzzwords compared to deeper understanding and transferrable skills. We used to see this sometimes where recruiters didn’t understand that probably someone who’d been working with MySQL professionally for a decade wasn’t going to struggle with a job spec that required 2+ years with Postgres. Today, there are many buzzwords around mostly peripheral subjects like development processes or cloud hosting platforms. In reality, those might be a relatively minor detail for many jobs and a 40+ year old veteran with broad experience would just pick up whatever you need in hours if not minutes, but that veteran can appear to be less qualified for the job than a 25-year-old who has spent the last two years on a team with exactly the right process and platform.
I haven’t been a full-time employee in many years, but seeing some of the horror stories about overweight recruitment processes, it looks like it could be a frustrating experience for devs of my generation who still wanted a hands-on programming role.
Experience has value, but it surely tapers off. If someone who is 50 and has 30 years of experience is no better than someone who is 40 with 20 or 35 with 15, why would the 40 or 50 year old expect to make more? (I think they often do, but I don’t see the basis for it, speaking as someone on the right end of that age spectrum: you’re hiring me for what I can do, not how many candles were on my last cake.)
It’s likely that an individual programmer’s competence follows some kind of asymptotic curve towards their peak performance rather than a linear (or higher order) function.
That tapering effect surely applies to some extent, if only because beyond a certain point you might keep gaining more breadth of experience but for any given role you’ll only be using some part of that experience.
Still, I’d argue that with broader experience often comes deeper understanding as well, and that tends to retain its value no matter what you’re doing. There was a big jump in what I could do straight out of university and what I could do at 25, but there was also a big jump between that and 30, and between that and 40. Importantly, I think, those changes weren’t measured on the same scales.
Earlier in my career, I was learning about specific languages or libraries. I was also learning how to operate as a professional and collaborate with others and use tools for things like source control and bug tracking.
A few years later, I might still have learnt new languages, but I didn’t really see each programming language so much as a particular programming style with some specific syntax attached, and the interesting parts were often more about the general programming style or any unique features or idioms. Similarly, I didn’t see a library so much as some data processing or a communications channel that the library provided.
Today, I mostly just see data and interactions. I’m more aware of qualitative properties of code and systems, like readability and maintainability and testability. I’d say I’m also more aware of the bigger picture than I used to be, of how we write programs to solve some problem that is defined by a business requirement or a personal itch we want to scratch.
In another decade or two, I would like to think that my understanding will have continued to develop, but I’ll have to get back to you on that later. :-)
I think pay should look like a bell curve over time
It seems somewhat obvious to me that this should be the case, but maybe I'm missing something
Also, pay should decrease as you do less work
That is, every time you climb a level on the corporate ladder, you should get paid less
And, of course, all the natural conclusions should follow -- janitors and laborers should be paid the most, etc.
(Ageism definitely exists though, meh.)
I did not start to put limits on my dedication to a job until I was 50, and now at times feel I could have better used the last decade - more living / less toiling.
But what if you're a smart, run of the mill Python and Javascript CRUD/Pipeline dev who appreciates quality and security? Doesn't have a fancy/name-brand degree? I found nothing in reach for someone pushing 50, at least in California. You'll be competing with a hundred 28yos with beards for each position, haha, the judge often from the same cohort.
A few years ago I was laid off from a declining company and for the first time every was not able to find a job for an extended period (see above). Devs are supposedly in high demand, right? But no one was actually interested in hiring, only playing gotcha! games.
At random, a few weeks before our family becoming homeless I was offered a remote contract for Uncle Sam on the east coast. (Side note: the team is actually diverse as well, not merely the incessant talk of it as in the west.)
Though the subject domain is not extremely exciting, it is useful and occasionally interesting, and I get satisfaction from modernizing their literal garbage code with higher quality versions. They gave me a chance and now fawn over my work... such as when I replace thousands of lines of crap with a few lines of battle-tested library from PyPI, fix flake8 errors, upgrade to fstrings and walrus, and help them move from Oracle to Postgres.
Differentiate yourself, is my advice. Note degree inflation. Don't let your network dwindle. Wish I could send a message in a bottle to myself in the 90s, don't we all.
The interesting thing to me is that Facebook is primarily used by older people (over 40) who are not represented in the coding and ui decisions. Their inability to get a handle on political speech is evidence to me of this. Their employees lack real world experience and wisdom.
:)
It's unwillingness
My last round I made the mistake of interviewing at a bunch of startups. I could tell I already had a strike against me walking in the door at age 49. It's tough to ace the whiteboard when you know you have to be perfect to even have a chance.
- "How am I going to manage this person 15-20 years my senior?" Also this "will want to be manager soon."
- "This old man must be stupid when applying for a non-leadership role at that age."
How can startups that are almost all 20-35 year olds overcome this?
Large companies have more management positions though. What should someone 40+ do at a small firm? Start again at BIG Co as developer and wait 5-10 years to become manager or tech lead? Is that the only option? Can we say 40+ developers at small companies are mostly buried without carrier path? (I think it can be the case for many.)
Yeah, impotent middle management positions.
#Startup4Life . About to leave a 300k+/year situation closing in at 40 to get back to a smaller company, larger influence environment.
A lot of these smaller companies still pay very well for non-middling engineers with a strong track record.
in preparation I've started to vet the skills I pick up more carefully. Nowadays, I look at the longevity of the tech. javascript frameworks come and go. those few weeks you invested in learning backbone/jquery are now obsolete. time to learn how to build the wheel again. Beam is a 30 year old tech and elixir looks solid so I'm happy to invest time in it. Flutter is still new and mobile landscape changes constantly so while I think its cool, I leave it to the newer engineers.
Nowadays I'm investing more of my programming related time to systems build on stable platforms. cloud is more or less linux and that doesn't change too much. SQL written today is not going to change much in the next 20 years. Everything added in the last few years seem more or less opt in. Good architecture for backend doesn't change much either.
IF you're in your mid 30's and you wanna stay in the game, I'd recommend doubling down on systems programming (start learning rust NOW if you haven't already) or machine learning with emphasis on theory. The fundamentals and apis don't change radically like frontend does. IOS and Android seems dangerous to me. if I was in my 20's I'd be happy to but I dont' have brainpower to completely relearn from scratch every few years anymore. getting older means using what you have more efficiently.
I understand what you mean when it comes to new frameworks. I learned to code in the 80s, and nothing has really change since then.
There is this misunderstanding that things change fast, they do not change at all. Only the level of abstraction changes.
When I was a kid I was capturing interruptions to implement mouse movement, it requires fast code that runs for a moment to react to the event and returns to not block the system. Same that with AWS Lambadas. I personally do not see any difference.
Immutable messages passed between actors to implement concurrent behavior of enemies was common when multi-thread PCs first appeared. The theory is form 1973. Now I use that same knowledge to build micro-services.
The big challenge is that what I did at CPU level in the 80s now I do at the service level in clusters of machines in the cloud. From CPUs, to virtualization, to cloud, all the same thing: input in, output out.
But, I am also tired of learning new syntax for the same things. The most difficult part of learning AWS is to remember the specifications of the product, if they offer this type of connection in S3 but not in EC2. The difficulty is to remember arbitrary decisions based on temporal situations.
> machine learning with emphasis on theory
That is the only innovation (applied, the theory existed by very long) that I have no real equivalent from the 80s. And, I am following your same advise and going for it.
That is the difference today. As you said lot of things you learned decades ago is still applicable knowledge. The AWS ad-hoc stuff we learn today will be outdated and mostly useless information very soon. The undelying principles (even distributed computing) we already learned years ago.
Feels like there's more staying power here. On the product side I would have been sprinting to director level people management as fast as I can. On infra I feel like I can stay an IC indefinately
Even though I have an ML background, I don't feel like competing with every young hotshot out of MIT and stanford for ml eng roles, so going to opt out for now and focus on systems
Also, after 10-15 years, you will be increasingly frustrated to be managed by 32 yr olds.
But I've taken a liking to Rust, I've learnt a lot of maths and I've also read up on networking.
Both.
- As we accumulate knowledge while aging it becomes more and more difficult to learn new things. We are smarter and smarter though. (Most of us :)
- Losing interest sooner is natural. For example by the time I read through the documentation of one service that deploys containers on AWS the information is already outdated and two other, newer AWS services released doing almost the same. When someone says: "we need to investigate this new AWS ..." I am already shutting my ears.
Let's say you are not CTO but developer, and your CTO is 32yr old. Would you be as happy?
If they're up to the job (technically, managerially, personally), then yes, fine by me.
There's another group of people who have simple lives - empty nesters. Raising kids is time-demanding, hard work. Guess who no longer has that time suck? Guess who has over 35 year's worth of experience (and not just doing the exact same job and working with the same technologies)? Guess who knows how to turn business goals into results? Guess who knows the answers to the questions the business never even asked? This 54 year old developer, that's who!
The good news for us experienced old farts is the idolization of young, inexperienced programmers appears to be mainly an SV culture thing. Out here in the "real world" older developers are prized for their soft skills and their vast experience in knowing what's important for getting stuff done.
FWIW I'm mid forties, still love being 'hands on' with tech, and am based in the UK. I know a load of folks my age and above and never heard of any age-related rejections.
Experience on the contrary seems to be welcomed.
YMMV.
Since I turned 50, I've learned: React, python, AWS, and C#.
The only difference I've noticed is I have to write stuff down or I forget it way more than I used to. Maybe I can't juggle pages and pages of spaghetti code in my brain anymore. But that just pushes me to modularize and break the problem into pieces - which are good things!
Specifically, can we get figures to back it up, and not just lists of anecdotes?
Because in my own anecdotal experience I have always have had more peers younger than me than older than me, across my ~15 years of engineering (I'm in my early 40's, and started programming as a career late).
But i have met people who have programming instead of switching to management track.
I believe it also depends on the person too
Old people in IT I've met in past 17 years are always 1) excellent in domain knowledge; 2) extremely grumpy compared to young folks unless they do only what they want (impossible in large corps); 3) team work can be challenging not only due to 2)
My mom is retiring in few days. She ran basically 2 high school's economic department (that covers a lot of properties outside just school ones) for decades. School principal begged her to stay longer into retirement. Her job is crunching a lot of numbers into perfection where thousands of transactions end up matching up to a cent, and a lot of corner cases. Following closely every law change etc. They will need 3 other people to replace her. Mentally, she is facing visible decline, my father says so, I can say so. It will take few decades for it to become a real issue in general life. Great for her to retire now and not later.
My father is similar - begged by CEO of his company to work through retirement. He stayed because he was saving up for his lifelong dream - Harley Davidson. Also replaced by team of 2-3 people. +-Same story - fine health, but clean decline.
Both can be annoyingly grumpy. Both are still generally sharp mentally. But it would suck greatly for them to work more. Having a good life for them means something else.
Sorry of largely off-topic rant, 40 is IMHO fine age to be a senior dev or whatever position would be named in given company. I am 40 and exactly there, happy with how much money I get for the amount of work I put out, don't want to step up to stream of endless bullshit, politics, meetings, powerpoints etc. and loss of creativity I can do when coding. Its stupid to push people higher if they are happy there. Like that, everybody wins. Otherwise, on long term, almost everybody loses.
p → q [conditional]
q → p [converse] (con+vertere = to turn and to keep company) So the converse is "turned" or "flipped" around.
¬p → ¬q [inverse] means you negate the original conditional on both sides. From "invert" for "turned upside down." Maybe think of a cup or a bucket, flip it over it's no longer a cup or bucket. Converse... turn the cup so left is right and right is left, Inverse... flip the cup so it's not a cup
¬q → ¬p [contrapositive]
Henry
* Stop growing as a developer and do the same things forever (dead end)
* Enter management
* Go do something completely different.
There are plenty of technical challenges in that technology space to continue growing and producing amazing new things, but that exciting life is more commonly found as a hobby than employment. This is also a technology space with an exceedingly low barrier of entry and poor formal training, and so most related employment is directed to beginner tools to minimize disruption from employee turnover.
After 40 as JavaScript developer your ability to command increased compensation by switching employers evaporates and your increasing experience is of diminishing value.