I often find myself in situations with engineers on the level above me (I'm a mid) where they are grasping the mental models, comprehending the code Infront of them and managing to remember a lot of context that helps them as they work through problems. I'm personally left feeling a bit dazed and confused. I was wondering if there are any more senior engineers here who recall having similar experiences when they were a lower level and how they overcame those feelings to move more productively through code when working with someone else.
Hey! Thanks for the question.
I'm sorry to hear you don't feel on-par with some of your colleagues in terms of this. However, it's not the worst thing. I don't have a great memory either.
So here's my solution to this: Take great notes!
I'm a fan of Notion but I use OneNote at work because it's what my company approves. Be diligent in writing down all the important information. Tag them so you can easily find and recall them.
If you're feeling dazed and confused, consult your notes. Have the wisdom to realize to write it down immediately, no matter how small. That's how I would start.
Additionally, most of these engineers have probably been there longer than you have, so they have a lot more context and have probably gone through it a few times.
Good luck!
As Xue mentioned, the solution is to write stuff down. The good news is that so much of software engineering has organic avenues to do this:
In a nutshell, make it so that whenever you come into contact with anything (e.g. new code, old code, team tech review meeting, product discussion), there is a great chance there's some handy artifact attached to it that you can look at to quickly ramp up your understanding.
Depth of memory is a natural talent, but I 100% believe that it's something where a lack of it can be overcome with hard work and diligence 💪
I find that the top skill for staying organized is categorizing the information you're managing on behalf of your working memory.
What categories work for your needs & your brain is going to be different from other people's and they're going to change.
You're probably going to start off with categories that don't work for your needs. It's okay! Treat it like code. 1. You're capable of improving your skills. 2. Reiterating is necessary to see incremental progress.
Categorizing actual notes is great, but categorizing information mentally as you take it in is also helpful because it creates associations for long-term memory storage & retrieval.
So, how do you get better at identifying what categories work best for you?