Reference: freecodecamp.org


Ok, here's my opinionated guide to JavaScript books:

  • Eloquent JavaScript - I hated this one, far too many words with far too little code for me (I realize I may be alone in this opinion, others seem to enjoy it).

  • Head First JavaScript Programming - I hated this one too, far more gimmick than actual practical information about programming.

  • Professional JavaScript for Web Developers - this is actually a fantastic book, but like you said, it's dated.

  • JavaScript: the Definitive Guide - never read this one, so I can't comment.

That said, if you're interested in getting "really good" in the most streamlined way possible, actual hands on coding will always teach you more than reading.

The resources I'd actually recommend to complement FCC are:

HTML & CSS

HTML and CSS: Design and Build Websites155 by Jon Duckett - for an overview of HTML and CSS that's top notch, good as a reference, and useful for learning the breadth of what's possible with HTML and CSS. Plus, it's a really easy read.

The MDN HTML Docs88, and the MDN CSS Docs69. These might seem a bit terse at first, but they truly are the most complete, and accurate, reference material. THESE should be your reference long term.

JavaScript

YDKJS263 by Kyle Simpson - a series of 6 fantastic books, which combined start from the easiest beginner topics and go on to explain many of the most advanced. I can't praise this series enough, it's got exercises for practice, it's layed out in a way you can easily refer back to it, and it's got comprehensive information on a wide variety of advanced concepts, explained in a way that you can actually understand them. If it wasn't free, I'd say that if you could only buy one book, it should be these 6.

The MDN JavaScript Docs146 - this should be your long-term reference, it has literally everything JavaScript. If you've been through a few of the YDKJS series, MDN shouldn't be too daunting and it's actually jam packed with information.

jQuery

The official jQuery API page48 - if you get comfortable with JavaScript to the point where you've worked through a number of the YDKJS series and can look stuff up on MDN, the jQuery API page is actually quite readable and an excellent reference.

Node.js / Express / Mongo

Once you get to the backend part, more than any book, I recommend MongoDBx: M101x Introduction to MongoDB using the MEAN Stack136 on edX - it's the best hands-on resource I've found for making sense of how Node.js, Express. and MongoDB work together to build a backend, and how that backend interfaces with your frontend code.

To complement the course:

Getting MEAN with Mongo, Express, Angular, and Node111by Simon Holmes - the best book I've found for how all the technologies work together.

The official Node.js api19
The official Express Docs14
The official MongoDB manual14

Workflow

Try Git46 - for a brief overview of how to use git (and github)
The npm getting started guide50 - you'll be using npm a lot, getting very familiar with it will save you a lot of time Googling.
The Karma20 and Mocha13 official docs to learn about testing your code
Browserify14 to turn monolithic giant wads of a billion JavaScript files into one clean file to sent to the client.
The official Sass docs11 - for writing cleaner CSS
The official TypeScript docs8 - for typesafe JavaScript
The official Jade docs22 - for writing more concise HTML
The official Gulp docs12 - for automating built processes

Breadth of Knowledge

The Khan Academy Algorithms course108
JavaScript Design Patterns93 - free book online by Addy Osmani
Learning JavaScript Data Structures and Algorithms103 by Loiane Groner
Introduction to Algorithms76 by Thomas Cormen
JavaScript Regular Expressions on MDN27

Recommendations (in general)

For language, library or framework information prefer the official docs to any book, once you get good at reading them, you'll find that they are consistently the most complete, and most accurate, reference material available.

Learn more math than you think you need. Sure you "can" be a perfectly good programmer with a minimal knowledge of math, but you'd be short changing yourself because more math really does pay off with increased ability to solve complex computational problems. Take 30 minutes out of the 8 hours you're spending on coding every day and spend it at Khan Academy, it'll pay big in the long run.

Spend two hours coding for every hour you spend reading. Build the FCC projects, go to CodinGame96 or HackerRank60 and solve challenges. Every day you're studying, spend part of it building, have at least one git commit for every study day. If you run out of FCC projects to build, take a look at the Odin Project and build one of their projects, just do it in JavaScript instead of Ruby. Or, look at one of the Udacity Nanodegrees and work on one of their projects, but in JavaScript instead of Python. Reading is good, but actual coding is what will help you remember all this long term.

You'll notice I didn't include React in my list of resources - that's mainly because I think React is a shitshow and my opinionated guide to React is - go look at the Angular 2 docs.38

Posted by KettleBot
,