CodeGym /Java Blog /Random /Effective learning (part 2)
Agent Smith
Level 38

Effective learning (part 2)

Published in the Random group
You can read the previous article here — Effective learning (part 1)

IV. Efficient learning strategies

Researchers have made significant advances in applying cognitive processes to education. From this work, recommendations can be made to maximize learning efficiency. Specifically, six key learning strategies from cognitive research have been consistently found to be very effective.

1. Spaced practice(When to study?)

At the core of it, spaced practice is a very simple idea and can be explained in a single quote by Hermann Ebbinghaus, the man who discovered the forgetting curve and the spacing effect: "With any considerable number of repetitions a suitable distribution of them over a space of time is decidedly more advantageous than the massing of them at a single time." Which means that to maximize long-term learning, practice should be spaced out, or distributed, over time rather than crammed into a short period. Doing it this way, that same amount of study time will produce more long-lasting learning. For example, it is much more efficient to practice for 90 minutes every day than practice for 8 hours straight once or twice a week. However, if you need to learn something really quick just to pass an exam or to prepare for a job interview which is tomorrow - cramming is a much better option, but you will likely forget most of it as quickly afterwards. Key aspects:
  • Start by creating a “spaced” learning schedule – set your learning goals and milestones. Study at regular intervals (ideally every day), while avoiding long breaks.
  • Unlike cramming, each learning session doesn't need to be very long and doesn't need to cover too many different topics. Divide up topics across the different sessions, but also avoid focusing on one single topic during each session (see interleaved practice below).
  • During each learning session always start by reviewing old materials first to reduce forgetting. Keep a checklist of what you’ve learned so far. Allocate a certain amount of time to new vs. old materials (for example, 75% time spent on new materials, 25% time spent on old materials).
  • When you sit down to study, it’s important that you don’t just re-read your notes. Instead, you should use effective learning strategies such as those we describe below.
  • While studying, make sure to take short breaks every now and then to stay focused. You might want to try pomodoro technique or its variations to boost your discipline.

2. Interleaved practice (What to study?)

Interleaving is another planning technique that can increase learning efficiency. Interleaving occurs when different ideas or problem types are tackled in a sequence, as opposed to the more common method of attempting multiple versions of the same problem in a given study session (known as blocking). Rather than studying very similar information in one study session, you might take things that are somewhat related but not too similar, and mix things up by studying those ideas in various orders. To what extent is this technique effective? The research on interleaving spans many domains: motor learning, musical instrument practice, and mathematics, to name a few. Typically, interleaved practice produces poorer accuracy and speed during learning, but improved accuracy and speed on a later testing session compared to blocked practice. And this difference can sometimes be very dramatic. Interleaved practice and spacing work really well together. That is, imagine that you are interleaving by practicing material you learned today, together with material you learned last week. That involves interleaving, but by bringing back information from last week, you’re now also doing spaced practice. Key aspects:
  • Switch between ideas during a study session. Don’t study one idea for too long.
  • Go back over the ideas again in different order to strengthen your understanding.
  • Make links between different ideas as you switch between them.
  • While it's good to switch between ideas, don't switch too often, or spend little time on any one idea: you need to make sure you understand them.
  • Don't worry if interleaving will feel harder than studying the same thing for a long time - this is actually helpful to your learning.

3. Retrieval practice (How to study?)

