A couple of days ago I had a conversation with a friend who is learning to program.
We were talking about the difficulty of remembering what each concept means and what every keyword does. The conversation eventually led to this question:
Ok, but when will I stop needing the docs?
I (probably most people) had the same feeling when I was learning how to program. Somehow I envisioned that eventually, after learning for a very long time, I would know every single detail of the language I am using, and every single function of the libraries I use.
It took me a few months working as a software developer to learn that this is not how you write software. I want to share some of the things I've learned over the years about the relationship software developers have with documentation, their memory, and other online resources:
- Most of the important keywords and concepts will eventually stick, given that you write enough code. This happens every time you start learning a new programming language or technique: In the beginning, you will need to look up lots of stuff, but the more familiar you become with the tools you are using, the more details your brain will retain.
- Understand concepts, look-up details: It's much more important to understand the basic concepts and ideas and where to use them than to know details about a language's syntax. When you develop "programmer intuition" you will know what to use and when to use it. Everything else can be found on the documentation.
- Everyone uses docs, everyone looks things up. I used to have this weird idea that veteran programmers never look anything up. It doesn't happen that way, every seasoned programmer understands the value of good docs and that the important part of programming is not the stuff you can memorize, but the connections you can make between concepts and how to turn specs into good software. Go to the office of any software development team and you will find the same thing on every table: One monitor has a text editor or IDE, and the other has docs.
- Use your exocortex. All those notebooks, doc pages, books, and basically anything where you can write down details are there to help you. They declutter your brain from specifics and let you concentrate on the important stuff. Remember, your brain has limited capacity, use it where it matters.
That's it, do not stress too much if you can't remember everything you learn. Just keep writing code, keep building things, keep asking questions, and looking things up. Eventually, all these things will become second nature. And the ones that don't, it's fine, you can always find them in docs.
Thanks for reading!