I've always had a terrible memory, both short-term and long-term. But this has been an advantage, in a way: I could never memorize material and bluff my way through. Instead, to remember it, I had to understand it. I think this helps partly because you can always work it out from first principles (and just remembering there's some tricky bit somewhere around here), partly the familiarity required for understanding helps embed it, but mostly that I've distilled it to a very simple model in my mind, that I've related to other systems I already know. The meta-model becomes the more interesting thing.
It's hard work to uncover this model, often requiring chasing up foundations, to see what's really going up. And of course, sometimes you end up with the wrong model (or a limited one). Unfortunately, most subjects don't seem to be taught in terms of understanding - but I've had some rare lecturers and textbooks that are so clear, you can work out what they'll say next, and solve example problems the first time you see them.
I've always thought this understanding-oriented approach is a strong long-term strategy, as I age. Although it means some subjects are too hard for me - like human languages, history, geography, biology, medicine... and enterprise application development (but I'm good at libraries).
I think most people are in the same boat as you in terms of learning. I think "bluffing your way" through classes or interviews only sets one up for failure later. Learning the basics might be boring but one will find trouble getting to the fun stuff without a strong foundation in the concept.
You would really like the course, "Learning How to Learn" on Coursera [0]. The instructor wrote the book, "Mind for Numbers" [1] which is also great.
The course and book teach a great framework for actually learning and comprehension.
I'm somewhat older and after retiring a little early I decided to return to university. I confess that the experience is both humbling and frustrating because I'm finding it much, much more difficult than the first time around.
I had the fantasy of getting a degree in a completely unrelated field and finding a fun part time gig. Now, if I'm honest with myself, I'm not really sure that I'm up for the task... and that's really disheartening.
My aunt was cleaning the houses of rich people for a living and then when she was in her late 40's she decided to return to school. She ultimately earned her degree in Accounting in her 50's and now she does all of the rich people's taxes that she used to clean for.
I've had a few students who were retired and were learning just for their own interest but most of my "older" students are going to school to get themselves to a paycheck. As someone who has learned programming on my own for some hobby projects, learning programming is probably not the fastest way to a stable income. Math, Sciences, and Computer Science are very demanding programs and can be challenging for "older" students, not because they can't do the work but because college is hard for someone with kids, mortgage, car payment etc.
I am really fascinated by this article, and hope more research is done. I'm not near as old as those candidates, but still feel the effect. The older I have gotten, the harder it is to remember things or learn on the fly.
I remember being 21 at a company, and claimed, and could, write anything they wanted. The older members slowed me down with their inability to understand, well, to me.
But I was writing awful code. To me it was beautiful and worked fine, but as I learned more in years coming I learned design practices and testability, which were nonexistent.
I think this is normal, but to me, sad. I have learned some bit of wisdom in these years, but can admit my brain isn't as fast as it once was. Where's the divide, where do I go? I'm a software engineer, that one day will be replaced with a much younger, headstrong kid, who is much more productive, just as I was back then.
"The older I have gotten, the harder it is to remember things or learn on the fly."
I've found recently (I'm 51) that my ability to remember the names of people has got a lot better - something that I used to be terrible at. I'm not aware of any areas where my memory has got noticeably worse, not that I can remember anyway.
This might be a function of increased practice with socializing, and thereby increasing your "social IQ". I am in awe of Bill Clinton's famous ability to recall the name of every person of note he has ever met, even years later, and pick up the thread of conversation where they left off without skipping a beat. In shorter timeframes like an evening, he recalls everyone's first name he meets at a gathering (I've read of 40+ individuals recalled), what they talked about, and uses this skill to circulate the room and say goodbye to everyone.
I figured out this skill is like a muscle; use it or lose it. The more I put myself out there and greeted people and actively listened to them, the greater my recall ability strengthened over time. Personally, it helps me recall better if I take an active, compassionate interest in the person; somehow, the emotion makes the recall more persistent for me, but YMMV on what techniques help.
If you are raising young children, I've read that you start this skill early by asking the children before each party/gathering that they are expected to learn the name of one new person they have never met before, learn one fact about that new person, and remember the names of everyone they already know from before (children's parties usually are planned enough that a list of most everyone is known in advance, making this part easier). After the party, the children then describe everyone they met, the one new person they met, and what they talked about.
I never devoted any effort to learning how to listen until the past few years. It makes a huge difference in having a good conversation. It's lots of fun to bring back what someone said earlier, often in a humorous way.
It helps to show interest in your conversation partner, not as technique of influence, but because people can be generally more interesting if you pay attention.
The number one indicator of poor listening for me is holding a response in my head and just waiting until the other person finishes talking so I can spew my wisdom. Taking an improv class or three helps a lot in learning to listen.
Of a similar age and can also remember names pretty well - but only because I have developed tricks to do so.
I have been learning Spanish for the past year and find it incredibly difficult to retain things I would have found easier when I was young.
With numbers and general vocabulary I find the same tricks I use for names works OK but for rules of grammar (which are absolutely essential for speaking Spanish fluently) these tricks are of no use at all.
One bizarre thing that I can't remember is names of plants and trees - a bit unfortunate as we've just purchased a house with a decent sized garden and I've taken up gardening.
But I've never been able to remember names of plant and trees even though I generally have a ridiculously good memory for "useless trivia" as my wife puts it. :-)
Fluid intelligence decreases with age, but crystallized intelligence continues to grow. You (metaphorical you) really are slower than the younger, headstrong kid. All hope is not lost though, you're still valuable on the market, you just present a different value proposition than you did in your youth.
As I get older, I desire to be less random and more precise. I don't think I am smarter or dumber than I was 20 years ago. I used to "ship it" faster, but now I realize it's because I didn't really understand the problem.
> You (metaphorical you) really are slower than the younger, headstrong kid
It pains me to think that others are put off by this. My old self was indeed much faster, and had plenty more stamina, but all that means I could make the wrong decision at half the speed for twice the time. I wouldn't go back if I could.
And employers recognize this. There's a reason senior developers get paid more than junior developers. And there's also a difference why those two groups are often given different roles.
Different industry (chef here), but a similar experience. I wanted to try everything and thought my way was faster, now I'm older and more experienced I realise I wasted so much time on little things, and didn't grasp the big picture.
I have worked in software too, although I started later, and I think that's just how things go. As a chef I don't (edit) fear newer chef's, I know they have a lot to learn, and from my (limited) experience coding, I (would like to haha) assume it's the same.
You said it yourself, though. You were more productive by LOC but you weren't more effective. There's a reason we don't start out as senior devs and regress into juniors as we age. The more we know, the more we know about the things we don't know.
At the same time, don't let that experience weigh you down. Try to embrace breaking out of your comfort zone like you did when you were young.
I don't want to sound discouraging but the problem with the profession is multifold. First the problem is that the domain is very large and is constantly changing. So the time investment is rather large to learn a significant enough chunk to be useful. Second problem is that it requires a lot of cognitive load in terms of remembering many different things and having a good intuitive sense of why things are not working, which again requires a lot of knowledge and experience. Third is the problem with the industry itself, it's not properly valued by employers. A sub-par programmer for many of the employers is completely useless. The low end employers all have no money to spend, but yet want one person to do a job that requires deep knowledge of many different things. All of these things taken together make a very difficult profession to get into in your 50s, 60s, or 70s as it will take you about a decade to get any good at it and then you will be fighting an uphill battle to actually get a proper job as businesses don't find you in their ideal demographic when hiring.
The only way I remember is by doing exercises. I'll read examples and understand immediately then not bother with the exercises only to forget later unless I've done X instead of just learning X. If I have 20mins to spare I'll often grab a text I've done and try and redo a few of the exercises to see if I can remember and that also helps, I learned that method from an older post here from somebody who suggested redoing material 6 months after to help remember.
> I'll read examples and understand immediately then not
> bother with the exercises
It's a trap a.k.a. the illusion of understanding. When you actually try to do something you think you understood from just reading/watching, it turns out a lot of small but essential parts were missed.
I'm 63 but learned to code a long time ago. My ability to see connections, abstractions and the like is better than ever. I do find that distractions like background noise or other competing tasks reduces my ability to solve the complex problems. I have to really isolate and focus. I also find benefit from listening to http://brain.fm
56 yo here. Since a year on a learning spree: Docker Swarm, CI/CD, React, RN after a life of C/PHP/Python and -later on -C-level management. Not aware that I'm slower these days, but slightly harder to focus, so using a headset.
I've got a two year plan. 2017 CSP (Certified Scrum Participant) then in 2018 take the http://fast.ai course. Maybe the Stanford ai course as well. 63 and still learning.
I do notice that while I can't keep the 30th API I've used in my head for instant recall, I am much faster at finding the big picture. I'm a big fan of diverse teams. A younger programmer can just plow ahead without my careful consideration, but that helps keep me from stagnation. Similarly, I can contribute the big picture stuff to make the long term smoother and reduce technical debt.
I haven't seen brain.fm, but there's so many tools that can help me improve the way I work.
I feel the problem is that people are not using the correct metaphors. Everyone is a programmer; every time you ask someone to do something for you you are programming.
I direct one to the opening of Structure and Interpretation of Computer Programs to really learn what programming is:
We all instruct and abstract, but imprecisely, because the people we're dealing with can either fill in the blanks, or they're inclined to agree with and follow us even if we're wrong. I remember one of the first things my programming teacher said was: Computers are stupid. They can only do what you tell them. That's a hurdle.
The primary task of a programmer is to direct with abstraction being a tool of linguistic direction, or simply the compression of lower level ideas into higher level concepts.
It's hard work to uncover this model, often requiring chasing up foundations, to see what's really going up. And of course, sometimes you end up with the wrong model (or a limited one). Unfortunately, most subjects don't seem to be taught in terms of understanding - but I've had some rare lecturers and textbooks that are so clear, you can work out what they'll say next, and solve example problems the first time you see them.
I've always thought this understanding-oriented approach is a strong long-term strategy, as I age. Although it means some subjects are too hard for me - like human languages, history, geography, biology, medicine... and enterprise application development (but I'm good at libraries).