#100DaysOfCode learning Vue: My Five Ws

After learning about the #100DaysOfCode challenge, I thought it was a good way to learn about Vue. Well, after those 100 days, I wanted to share the methodology I used to learn Vue, why I did it, etc but especially, what I achieved (and why you should accept the ‘challenge’).

Who

Before anything else, I want to present myself a bit.

My name is David, a 35 year old programmer from València.

Even if I dabbled a bit around most of the current languages (Java, C#, PHP, C++…), Python and Javascript is my bread and butter.

At my job, I use Django, a cool Python framework, and Javascript (paired with jQuery).

Why

While Django is a cool tool and uses my favourite language (Python), using the old, plain Javascript for the client-side slowed my production when I had to swap parts of the website, move things around, make a website reactive to the user inputs, etc.

I have found that learning a Javascript front end to use alongside a REST API (Made with Django, for example) was a good solution to my problem.

I had to choose between Angular, React and Vue, so I did my research ( this from Academind helped me) and I set my mind in learning Vue.

Angular's and React's learning curve are relatively equal, Vue is easiest to learn.

Lightweight, easy to learn, great documentation… Everything I was looking for.

What I did to learn Vue

As you should know, 100 days of code challenge challenges you to learn a language or framework in 100 days spending 1 hour (at least) everyday. And that’s what I did.

First, to have a global understanding of how Vue works, what it can do, how etc, I relied on video-tutorials.

I did a few 1-2 hours Youtube tutorials here and there to be sure that I was on the right when I picked Vue over other options.

And I was.

Compared to Angular, a framework I dabbled with, everything was easy to understand, quite logical and without lots of boilerplate.

After being sure I wanted to learn Vue, I bought Shaun‘s Vue Udemy course (TheNetNinja on Youtube). Then, Maximilian‘s (from Academind) course.

After dozens of hours of Udemy courses, I decided to ….do even more videos. This time on Youtube.

They were short videos of 1-2 hours on how to do something with Vue. A small chat, a google maps SPA.

I wanted to see how different people approached Vue to pick tips here and there, that would help me to use Vue more efficiently. By watching how to solve the same thing from different angles, helped me too to ingrain how Vue works.

After a while, to escape tutorial hell, I tried to create a website on my own. Just a small application.

Sadly, I noticed too later that I spend more time fixing CSS stuff than using Vue, so I decided to try Vue packages such as Vuetify, BoostrapVue and more.

And then, the 100th days where gone.

What did I get

Well, after 100 hours I had a general concept of how Vue works. I could understand code from other people, do basic to intermediate stuff such using routing, Vuex, components, etc.

But I could hardly get a job using Vue, as my rhythm was a bit slow as I had to google almost everything, but I was getting there.

The cool thing is that I didn’t need a Vue job: I already had one using Django.

So I offered myself to a workmate to help him with a project.

At the start it was just small stuff, not even Vue related: Fixing a row, improving the style, etc. But I noticed a bug in the code. I communicated it and fixed the bug.

Then, I found another one. After that, I saw that a method we would need was missing. So I created it. From that, I had more and more responsability (and more projects).

Long story short: Starting from just improving CSS, now I mainly use Vue at my job now, working alongside with another programmer (he’s taking care of the backend) in a project.

The only it took, was 100 days of code.

100 days of code, working 1 hour on the afternoon (more on weekends) to land a role using Vue.

What’s next?

As I liked the experience of learning something new, something I would use and no just for the sake of learning, now I’m doing my second challenge.

After learning Django for the BackEnd and Vue for the frontend, I wanted to learn something new.

I don’t want to learn a second frontend framework, as I think that it is better to learn one thing by heart than 3, but just the basic stuff.

I have been a Jack of all trades all my life and I don’t like it.

So, right now I’m learning Flutter, a platform to create hybrid apps (you write the code in Dart, then you build the app for iOs and Android, instead of learning 2 languages).

I love how Flutter works, the fact that uses a BackEnd language such as Dart, not having to spend too much time on the style, and broadening my horizons to the mobile developing fields.

I think that knowing back and front end web development, and also how to create applications for both Android and iOs, is going to help me a lot in my career as a programmer.

And if you want to follow my progress or ask anything, you can do it by following me on Twitter at @DavidMM1707