How To Supercharge Learning How To Code

Written by Reinder de Vries on August 17 2016 in App Development

How To Supercharge Learning How To Code

Learning how to code is challenging, but not impossible. Many aspiring developers take up JavaScript, Swift or Ruby these days. Evidenced by the many Quora questions and personal emails I get, a lot of these soon-to-be coders have a hard time staying motivated and inspired.

Recently, such an aspiring coder asked me a great question. How could he structure his days in such a way that he could learn the most in the time he had available for learning?

This student has the luxury of spending a full-time workload on learning how to code, which many of us can’t afford. The truth is however that you don’t need to spend so much time learning, because your off-time matters too.

Let’s dig a little deeper…

“Internalize” Your Motivation

Let’s say you want start to learn coding today. Where do you start?

First, you answer these 3 questions:

  • Why do you want to learn coding?
  • What measure will you use to determine your success?
  • How are you going to get there?

In learning anything it helps to stay motivated. Want to play the piano? Stay motivated. Want to learn how to cook? Learn to deal with frustration. Want to get hired as a coder? Persistence is paramount.

The OP, the person who originally asked this question to me, outlined his hand-picked curriculum: Stanford’s CS50, JavaScript from Team Treehouse, Code Camp and CodeAcademy. That’s a lot of work… like, at least 6 months of learning! Not to mention the overlap between these courses.

How could he possibly see that all through?

It’s important to know what you’re measuring, and how you’re measuring it. It sounds arbitrary, but how many times have you set out to do something only to have found yourself burnt out because you didn’t cross the finish like in the timeframe you expected to?

Don’t start learning wildly, anywhere, any place. Filter, curate, don’t do everything.

Then, figure out how you measure success. Success in learning a skill is different for everyone, so this is a question you will have to answer on your own. Is it… Explaining coding to someone else? Building an entire app? Can you ace your next coding interview? Or… is it the journey and experience of learning that you want to seek out?

Finally, figure out how you are going to get to where you want to be. Your question, how to structure your day, falls in this category. Making a plan and then starting to execute that plan is key to succeeding at anything. Again, this sounds so obvious, but how many of us have dived in head-first when learning something new and thrilling, only to find themselves not seeing it through because the excitement quickly died down? This is where a plan comes in.

Moreover, computer science and programming are two very different things. So are “Swift” and “making apps”. You use Swift to build apps, but building apps is about so much more.

Learn how to build iOS apps

Get started with iOS 12 and Swift 5

Sign up for our iOS development course Zero to App Store and learn how to build professional iOS 12 apps with Swift 5 and Xcode 10.

Paradoxically, Learn How To Learn

No one has the capacity to learn effectively for 8 hours a day, and most of us don’t have the right methods and practices in place to learn at all!

Learning, as a skill on its own, is already challenging. Therefore, you need to learn how to learn.

Take these strategies for example:

  • A common approach to learning is using what’s known as spaced repetition. Say you’re learning a new chapter from your Swift book, or want to comprehend a video course episode. Instead of ticking them off one by one, you space out one episode over the course of three days. On the first day you watch the entire video, on the second day you watch it again while taking notes, and on the third day you watch part of it and then repeat to yourself – video closed! – what the video is about. Research has shown that we learn better this way, increasing our understanding of the materials while improving the retention rate of what’s learned over time. “Anki”, the popular flash card concept, is built on the principle of spaced repetition.
  • Use what you are learning. Personally, I’ve never been much of a theoreticist. I like action, practicality and pragmaticism. One of the things that helped me through formal education and a career as a coder was applying immediately what I learned. This helps filter what you need to know, and reinforces the neural pathways of knowledge and skills you use more often. Learned about variables? Write a basic app using what you learned. Just found a new way to code? Apply it in your next project!
  • Help your brain compress. Our minds are magical machines. They have the ability to comprehend almost anything, but they work in a very specific way. Have you ever applied something you knew without thinking about it? Trigonometry for instance – you can figure out the relations between the sides and angles of a triangle without looking at a diagram, an explanation and an example first. Your brain has compressed what you know, to an extent that you tend to forget the basics that make up your knowledge. When you have to apply your knowledge, on a more challenging math problem for instance, you can take that nugget of information without the need to unravel it first entirely. Cool, right? Help your brain by chunking information as it goes in, making the material easier and quicker to comprehend: summarize, make diagrams, annotate, etcetera.

