Thursday, 8 November 2018

Learn vanilla JavaScript in and out

Most of the web is built on JavaScript, whether we like it or not. It is becoming like JVM in that it has laying on top of it the technologies we all use such as frameworks, babel, webpack, etc., most of which aren't even written in vanilla JavaScript anymore; they're written in all sorts of transpiled/compiled languages such as TypeScript, and they produce a JavaScript "bytecode" (in reference to the JVM comparison). Moreover, we have things like Web Assembly on the horizon and that pushes further the notion of JavaScript being like a JVM.

Knowing JavaScript in-depth will be invaluable to you as a front end developer, even if you don't use it on a day to day basis.

That being said, if you want to get "current", I would recommend the things you already mentioned, as well as some other things. Bear in mind, the best advise would be something that is specifically catered towards a particular goal you want to achieve. This is just general advice:


  • Learn frameworks and be open minded to different approaches and understand their costs and benefits
  • Learn how to use build tools (Webpack, etc.) so you can automate your setup and build steps, as well as package them for others to use.
  • Learn to write tests to ensure your code is robust and predictable.
  • Learn TypeScript, ES6+, etc. These technologies are being heavily used nowadays. They provide assurances and productivity gains that vanilla JavaScript just can't keep up with.
  • Learn about CSS preprocessors like SASS. You'll thank me later.
  • Learn Node.js. The majority of JavaScript stuff is built on Node these days.
  • Learn how to use Chrome Dev Tools to help you debug your JavaScript/CSS. You can literally step through your code and see what's happening, view performance details, test network connection, and the list goes on. It's very insightful, saves a lot of time and is completely free to use of course.
  • Learn about the event loop in JavaScript and how it allows asynchronous code even though there is only a single thread that handles the event loop, which makes it a synchronous language.
  • Learn about the JavaScript runtime execution process. For instance, do you know how "scope" is handled and how it creates a lot of gotchas in the language?
  • Learn about security. Why can 'eval' be bad to use? How does one perform XSS attacks and also prevent them? How can you prevent SQL injection?

There are a lot more things we could cover, but you get the idea. You should understand all of the fundamentals and then some. This will make you highly demanded in the current playing field for as far as the eye can see.

No comments:

Post a Comment