Why you won’t retain much of what you learn

You’re on this exciting journey of learning Python. After a few weeks, however, you decide to reflect on all the things that you’ve learnt. For some reason, you find it difficult to remember what was covered in prior part of the course. When you open up that particular chapter of the book, or that section of a video course, things come back to you and it all makes sense, only for you to forget it all again in a few hours.

You get this uneasy feeling, and your inner voice tells you, “If I can’t remember all that I’ve learnt, then how would I apply it when the time comes?”

If I can’t remember all that I’ve learnt, then how would I apply it when the time comes?

You think you’re learning, but you’re just repeating

Does this sound familiar?

You open the next chapter of your book or the next video in your course It shows you some snippet of code with some explanation. You nod with understanding. If you’re a good student, you’d even try the snippet on your local machine. It’s surprising to see a lot of people just passively viewing lectures or reading books without even trying out what they’re learning. The code runs without error and you get the expected output. You move to the next chapter now that you are completely satisfied that you’ve understood the current one.

Yet… you won’t remember what you did for most parts. Why? Because in the grand scheme of things, all you did was look at a book/course, copy some code, run it. It was merely an act of copying.

That’s one reason I don’t like the premise of “Learn Python the Hard Way.” The only hard part about it is the tedious typing without understanding. It’s somewhat helpful, because a lot of programmers don’t know touch typing (although they should). But when was the last time you saw someone grow intelligent by just mocking someone else?

The ways in which rote learning can hurt you without you even realizing it

A friend of mine and I were working on something, when I learnt that he was doing a Python course. He even showed me his progress on a popular website. He had covered all major data structures like lists, sets, dictionaries, and tuples.

I said, “That looks impressive. Could you tell me, what’s the difference between a list and a tuple?” Apart from defining them using the same words as the course, he readily admitted that he didn’t quite know the answer to that one. He also quickly realized the point I was trying to make.

He did the course properly. He also completed all the exercises. As per the course, he had learnt all the basics. Yet, it did not teach him how those concepts relate. If you didn’t know the basics, then how would you decide when to use a list and when to use a tuple? Do you think you’d become a good programmer with such bad basics?

How you can understand and remember things that you learn better

Remember the first time you did something awesome? Don’t you remember it in vivid details? But the more “rote” and “boring” something gets, the less distinctive it becomes for you to meaningfully remember.

Use this simple trick. Take the code snippet that’s usually shown to you in the tutorial, and start fiddling with it. Try a few things that Python would allow you to do, and try a few things that it won’t. Be the most mischievous person that you could be while learning.

Let’s take this snippet that you might see in a book or a course while it’s teaching you about dictionaries:

names = {} names['Jack'] = 'Sparrow'

While you should try the above snippet, you shouldn’t stop there. Let’s do something crazy:

names = {} names[('Hello', 'World')] = 'Sparrow' # This prints "Sparrow" print(names[('Hello', 'World')])

Wow, that worked, huh? Cool. So dictionaries seem to work with tuples. Let’s try something else:

names = {} # This gives you an error "unhashable type: 'list'" names[['Hello' , 'World']] = 'Sparrow'

What? Unhashable type? What’s that? Exactly! Now when you Google that term, you’d surely learn something new. It’d teach you more about the concept that you’re learning.

Whenever you discover something, you’ll never forget it. Whenever you just look at something without thinking much, you really have no reason to remember it.