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?
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 plenty of new students who 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 out 2000 lines of code completely from memory.
Instead, follow these tips to increase your knowledge retention, while using a little bit of help to jog your memory when needed.
- Take notes when you are learning. I touched on this in a previous post, 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 might have, and do a bit of research to answer those questions. Whenever you make mistakes, write down what you did wrong, why it 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 either, quiz yourself or make flashcards. Do a “brain-dump”: after you finish reading a section, take a sheet of 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 got correct, what you got wrong, and what you left out. You can break the notes into smaller sections to do this exercise, if you want.
- Use autocomplete and autosuggest. Many integrated development environments (IDEs) such as Eclipse and Visual Studio provide hints as you type your 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 even link to help and documentation for class functions. If you’re still learning as 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 having to do all of the addition and subtraction manually.
- Get comfortable with reading documentation. The documentation is there to help you; 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 you might use. There are entire parts of the language that you might not even use; not all Java developers will do any database programming, for example, 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 can use the 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 using them, and they’ll start becoming 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 more often and reach for a dictionary if we are reading a scientific journal or SAT prep-book, because it’s a set of vocabulary we don’t normally use. Learning code is kind of the same way.
So don’t feel bad if you don’t remember everything right away. Just try some of these tips, and keep working at it. 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 am also putting together a guide on how to learn programming, improve your problem-solving skills, and become a better, more confident programmer. If you are interested you can pre-order here.
Feel free to share this content, or leave any questions in the comments section below!