It depends on the task, but overall, for the work I do as a software developer, yes.
I would say I have less energy, but I need less energy, and I produce better results in the end. I'm better at anticipating where a line of work will go, and I'm quicker and better at adjusting course. There are a lot of multi-hour and multi-day mistakes that I made ten and twenty years ago that I don't make now.
The raw mental energy I had when I was younger allowed me to write things I couldn't write now, but everything I write now is something that other people can read and maintain, unlike twenty years ago. It's very rare that writing a large, clever, intricate mass of code is the right answer to anything. That used to frustrate me, because I was good at it. I used to fantasize about situations where other people would notice and appreciate my ability to do it. Now I'm glad it's not important, because my ability to do it has noticeably declined. In the rare cases where it's needed, there are always people around who can do it.
Another thing that is probably not normal, but not rare either, is that the energy I had when I was young supercharged my anxiety and caused me to avoid a lot of things that would have led to better outcomes, like talking to other people. I'm still not great (as in, not even average for an average human, maybe average for a software developer) but I'm a lot better than I used to be.
I was young once, 25 years ago I started programming, and I feel as though I have at least another 25 in me, if not more.
I'm less likely to code until midnight, but more likely to have the problem solved before clocking out at 6pm ;)
As we age, learning vs getting-paid graph first flattens, then either grows very slowly or not at all.
Im guessing that is where the fatigue part comes. You are not exactly growing too much after working hard after a while.
In fact reducing hours worked might correlate with happiness more as you can allocate free time to other rewarding tasks.
At the same time, I can't context-switch like I used to. Once I get into the zone, no problem, but interruptions affect me much more than when I was 20 (or even 40). I can almost feel the tape changer in the back of my head switching tapes and slowly streaming the new context into RAM (likely because all the staging disks have been full for years).
As for long coding sessions - I relish them when I get the chance, which isn't as often as I'd like. Once the tapes have finished loading and I'm in the zone, I can stay there half the night. So that hasn't changed with age.
As your absolute strength gets stronger, the same exercises and workouts get proportionally more fatiguing.
5 sets of a bench press at an 80% of max load, taken within a rep or two of failure, done by a first-year lifter, is incredibly different from that same scheme being done by somebody who's lifted for 10 years. So more advanced lifters tend to do things like lighten the load and use variations of lifts that have more favorable stimulus-to-fatigue ratios.
Anyways, I thought maybe as an advanced programmer, something here could be analogous. You've already done all the coding and thinking to figure out easier and lower-level problems. So what you're left with are the more cognitively challenging parts of coding, which should be more mentally exhausting per unit time. Whatever is '80% difficulty' for you is probably way more advanced than what you were looking at 10 or 20 years ago.
> Is it reasonable to assume that the natural decline in cognitive performance over time is offset by the gains in experience and expertise?
So according to Carlsen, for chess the answer is no.
I personally also suspect the answer for programming is the same. Most, if not all, of the hotshot programmers we know became famous in their early 20s. Torvalds started writing Linux at 21. Carmack was 22 when Doom was released. Many of the most famous AI researchers were in their early 20s when doing the most groundbreaking work. Einstein's miracle year by the way was also when he was 26.
Also, Hans Albert Einstein was born during Einstein's miracle year.
This was in an era when fathers had little to do with childcare. I don’t know about Einstein’s specific situation, but even 40 years ago almost half of fathers had never changed a diaper.
The famous anti-case for this is J.R.R Tolkien started writing Lord of the Rings when he was about 45.
Writing is not programming but they are not that dissimilar. Especially in this context.
What I've learned over the years is life is actually not fair and everyone is different. You can be razer sharp and reasonably healthy at 83 or be in great shape and die of a brain aneurism at 12 with no warning.
Basically don't let studies or other people's results persuade you into not starting or giving up.
I've had a different experience.
IMO there's a huge overlap in skills when writing, coding, making videos and playing guitar.
They all boil down to the idea of getting something out of your head and then refining it until you know when to stop refining based on whatever criteria you're optimizing for at the time.
This is based on writing over a million words and making hundreds of videos over 10 years on my blog and programming for ~20 years while casually playing the guitar for about as long.
What aspects make them feel different for you?
I took that he said that others have caught up and he is just not motivated to do the type of studying to improve even further at this point.
There is a process we don't really have a name for that was best summed up by the boxer Marvin Hagler:
“It's tough to get out of bed to do roadwork at 5am when you've been sleeping in silk pajamas”
The demotivation of success. Of course, that is also going to correlate with age and be very hard to disentangle. At the same time testosterone levels will be past peak, adding another variable in the mix. Plus actual mental acuity past peak.
In other words, as someone pushing 50. Getting old kind of sucks systemically.
But i haven't stopped learning things, apart of the software-making-related, 2 years ago went into e-foiling, and some half-related more-technical adventures. So maybe that is keeping the dementia at bay..
Maybe up to a point. Most of the tools and languages I use daily are fairly recent, or at least new to me. I don't have much of an advantage, if any, compared to my younger colleagues.
There are certainly things I do better now than 10 years ago but I think I'm slowly declining though. Fortunately, there's more than one way to be productive professionally so I hope I can keep up for a few more year.
There are very few capabilities in mainstream languages today, if any, that weren’t available in Common Lisp back in the 1980s or 90s.
I do think it has more to do with daily chores (work, family) than my age. I noticed that, despite being easier to get frustrated nowadays (because I get exposed to more sources of frustration) than I was in my 30s, I'm actually more perseverant than myself 10 years ago. I managed to be very close to wrap up a side project, the first time in my coding life. Of course the scope is smaller than my previous projects but I'm surprised that I didn't back down easily, considering how many times I banged my head during the first few weeks.
I guess being exposed to more frustrations does improve ones resistance to it. To be precise, I get agitated easily, but that agitation doesn't seem to burn me out in the middle term -- while in my 30s I didn't get agitated very often but every time it burns me down to the point I left my side projects.
As someone who has been writing software and/or managing operations for 20 years here is what I have noticed:
* The more experienced people get the more cognizant they become of fatigue in that they know when to take a step back.
* The more experienced people get the faster they get in that they know how to approach repeated problems.
* People do not necessarily get better with experience. Some developers never fully embrace automation, especially if they are reliant on certain tools versus original solution discovery.
Based on that it’s natural that some older developers tend to decline with age while others continue to grow in capability and endurance. The challenge is to identify for that versus those who mask it.
can you expand on that for clarity ?
I wouldn't say, "decline," to be charitable. I tend to lean more on mathematics and writing. That often makes up for the lack of stamina.
When I look back on code I wrote 15, 20 years or more ago... it's fine but it lacks the sophistication I have now. I didn't know what I didn't know back then and had to learn. I can see in my code where I encountered a problem and instead of solving it I added more code until it, "worked."
I wasn't university educated so that's explains a bit of it. I didn't start picking up pure functional programming and formal methods until my mid thirties (gosh, has it been a decade already?). I worked through Harvard's Abstract Algebra at 38. I'm leaning more about writing proofs and proof engineering in my spare time while continuing to stream work in Haskell on various libraries and projects. And I'm in my 40s -- I'm doing more programming and mathematics now than ever.
I'm also playing in a band, practice calisthenics and skateboarding, and have been improving my illustration skills with ink.
It seems like the discovery of the article is that if you don't use your skills they start to decline as early as your late 20s. All it takes is practice to maintain and improve them!
I might get a little tired every now and then and can't keep every library I've used in my head all at once. But I tend to rely more on mathematics and specifications and writing. I write less code now. I remove code. And I keep programs and systems fast and correct.
Nothing declining here!
Not everyone has that though, even among people who claim to be well experienced. If those among us are aging and never fully developed the skills to save on manual effort they will likely appear as if in decline. Others that continue to find news ways to deliver higher quality at ever decreasing costs will continue to demonstrate superior value.
> All it takes is practice to maintain and improve them!
That is largely true for anything in that maintenance costs less than recovery and maintenance costs more than original solution delivery for someone well practiced at delivering original solutions. Not everyone invests in the practice to do this though.
It depends on what you're doing.
The stronger cognitive strength needed, the less it can be replaced with experience.
Some chess grandmasters are teenagers. Maybe maths intensive ML research could be a bit comparable. But that's... Maths. Or distributed software algorithm optimizations?
In the vast majority of software work (as in > 99% ?), experience is more important, though, if you're bright enough when young. Or so I think
(But when closer to 80 or 90 or 100 years, that's different of course.)
Terms you want to check for more detailed info are 'liquid intelligence' and 'crystalized intelligence', but you basically nailed it.
After all, trouble shooting can be viewed as a productive thing.
Interesting idea though.