Thursday, 11 October, 2018 UTC


Summary

JavaScript, JavaScript, JavaScript… and did I mention JavaScript already? These days, everyone is talking about the nerdy kid that got buffed with age. Tons of JS frameworks and libraries pop up every day and it seems unstoppable at this point. I even bet that if there’s something that isn’t built in JS yet, it's just a question of time until it is too.
With all this buzz around this tech, you probably thought already that you should straight away start your next project with Node.js and React.js, correct? If not, I recommend you to give it a try. Several companies are moving their code to full stack JS, and there's a good reason for that. If you're curious about this shift, you can find more about why we also went from Ruby on Rails to a full stack JS here.
However, if you’re not experienced with any of this new frameworks that keep coming up, there are two things that I recommend you to do first before jumping head on into one of those:
  • Master JavaScript first. This may seem like a no-brainer, but lots of people are so eager to jump right to the good stuff that they forget about the basics. The truth is, you can’t be a good Node.js / React.js / Angular / Vue.js developer if you’re not proficient with JavaScript. The better you understand the language, the better developer you will become with any framework/platform.
  • Get to know all about the JavaScript ecosystem. The best part is just around the corner, but first it's essential to get to know exactly what you're diving into. With this is mind, there’s no better way to start then to make sense of it all upfront.
JavaScript Resources
After you're done with the most theoretical part, there are some great resources out there for you to really get started on JavaScript. In order to make it easier, I’ve put together some of the best tips and resources so that you don't have to go through many others that are not as helpful.

Codecademy

The first resource on the list has to be Codecademy’s JavaScript Tutorial. The thing I love about Codecademy’s courses is that they are very practical and interactive.
For beginners, this is one of the best starting points. In this course, you will learn about data types, structures, functions and object-oriented programming in the context of ES6. However, to be able to take the most out of this course, a basic level knowledge of HTML and CSS would make some of its parts more meaningful and comprehensible.

Mozilla Developer Network

Mozilla Developer Network is a huge database full of information about open web technologies, including HTML, CSS, JavaScript and APIs.
Even experienced developers often come to MDN, and if you’re planning on becoming serious about web development, you should keep this in mind. It provides multiple guides, from beginner to expert levels, but a good starting point is to go through their learning pathway for JavaScript.

Eloquent JavaScript

Eloquent JavaScript is a book that raises some controversy. Some developers say that this is a great book for beginners, while others disagree. The main argument against the book regards its ever changing pace. There are parts in which it's very slow and carefully teaches about the language, and others in which it goes way too fast.
However, there's more good than bad to it, as the author keeps the book updated with all the latest JavaScript developments, turning it into a great resource for any level. It also covers everything about the language, the browsers and some backend with Node.JS. My recommendation here is to read this book alongside with other course, using it as support material.

Codeshool

Code School was one the first resources that I’ve used to learn web development right after I left the university. Every time someone talks about Ruby on Rails, it still comes to mind the intro from the Rails for Zombies course (also a great resource, just not for JavaScript).
They don’t give away as much free content as the other resources on this list, but it's still worth giving it a try. Their teaching method is a mix between videos and interactive coding, which is great for more visual and audio learners. Also, if you feel as it's going too slow, you can always speed up the videos. On their JS path, you can find beginner and expert content and if you’re not sure where to start, you can take their skill test and get a recommendation.

Egghead

Egghead has some of the best resources for JS these days, made by web development professionals and open source contributors. However, Egghead is more focused on advanced content and I would only recommend taking their courses after finishing a couple of the others listed before. The best about their courses is that they are straight to the point. You will find bite-sized videos that pack a lot of information in a fraction of the time.
A few more tips
Going through tutorials and books can get boring and sometimes you even get the feeling that you're getting nowhere. So, alongside with this resources, I'll share a few more tips to really get it going with JavaScript.

Build an actual app

It can be a simple to-do app, a mini-Twitter or a personal page, but try to get something done from scratch. That initial struggle with the syntax, going back and forward with new documentation, get pass through configuration errors... All of it will make you improve faster. The sooner you get familiar and comfortable with the language, the better.

Don't panic if it's not perfect

Developers tend to be perfectionists. They always want to deliver the best code with the best practices and patterns. However, when you're learning, don't get too annoyed if you can't do everything the "right away". With experience and further knowledge you'll find yourself finding solutions to those problems naturally and come back later to refactor the code.

Read other developers code

Look into known open source repositories. Reading other people's code is one of the best ways to learn. Check the way experienced developers solved problems similar to yours. By doing that, you'll probably find ways to get past those problems in which you haven't done it "the perfect way" before.

Ask for code reviews

Ask other developers to review your code. Having other people giving you tips is a great way to improve fast. Talking about code with others is a way of absorbing a lot of information in a small amount of time. So, if you have someone with whom you can share code tips between each other, do it as much as you can.

Use StackOverflow

Don't be afraid to make questions. I can't imagine my life as a developer without StackOverflow. It helped me so many times in so many different ways that I have to say that it is one of my greatest teachers. If you need to ask anything, just do it on StackOverflow. In no time, you will have someone from its awesome community answering to your questions.
Concluding
Similar to what you should do on every new field you're trying to master, just challenge yourself at all times. Roll up your sleeves and start working on it. In no time you'll be building some cool apps in JS. Also, there's a big demand for JS developers out there that companies can't fill up. So believe me, it's worth it!