Yeah, I'm about the same age and started noticing my ability to keep everything in memory falling at around the mid 20s. I mean, I'm still probably way better at keeping all manner of obscure details in memory compared to the average person (we exercise that so much in this profession it's only normal), but it's below the peak point, not enormously so but it's kind like having once been a top "athlete", years later you know you can't reach that peak performance anymore.
Also once you go through the full life-cycle of enough of your projects (that got shipped and a year or two later you have to pick it up and change it), you kinda figure out that even at peak "performance" you wouldn't be remembering much from a project from years ago and start adding comments to help you pick it back up and alert you to possible pitfalls you noticed and avoided but forgot all about in the meanwhile.
Fortunally I figured it out long ago that I've created a couple of principles around commenting that have repeatedly saved my ass years later: things like documention parameter assumptions in functions, actually writting down the "why we do this" or commenting before the code of especially complex algorithms (I actually design the algorithm to the comment first and only after than code it).
Oh ruck. At twenty I could remember the direct way through the Zac Mc.Kracken Mazes. And all the chords of our Bands songs. And all the Beatles lyrics. But heck… no code… now I at least remember the bash scripts…
I started a practice with my team on our wiki. We have a section named the Oamonomicon, since out system is named OAM. Any sort of weird one off request or problem gets documented there. What were the symptoms? What steps did we use to find the problem? Then if we start seeing a pattern of issues, we have a better idea of how to resolve them.
Yeah, I'm about the same age and started noticing my ability to keep everything in memory falling at around the mid 20s. I mean, I'm still probably way better at keeping all manner of obscure details in memory compared to the average person (we exercise that so much in this profession it's only normal), but it's below the peak point, not enormously so but it's kind like having once been a top "athlete", years later you know you can't reach that peak performance anymore.
Also once you go through the full life-cycle of enough of your projects (that got shipped and a year or two later you have to pick it up and change it), you kinda figure out that even at peak "performance" you wouldn't be remembering much from a project from years ago and start adding comments to help you pick it back up and alert you to possible pitfalls you noticed and avoided but forgot all about in the meanwhile.
Fortunally I figured it out long ago that I've created a couple of principles around commenting that have repeatedly saved my ass years later: things like documention parameter assumptions in functions, actually writting down the "why we do this" or commenting before the code of especially complex algorithms (I actually design the algorithm to the comment first and only after than code it).
Yes, very similar practices here.
@ProfessorPuzzleCode @Aceticon
Oh ruck. At twenty I could remember the direct way through the Zac Mc.Kracken Mazes. And all the chords of our Bands songs. And all the Beatles lyrics. But heck… no code… now I at least remember the bash scripts…
I started a practice with my team on our wiki. We have a section named the Oamonomicon, since out system is named OAM. Any sort of weird one off request or problem gets documented there. What were the symptoms? What steps did we use to find the problem? Then if we start seeing a pattern of issues, we have a better idea of how to resolve them.