How To Supercharge Learning How To Code

Written by: Reinder de Vries, August 17 2016, in App Development

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.

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.

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:

Join 11.000+ app developers and marketers
  • Get a weekly curated list of app development tools, articles and resources in your inbox
  • 10x your app installs with relevant App Store Optimization and app marketing strategies
  • BONUS: Grab a free copy of the App Toolbox 2017 to supercharge your next app project
Yes, Sign Me Up!

Most Popular Content

Written By: Reinder de Vries

Reinder de Vries is an indie app developer who teaches aspiring app developers and marketers how to build their own apps at LearnAppMaking.com. Since 2009 he has developed over 50 apps for iOS, Android and the web, and his code is used by millions of users all over the globe. When Reinder isn't building apps, he enjoys strong espresso and traveling.

Got a killer app idea?

Grab the App Toolbox 2017 to learn how to save time building your app,
and how to 10x your app installs in the App Store. With the toolbox, you'll immediately know how to move forward to build better, more profitable apps.

Get The App Toolbox

Comments & Thoughts


Leave a Reply

Markdown is supported. Your email address will not be published. Required fields are marked with *

  • OneCar Wood (August 29, 2016)

    Yea wish I could the kids won't allow it! Thanks!

  • Reinder de Vries (August 27, 2016)

    BOOM! Love it. Play the long game. Also, try learning at a different time during the day – in the evening, my mind isn't as sharp as it is in the morning. Glad you enjoy the videos!

  • OneCar Wood (August 27, 2016)

    The way I do it is I try to build something I want for a few hours in there day and then at night before bed I do course learning. I then try to implement that there next day. I think my measure is getting my app idea to be either published in the app store or be on the web and working with at least some recognition. If I get 100 users I will consider my first attempt a success. Love your videos thanks reindeer.

  • Reinder de Vries (August 19, 2016)

    Thanks! Yeah, it applies to any skill. Learning languages is one of those structured things too. Don't forget to practice in real-life though -- make mistakes, language is meant for communication :-)

  • Morten Vestergaard (August 19, 2016)

    Great post... Really useful.. Not only for learning how to programme, but also for learning a new language and alphabet (learning to speak, read and write Thai atm). Thank you so much..!

On The Blog