While tests are most often used for assessment purposes, a lesser known benefit of tests is that when students take tests they are practicing retrieval, which causes learning. The act of retrieval itself strengthens memory, making information more retrievable (easier to remember) later. However, the format of retrieval doesn’t have to be a test. Really, anything that involves bringing information to mind from memory improves learning. In addition, practicing retrieval has been shown to improve higher order, meaningful learning, such as transferring information to new contexts or applying knowledge to new situations. Practicing retrieval is a powerful way to improve meaningful learning of information, and it is relatively easy to do on your own. Retrieval practice, like spaced practice, tends to produce learning benefits after a delay. As was discussed earlier: cramming is a valid strategy too, but only in the short term. If the goal is longer-lasting, durable learning, then retrieval practice is the way to go. The more difficult the retrieval practice is, the more effective it becomes for long-term learning. It’s important not to fall into the trap of feel-good learning. For example, re-reading the information over and over makes the information seem more familiar, but this familiarity does not mean that you will be able to successfully recall that information later, or apply it on practice in new situations. Key aspects:
  • If you can find appropriate practice tests, make sure to attempt them – but without looking at your books or notes! Once you are done answering the questions, make sure to check your answers for accuracy. If there are questions that you got wrong, review the material using elaboration (see below).
  • If you don’t have practice questions (or you’ve already answered all of your practice questions a few times), you can make your own questions. This process takes time, but if you create a study group you can each create a few questions and trade. Just make sure that the questions aren’t too easy.
  • You want the questions to help you think back to the material you have learned and guide you to reconstruct the information. You also want to make sure to go beyond just remembering definitions of key terms. Try creating broader questions, describing and explaining various topics, and even coming up with your own examples of the ideas.
  • You can try just writing out everything you can remember on a blank sheet of paper. This technique is called “brain dump”. If you have a lot of information to remember, try breaking it up into sections.
  • Create flashcards to practice retrieval. The easiest way to create flashcards is to put a question or a prompt on one side of the card, and then put the answer on the other side. To use the flashcards to practice retrieval, look at the question side of the card and try to come up with the answer. Make sure that you are really retrieving the answer (by speaking out loud/writing/typing your answer before checking).
  • Try linking concepts by remembering how two concepts are similar/different. Create two stacks of cards – one with concepts, and the other with instructions for how to use the concepts to practice retrieval. For example, one instruction card could say “Pick two concept cards and describe how the two concepts are similar”, whereas another might say “Pick one concept card and think of a real-life example related to it”.
  • You can try to draw everything you know about a topic from memory. It doesn’t have to be pretty – it just needs to make sense to you. As long as you’re drawing what you know from memory, then you’re practicing retrieval.
  • While sketching, you can also try to organize your ideas into a concept map. A concept map is a way of showing how various concepts relate to one another. You create circles with ideas, and then create links between them that describe the relationship between the various ideas.
  • Or just use a copy-cover-and-check method – simply cover your notes, attempt to recall, and then uncover to check. This method has the advantage of requiring little-to-no added work before you start retrieval practice.
If you find and/or make practice questions for each category/topic of your current course, then you can easily combine spacing, interleaved practice and retrieval practice all together for best results.

4. Elaboration (How to improve understanding?)

Understanding can be developed through a process called elaboration, which involves connecting new information to pre-existing knowledge and describing things in many details. In practice, elaboration could mean many different things, but the common thread is that elaboration involves adding features to existing memories. There are three specific techniques that can be used to encourage elaboration.
  1. 4.1 Elaborative interrogation

    Elaborative interrogation is a specific method of elaboration where you ask yourself questions about how and why things work, and then produce the answers to those questions. The specific questions to ask will depend, in part, on the learning topic at hand.

    As you are elaborating, you are making connections between old and new knowledge, making the memories easier to retrieve later. The important thing is that the questions lead to describing and explaining the main ideas, and making connections between various ideas.

    This process of generating elaborative questions and finding the answers to them has been shown to be better for learning than simply re-reading the information. It is also a very flexible strategy because you can do this with other learners and on your own.

    Key aspects:

    • Start by making a list of all of the ideas you need to learn today. Then, go down the list and ask yourself questions about how these ideas work and why. As you ask yourself questions, go through your course materials (or search the web for more detailed information) and look for the answers.
    • As you continue to elaborate on the ideas you are learning, make connections between multiple ideas to be learned, and explain how they work together. A good way to do this is to take two ideas and think about ways they are similar and ways they are different.
    • At the start, you can use your notes to help you and fill in gaps as you elaborate. However, ideally, you should work your way up to describing and explaining the ideas you are learning on your own, without any additional materials in front of you. In other words, you should practice retrieval of the information!
    • Try explaining what you already know to other learners by answering their questions, helping them to solve problems or even by writing articles. You might end up learning the material really well because you have to get good enough to be able to teach it to someone else. In fact, even just expecting to have to teach the material, without actually teaching it, produces great learning gains.
    • If you are solving a problem, it is very beneficial to use the self-explanation technique. Basically, you are explaining each step in your mind, as if you were talking out loud, while working on the problem.

  2. 4.2 Concrete examples

    Abstract ideas can be vague and hard to grasp, and humans are better able to remember concrete information than abstract information. As such, concrete examples of abstract ideas can be very helpful for understanding and remembering.

    Concrete examples can provide several advantages to the learning process:

    1. They can concisely convey information.
    2. They can provide learners with more concrete information that is easier to remember.
    3. They can take advantage of the superior memorability of pictures relative to words.

    Key aspects:

    • When studying, try to think about how you can turn ideas you’re learning into concrete examples.
    • It is important to find multiple but different concrete examples to better understand abstract concepts.
    • Making a link between the idea you’re studying and a vivid, concrete example can help the lesson stick better.
    • Creating your own relevant examples will be the most helpful for learning, but before you get to that stage, if possible, always verify your examples with an expert.
    • In programming, it is much better not just to read and understand a specific code snippet, but also to try it yourself (ideally without prying).

  3. 4.3 Dual coding

    Dual coding is the process of combining verbal materials with visual materials. Pictures are often remembered better than words. Dual coding theory is the idea that when we combine text information and visual information, our learning is enhanced because we process verbal and visual information through separate channels. The idea is that when you have the same information in two formats – words and visuals – this gives you two ways of remembering the information later on.

    Key aspects:

    • When you are looking over your study materials, find visuals that go along with the information and compare the visuals directly to the words. Cover up the text, and try to describe the visuals with words.
    • Another time, you can do the opposite: read the text, and try to create your own visuals.
    • This technique will be helpful regardless of whether you generally prefer pictures or words.
    • It is important to ensure that the provided pictures are helpful and relevant to the content.
    • Work your way up to practicing retrieval by drawing what you know from memory.

