As an undergraduate, I wondered how it was possible to write code professionally, because I could only barely fit the semester-long programming assignment in my head. When I asked my professor about it, I got an independent study credit to learn about UML.
UML (as a representative example of thoughtful documentation) is a partial answer. But actually a much larger part is that with practice I can hold a lot more code in my head. Today, that semester project seems trivial and if I see a stack trace I can tell you how to fix the bug that caused that exception to get thrown.
As a senior dev, I'd answer "how do you remember what your code does?" with
- As you work, you get better at just remembering
- As you find patterns and follow them, you'll have less to remember (I bet I know what the
downloadUnpackUpdate()
method does!) - As you do the first two, you'll learn to recognize when comments are helpful