How To Supercharge Learning How To Code
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.
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:
- Start early, because history favored the cat who showed up early
- Zero distractions, no smartphones, no SnapChat, no interruptions
- No more than 1–2 hours without pausing – you need a break
- No fooling your sense of competence – only the honest, grow
- 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.
- 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:
- 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:
Most Popular Content
- How To Develop iOS Apps On A Windows PC
- Creating A Simple iOS Game With Swift 3 In Xcode (Part 1)
- How To: Random Numbers in Swift 3
- How To: Build A Real-Time Chat App With Firebase And Swift
- Grand Central Dispatch: Multi-Threading With Swift 3
- UPDATED: The Swift 3 Cheatsheet
- How To: Escaping Closures In Swift With @escaping