As I have learnt from my mistakes (more than from success), I'm using a new learning approach and I'm learning faster and better than before. Want to know how?
|Table of contents|
|What is #100DaysOfCode?|
|What I want to learn|
|A new approach to learning|
Before anything, let me explain what it is the #100DaysOfCode challenge.
100DaysOfCode is a public commitment where you swear publicly that you are going to spend at least 1-hour coding daily, for the next 100 days. The time you code at your job doesn't count towards this.
In this (at least) one hour, you'll learn a new language, framework or anything related to code (for example, Docker, CI…).
Instead of saying "Wow, learning React would be cool, right? I'll do that someday", you just do it. Publicly. Like this:
I do better in a group so I'm publicly committing to the 100DaysOfCode Challenge starting today! It's my 6 round and my plan is to build things – small, tiny or big, I'm not sure how it will work this time.
Learn More and Join me! #100DaysOfCode
Committing to this in front of other people, you'll push yourself to do it. Even better, you might find new people and friends along the way.
You can use any channel (your friends, family, Facebook, etc..) to declare that you are going to do it, but most people taking the challenge uses Twitter and the #100DaysOfCode hashtag.
For example, you can follow me on Twitter by the handle @DavidMM1707 and my progress with Flutter.
While I might be not the best using the tools I use at my job (Django-DRF and Vue), I'm quite comfortable using them and I can do what I want to do. And when I don't, I'm a Google search away from finding what I need.
I want to do something more. Something new. I could learn another FrontEnd framework such as Angular or React, or another BackEnd framework such as .Net or Ruby on Rails. But that are new tools to do the same job I'm doing right now.
By learning Flutter, I will learn how to do mobile apps.
Flutter uses a write-once, run-anywhere philosophy to mobile apps: By using Dart language, you write code, and that code can be used to create Android AND iOS apps. No longer you need to learn Java for Android and Swift languages and creating two times the same code in those languages.
As I said at the start, I'm going to use a new approach to learning Flutter.
On my first challenge, I tried to learn Vue and Flutter. It was too much so I focused on just Vue. It was a success. In fact, in my current job, I use mainly Vue.
On the second one, I wanted to learn Flutter. I had it on my mind for a long time and I wanted to learn it. Sadly, I failed the challenge: I focused too much on doing videos and articles for this blog revamping it, and my Youtube channel. Also, work and life stuff I had to do.
I failed the third one. Failed is a strong word because I learnt Flask (and that I don't like it too much), Async Python, Django Rest and more, but I didn't finish it.
As I failed two challenges, I wanted to find the cause of why I stopped doing them, especially when I did more than two-thirds of the challenge.
Well, the reason was HOW I learnt.
Instead of using a free, chill, exploratory mindset to learn the technologies I wanted, I saw it as a chore.
"100 days, 100 hours. If I want to learn this in 100 hours, I have to finish A and B tutorials, A in 40 days and B in 25 days, and 35 days to build an app on my on."
You can set an amount of time to learn, but you cannot plan how much it will take it. But I did.
For example, on the 16th day, I had to finish the 10th chapter of the tutorial. If I speed up the video, I would finish it sooner and I could rest. So, instead of exploring and trying things, I just speed up the video.
On the other hand, if I didn't finish the 10th chapter in one hour, I had to spend more time doing it. 2 hours, 3 hours or 4… And that was too much.
Creating a schedule of what I had to learn and when didn't work for me, as I spend more time trying to reach the goal than learning.
That's not how I am and that's why I failed.
For this challenge, I'm using a new approach, totally the opposite I used before.
I set at least one hour a day to learning. Maybe I will do more, but not less.
I have one Udemy tutorial and a few Flutter videos on my "To watch" list, but this time I'm not going to calculate when I should finish the tutorial and when the videos.
This way I don't have to rush anything.
If today I only do 3 10-minute videos, because I spend 40 minutes exploring, changing the code, reading the documentation is alright, because I'm learning, instead of racing against the clock.
If I focus on just learning, I have time to explore what interests me, I can change the code and see how it works, I can read the docs, etc without fear, because I don't have to beat the clock in a race.
Do the same.
Instead of doing as many tutorials as you can, learn from them.
Don't fall the trap of the "gamification", as checking boxes doesn't equate to learning. Unless you are learning how to check boxes, but then you have a different problem.
Your learning time is for learning, exploring, trying different things.
As I started my last #100DaysOfCode challenge, I recommend you to do the same: Pick something you want to learn and stick to it 1 hour a day, for 100 days.
In no time (well, in 100 days…) you'll learn a new technology that you can use in your current job, or maybe even switch jobs.
And also, you'll have a lot of fun, and maybe even make a friend or two following the #100DaysOfCode hashtag on Twitter.
I'm going to learn Flutter. What about you?
Write a comment telling us what are you going to learn and why.
Contact me: DavidMM1707@gmail.com