How to Learn Programming

Photo by RetroSupply on Unsplash

How to Learn Programming

TL;DR

  1. Mind-mapping: use radially clustered diagrams to help you create associations.

  2. Interleaving: mix up the order in which you learn things.

  3. Recall: write or use flashcards or make notes.

  4. Spaced repetition: review information at increasing intervals to commit it to long-term memory.

  5. The Feynman Technique: explain something in simple, layman's terms.

  6. Active learning and diffused learning: learn actively then reflect on what you learned while diffusing your focus to something else.

  7. The Pomodoro technique: schedule short, frequent periods of work followed by short breaks.

  8. Exercise regularly to enhance your ability to learn new information.

Takeaway: Using these techniques can help you learn more effectively.


How to learn programming can be a challenging process, but you don't have to face it alone. Everyone learns differently and I'm here to help. You may notice I haven't mentioned specific resources in this post. As aspiring programmers, we all find our preferred learning style and stick with it. This is part of what helps us become unique individuals in the tech industry (and means you need a personal learning style when choosing a programming language too).


Section 1: Mind-mapping

Mind mapping is a technique used to get your ideas and creativity out there, preferably on paper. Brainstorming essentially.

This is how you get started: get a piece of paper, and rotate it to a "landscape" view. Write down the idea or topic in the center of the paper, and from there you will write down the thoughts and ideas that come to your mind around the main idea.

If you wanted to make a to-do list app, and you wanted to brainstorm the functionality of the app. You could write down words of what you wanted the app to do and easily have a pick of ideas to choose from.


Section 2: Interleaving

Interleaving is a technique you use to improve learning by "jumping" between different topics. This helps in retaining new information and keeps learning "fresh".

For example, say you're learning about factory functions and the topic isn't necessarily making sense. You could move on to learn a new topic like es6 javascript modules and by doing this, you're allowing your brain to process that information and maybe that new topic will make the previous topic make sense.


Section 3: Recall

After you've read about a topic, the next best thing to do would be to spend 30 seconds writing what you remember about it down. This is what you call recall. It's the process of trying to remember what you've just read or learned about by writing it down or answering questions of your own to remember it.

If you wanted to remember the essential CSS selectors, the way you could go about it is after learning about them, use them immediately without referencing them.


Section 4: Spaced repetition

Spaced repetition is a learning technique that is used to remember abstract information by reviewing topics over some timeframe. This means that for something to stick in your memory, you will learn about it, recall it and then try again in an hour and see if you remember it. Anki is a great tool used to assist you in learning spaced repetition.

Using spaced repetition is a great way to increase your chances of remembering programming concepts that are asked as questions during the job interview process.


Section 5: The Feynman Technique

Coined after the theoretical physicist, Richard Feynman, this technique is a sure way to understand what you learn. You do this by explaining topics or concepts as though you are explaining them to a child. If you find yourself not able to explain it, then it's a sign you didn't understand the concept.

This is especially true in learning programming as concepts are usually filled with jargon tech words and are hard to comprehend initially.


Section 6: Active learning

You usually want to use active learning as a way to learn abstract topics. This is when you are engaged in learning and doing the work, and experimenting while learning about a topic.

This is essential especially in learning programming because if you were only learning by consuming and not coding along or experimenting, you may think you are learning but you're not retaining the information. Active learning is also a great way to escape the dreaded tutorial hell experienced by many programmers


Section 7: The Pomodoro technique

This list is in no particular order of best to worst technique but if it were, I'd say this technique would be at the top of the list. You set aside a timer of 25 minutes and you do absolutely nothing but the work you set out to do, maybe it's learning. No distractions, nothing. After the 25 minutes, you take a 5-minute break and then repeat. By the time 2 hours or however long you set out to do work, you will find yourself in a state of focus that is usually achieved during your working time. This technique is so vital in learning programming as it helps you to progress faster in your learning by being focused.


Section 8: Exercise

We all know that exercise is essential to living a healthy and happy life. If you wish to boost your productivity, exercise is the answer. It could be as simple as taking a walk. Not only does your productivity go up, but the overall choices you make also become better and your mental clarity does so as well. Your mind also works while you're doing exercise. So say you're stuck on a problem and dealing with a nasty bug in your code, and the solution might come to you during your exercise.


I can't tell you how to best learn programming (and which language), but I hope that these tips will help you succeed in your journey toward becoming a programmer. If nothing else, I hope that they've inspired you to learn something new!

A bonus and a thank you for reading all the way through:

An absolute gem of a course

Learning How to Learn