DEV Community

Cover image for #100DaysOfCode, 4rt round | How I'm learning faster than before
David MM👨🏻‍💻
David MM👨🏻‍💻

Posted on

#100DaysOfCode, 4rt round | How I'm learning faster than before

Original Post: #100DaysOfCode, 4rt round | How I'm learning faster than before

img

After a successful first #100DaysOfCode challenge learning Vue.js and a not-so-successful failed the second and third one, I just started my fourth challenge.

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?



#100DaysOfCode100 Days of code

What is #100DaysOfCode?

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

— Magdalena Rosłaniec (@makneta) March 9, 2020

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.


What I want to learn and why

Flutter logo

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.

Dart feels like Javascript on steroids, with new cool functions and methods, is strongly typed, and more. I enjoy it a lot.


Learning #100DaysOfCode

A new approach to learning

Past successes (and failures)

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.

How I used to learn

Guy reading from a laptop

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.

The new approach

Guy happy reading from a laptop

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.

The point is not to check more boxes but to learn from the videos

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.


Conclusion

#100DaysOfCode

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.

You can follow my progress daily on Twitter (DavidMM1707) and learn more with my tutorials on my Youtube channel.


My Youtube tutorial videos

Reach to me on Twitter

My Github

Contact me: DavidMM1707@gmail.com

Past #100DaysOfCode challenges

Top comments (2)

Collapse
 
iamkalai profile image
Kalaiarasan Pushpanathan

I am looking to learn Flutter as well. Where do you suggest I start?

Collapse
 
davidmm1707 profile image
David MM👨🏻‍💻

Hi Kalaiarasan,

Right now I'm learning it using Max Udemy course udemy.com/course/learn-flutter-dar...

So far, so good.

The official Flutter site has a small tutorial, but it gives you only an introduction to Flutter that I find a bit shallow, to be honest.

flutter.dev/docs/get-started/codelab

You have plenty of tutorials on Youtube, for example:

Flutter Crash Course, by Traversy Media
youtube.com/watch?v=1gDhl4leEzA

One hour to try Flutter and see if it "clicks" with you.

Flutter Tutorial for Beginners, by TheNetNinja
youtube.com/watch?v=1ukSR1GRtMU&li...

A good introduction to Flutter. 35 videos. Each one touching one topic (formatting dates, routing, async...).

Flutter & Firebase App Tutorial, by TheNetNinja
youtube.com/watch?v=sfA3NWDBPZ4

A 28-videos series, using Flutter and Firebase

I don't know if Flutter will take off and rival with React Native and Ionic or it will be a bluff, but right now I'm liking it a lot.