How Structure Trumps Anything, Every Time

You’ve now figured out why you’re learning a new skill and brushed up on a few key “learning to learn” principles and strategies.

Let’s look at how to structure your day, or your learning time, to get the most of what you put into it.

First, these are the rules:

  1. Start early, because history favored the cat who showed up early
  2. Zero distractions, no smartphones, no SnapChat, no interruptions
  3. No more than 1–2 hours without pausing – you need a break
  4. No fooling your sense of competence – only the honest, grow
  5. Only learn what you actually use (see point above)

How can you fool your sense of competence, actually? It happens when you go over material you’ve learned before, to “rehearse” it, when in fact you’re only recognizing that you’ve learned it before.

This recognition gives you a sense of accomplishment, when in fact you haven’t actually tested that you know the materials! Instead, close the book, video or course and repeat out loud to yourself what the material is about. Then open the book, and check if you were right.

Second, this is how you to structure your day. Take out parts as you see fit as most of us don’t have the luxury to study full-time. The same building blocks apply, however.

Do this:

  • Get up at early, like 07:00. Make breakfast, dress up, shower (not in that order) and get ready for the day.
  • Start at 08:00. No email checking, no distractions. Eat that frog! Procrastination is addictive. Make sure to set a goal the night before: today you’ll learn Chapter Z, do video X, learn about concept Y. DO IT.
  • Continue until 10:30. Take a break, have a coffee, eat something. Learning takes a lot of brain power. Don’t down a lot of sugar, though. Try to take a break with an activity that stimulates a different part of your brain than the one you used for learning. No games, no watching YouTube, but instead, go outside, exercise your muscles, draw something, make music, sing.
  • Start again at 11:00. Learn until 13:00, have lunch. After lunch, review everything you learned in the morning. Open a chapter or course, close it again, and then repeat everything you learned without actually looking it up. Open book = fooling yourself you know the material.
  • Have lunch. Do another break. This is when you check your email, your Facebook, your messages. Remember, no distractions during learning time!
  • Repeat the same schedule in the afternoon. Quit early, around 15:00 or 16:00. Use the rest of your day for actual work, a different kind of study, or for recreational time.

You also learn when you don’t actively learn. This is called “diffuse mode” or “background thinking.” Your mind needs time to process what you’ve learned and it needs off-time so you can reinforce your neural pathways during on-time.

Learn how to code your own iOS apps by mastering Swift 5 and Xcode 10 » Find out how

How “Off-Time” Matters, Too

Keep these rules for after learning:

  • Sleep well, eat healthy. You need at least 7 to 8 hours of sleep a night, so don’t skimp. Don’t eat too much, don’t drink too much, get enough exercise. Your body is a learning machine, but if you put low quality stuff in, that’s what will come out, too.
  • Avoid staying stuck. If you get stuck, get out of it by trying again later. This is what they mean when they tell you to “sleep on it.”
  • Repeat your learnings with a closed book. This is called pause and recall, and combined with spaced repetition it reinforces your learning on an incredible leve.

I want to stress again how important it is to have a goal when learning a new skill. You need to internalize your motivation, because an external motivation will run out very quickly. It’s unreliable! Don’t waste time learning something you don’t need or don’t want.

This is bad motivation:

  • Everybody is learning JavaScript these days.
  • I need to know how to code to get a job at a startup
  • IT, CS and programming are the future

This, however, is good motivation:

  • I need to know how to code in order to solve problems with programming
  • I want to learn how to code, to provide for myself and my family
  • I want to learn how to code, because it’s a great addition to the people / design / soft skills I already have

Ready? Let’s Go

Are you ready to get learnin’ in a sustainable and effective way? Check out this video I made on “The Einstellung Effect”, a cognitive bias you’ll run into a lot if you’re going to be a professional coder:

Reinder de Vries

Reinder de Vries

Reinder de Vries is a professional iOS developer. He teaches app developers how to build their own apps at Since 2009 he has developed a few dozen apps for iOS, worked for global brands and lead development at several startups. When he’s not coding, he enjoys strong espresso and traveling.