Learn JavaScript
This website will be straightforward if you know the fundamental technologies used to build websites (HTML, CSS, JavaScript).
Our guides frequently make assumptions that you have worked with browser APIs (such as the DOM), es6, etc.… if those aren't the everyday technologies you work with - you may struggle with many concepts presented in this guide.
*and that's ok! To help you get started in the right direction, you should start with the material below:
- Eloquent JavaScript - a good desk reference to keep bookmarked. Read thoroughly for a high-level understanding of the language
- Clean Code JavaScript - how to write clean, simple, understandable javascript
- JavaScript.info - modern JavaScript tutorial
- Learn JavaScript - interactive JavaScript tutorial
- The Odin Project - full stack JavaScript development tutorial
- Egghead.io - learn es6
- 33 JS concepts - 33 concepts every JavaScript developer should know
- ExploringJS - Book that offers in-depth coverage of ECMAScript 6 (ECMAScript 2015)
TypeScript
A JavaScript (JS) developer can pick up the basics of TypeScript (TS) in about 10 minutes. But learning TS is more than just adding "types" to your variables here and there. It's about removing the possibility of a bug you'll probably run into if you wrote an application in pure JS. It's likely you already have an internal mental model of "data structures" when you're coding in JS - TypeScript just solidifies those mental models (in your head) into actual "rules" that can apply to your code and how it gets used.
The class of bugs you're getting rid of are all those pesky (…cannot read… ‘undefined') errors in the console. If you're ready to get started, check out some of the links below:
- TS for the New Programmer - TypeScript explained for beginners
- Beginner's TypeScript - A (free) interactive video tutorial by Matt Pocock
- No BS TS - A (free) video course by Jack Herrington
- TypeScript errors - How to fix your confusing TypeScript errors
It is not an exaggeration to call TypeScript an entire programming language, but even the simplest TypeScript can compile to JS. So the good news is you can adopt complexity only as it aids you. Sometimes you might have to temporarily level up or step outside your level of expertise to complete a feature. For example, if a library gives you code to work with and it's more advanced TS than you can ordinarily write, that's acceptable to use it. In most cases, adopting it incrementally in your JS projects and code is pretty painless.