The first resource I'm going to present is an online tutorial by Ilya Kantor (and many other contributors on Github). It is a simple tutorial that covers lots of the language's aspects. It is organized in three main parts:
Here, the author starts with an introduction to the language, proceeds with the basic building blocks, like data types, conditional and logical operators, loops, functions, prototypes, classes etc, and ends with more advanced topics like, promises, generators, the module pattern etc.
The second part is dedicated to browsers and working with the DOM. Elements, events, event listeners, forms, are some of the topics that this part is dealing with.
In the third part, the author presents a set of various articles that cover topics that were not covered in the previous parts of the tutorial, like these:
- Frames and windows
- Binary data and files
- Network requests
- Regular expressions
I found this tutorial very useful and easy to follow. The author has a unique way of explaining each topic with simple examples that makes it easy for the reader to get the point. Furthermore, the structure of the tutorial allows for easy and quick search of anything! I often consult this tutorial for various topics and I would encourage anyone to do so 😀
Another resource that I would like to present is the Fun Fun Function channel on YouTube, by Mattias Petter Johansson (or mpg). In this channel, Mattias releases a new video every Monday at 08:00 GMT, resulting in a great teaching experience! Various topics are covered here like:
- Functional programming
- Promises / Async-Await / Generators
- Error handling
and so much more, such as more abstract topic like Time to leave your job?, Problem solving preparation etc.
As with the previous resource, Mattias is excellent in explaining advanced topics in a clean and understandable way, with a lot humor! Fun Fun Function episodes helped me underdestand promises, generators, iterators and functional programming principles.
Some of the articles that I've read and I liked the most are the following:
- Curry and Function Composition
- Functions (pure functions, lambdas, IIFE, scope, hoisting etc)
- Objects (Prototypes vs OOP)
- Modules (AMD, ES6 modules)
- Client side vs server side
- Authentication and authorization
- REST APIs
and much more, all with detailed examples.
The series consists of six books and is suggested that they are read in the following order:
- Up & Going
- Scope & Closures
- this & Object Prototypes
- Types & Grammar
- Async & Performance
- ES6 & Beyond
What I liked the most in this book series, is the author's absolutely deep knowledge of the subject. Kyle Simpson shows that he takes seriourly what he does and that made me love his way of writing.
Please, let me know what do you think about the resources I presented. Feel free to list some of your favorite books, tutorials, or anything else!
Here are some resources that I would like to read in the future:
- Composing Software (by Eric Elliot)
- Functional Light JS (by Kyle Simpson)
As software gets more and more integrated into our lives, the industrialization of its crafting process becomes inevitable. But the over-generalization of software engineering can be crushing the creative side of programming.