How Can Programmers Remember Everything They Learn?
If you’re new to programming, it might seem like there’s so much information to learn, that it’s overwhelming. You might wonder, how do programmers remember all of those concepts, functions, and details? Do programmers memorize everything?
The truth is, they DON’T. It’s impossible for one person to remember everything about a programming language. As you get more experience, you’ll retain more information and hopefully develop a better understanding, but that’s different from memorizing everything. Also consider that many languages have periodic updates, so some details that a programmer remembers now, might be obsolete in a newer version of the language.
I’ve seen many students worry that they don’t have the memory capacity to be a good programmer, but please don’t let that discourage you. Don’t feel like a bad programmer if you can’t open up a text editor and crank 2000 lines of code completely from memory.
So What Can I Do to Retain More Knowledge?
Instead of worrying that you’re not a walking code encyclopedia, follow these study tips to increase your retention, while using a little bit of help to jog your memory when needed.
- Take notes when you are learning. I discuss this in more detail in this post on computer exam study tips, but as you learn new concepts, write down what goals they help you to accomplish, and why they are relevant. Make note of questions you have, and research to answer those questions. Whenever you make mistakes, write what you did wrong, why it was wrong, and what you will do differently next time.
- Review your notes regularly. Some people take notes, but never actually go back to review them! You spent the effort to write them in the first place, might as well get the most value out of them. Don’t just passively read; quiz yourself or make flashcards.
- Do a “brain-dump.” After you finish reading or studying a section, get some paper and write down as much as you can remember, without looking at the notes. Then refer back to your notes to see how much you remembered, what you got wrong, and what you forgot. You can also break the material into smaller, more manageable sections to do this exercise if you need to.
- Use autocomplete and autosuggest. Many integrated development environments (IDEs) such as Eclipse and Visual Studio provide hints as you type code. Also known as code completion, these features provide a pop-up list of possible completions for your code. Code completion can remind you of what variables your program is using, show you what member data and functions are available in a class, and link to help and documentation for class functions. If you’re a beginner, you might want to skip on the code completion sometimes as a challenge and opportunity to remember some of the information yourself (just use a plain text editor instead). But know that even experienced developers use code completion to save time and focus on solving the problem at hand. It’s kind of like learning arithmetic: you start out learning how to do it by hand, and then once you’ve mastered basics, you can use a calculator to solve bigger problems without doing all of the math manually.
- Get comfortable with reading documentation. The documentation is there to help; it’s a reference so that you don’t have to remember everything. Most languages, including Java and Python, have some sort of official online documentation, as do many code libraries and frameworks. There are entire parts of the language that you might not even use. For example, not all Java developers will do any database programming, so they might never even touch the related classes. And if they do end up working with databases for a brief project, they don’t have to memorize all of the Java database features. They use documentation to learn what they need, when they need it.
- Practice often, especially the core functionality. All languages have a set of core functionality that is the most useful for the most programs. For example, learning to work with strings and interact with user input are pretty useful components for much of your coding career. Out of necessity, you’ll get plenty of opportunities to practice them, and they’ll become second-nature to you. Think of how you learned to talk. There are a couple thousand words that we use every day, so much that we don’t really think about it after a while. But we might need to stop and check a dictionary more often if we’re reading a scientific journal or SAT prep-book, with many words we don’t normally use. Learning code is kind of the same way.
So don’t feel bad if you don’t remember all the code and everything right away, because not even experienced programmers memorize everything. Just try some of these tips, and keep working. You’ll eventually retain more if you keep practicing. More importantly, you’ll get a deeper understanding of what you’re learning, which is way more valuable than just memorizing facts!
Become a More Confident Programmer
I’ve compiled a short ebook guide of tips on how to learn programming, improve your problem-solving skills, and become a better, more confident programmer. If you are interested you can get Confident Programmer Study Tips here.
For more resources, check our About page. Feel free to share this content, or leave any questions in the notes!