V. Additional recommendations

Adopt a positive mindset

A growth mindset is the belief that intelligence can be developed. Learners with a growth mindset understand they can get smarter through hard work, the use of effective learning strategies, and help from others when needed. It is contrasted with a fixed mindset: the belief that intelligence is a fixed trait that is set in stone at birth. There are many books and articles on this topic, but this picture summarizes the main idea.

Use advanced reading methods

If you are reading a textbook, try using SQ3R reading method instead of ordinary passive reading. This will help you interact with the presented information so that you can better internalize and learn.

Take notes

Taking notes might help you better understand and memorize material. There are many note-taking systems worth exploring.


If you want to get better at any complex skill, you need to be systematic and deliberate in the way you practice. Rather than practicing things that you’re already good at, deliberately challenge yourself and stretch your abilities when you practice.

Intrinsic Motivation

When you’re intrinsically motivated to do something, you do it because you want to. It’s inherently interesting or enjoyable to you, so you do it for the fun of it. In contrast, when you’re extrinsically motivated to perform a task, you do it because it satisfies some external goal. Intrinsic motivation and personal interest are associated with greater learning across many studies.

Tips for studying at CodeGym:

  1. Be prepared to use a lot of additional sources (books, videos, articles, other courses, etc). This course alone won’t make you a good programmer. And no other course will. Google is now your best friend.

  2. Always read the comments under each lecture and each exercise. You will often learn much more from other learners than from course materials alone.

  3. After solving an exercise, always check the “correct solution” and compare it to yours. Checking other learner’s code is also very beneficial. Never underestimate your observational learning.

  4. Don’t hesitate to ask questions in the Help section or make a Forum post if you have problems. There are no silly questions.

  5. You can effectively use Help section as an infinite source of retrieval practice by helping other learners with problems you already solved.

  6. Articles section has a lot of useful material. Develop a habit to read at least several articles every day.

  7. Remember, your goal is not just to beat this course or get some achievement. Your goal is to become a good programmer, who is competent enough to get hired for an interesting and well paid job. Do whatever it takes to get there and never give up.

Suggested books:
  • Understanding how we learn (Y. Weinstein, M. Sumeracki)
  • The Learning Brain (T. Polk)
  • Make It Stick: The Science of Successful Learning (P. Brown, H. Roediger, M. McDaniel)
Comments (3)
Andrei Level 41
12 February 2021
Yes, Mr Smith, great article! 🧐🥳🤝
Isma Level 41, Madrid, Spain
29 January 2021
Huge articles Mr.Smith. AnkiDroid is a flashcard app that uses the spaced learning keeping in mind the forgetting curve. It's free for android users.