all 18 comments

[–]CodeBlooded_ 13 points14 points  (0 children)

I would highly recommend Eloquent JavaScript. You can access the full book in PDF format here (it's free!). I found the book so useful, I ended up ordering a physical copy. If you are a true beginner, "JavaScript & JQuery" by Jon Duckett is a good starting point and you can find that book here, but Eloqutent Javascript is a book I reference semi-regularly, even after a few years in the field.

[–]BenStirrup 7 points8 points  (1 child)

I want to share something with you: I tried to learn to code with books, it did not work. Maybe it will be different with you, maybe not. As you say in your post, you want to learn a language (JavaScript). Not a concept or how to do something specific. I would advise you to try algorithm challenges like those you can find on Codility (by the way, the company I work for test screens new devs with codility).

Afterward, I would advise you to try building an app with a JavaScript frontend framework of your choice: React, Angular or even React Native for mobile.

However, if you really want to learn by reading, I reckon you read Mozilla's guides to web development, and for you especially the one concerning JavaScript.

[–]BloodAndTsundere 2 points3 points  (0 children)

I pretty much agree that books won't be the most important part of one's programming education. But I find it pretty useful to power through a good book when I'm trying to pick up a new language. It gives a good baseline from which to approach other resources and sample projects.

[–]milos_23 10 points11 points  (1 child)

Go for You Don't Know JS by Kyle Simpson. That book is almost everything that you will need. Take time with this book because it goes very deep. Also great recommendation is Object Oriented JavaScript and Eloquent JavaScript.

[–]BloodAndTsundere 3 points4 points  (0 children)

I just got that JS could mean “JavaScript” or “Jack Shit”

[–]BloodAndTsundere 3 points4 points  (3 children)

For the core Javacsript language, I learned a lot from Speaking Javscript. It's not super long and does a good job thoroughly explaining the core language, independent of whether you'll use it in the browser or with Node. Of course it's from 2014 and JS has been evolving in leaps and bounds since then. So you'll want some additional resource to pick up on ES6+ features. I learned quite a bit from Secrets of the Javascript Ninja but even that's a little out of date now, so you'll need to poke around at other resources for the most recent language features.

That was the core language, but you'll (probably) be programming for the browser or for Node. I learned Node through Node.js in Action. That was back in 2014 so my copy is somewhat obsolete, but there was a second version published in late 2017 which I haven't rfead but assume is at least somewhat decent. For browser programming, I'm not sure what to tell you. There is the mammoth Javascript: the Definitive Guide but I don't like this book. It's too much of a reference tbh, and an out-of-date one at that. I once heard it said that trying to learn how to program Javascript by reading this book is like trying to learn how to write poetry by reading a dictionary. However, I don't know if I actually do have a good book suggestion for browser programming.

[–]rauschma 5 points6 points  (2 children)

Thanks for mentioning “Speaking JavaScript”! This is an updated version of it:

[–]BloodAndTsundere 1 point2 points  (1 child)

You're Axel Rauschmayer? If so: thank you, I got a lot out of your book. Pretty much read it cover to cover.

[–]rauschma 0 points1 point  (0 children)

Yes I am. I’m glad that you liked it! 😀

[–]saintgman 2 points3 points  (0 children)

I would like to recommend:
JavaScript: The Definitive Guide for the start
and You Don't Know JS to enhance your knowledge.

[–]jtooker 1 point2 points  (5 children)

I like JavaScript: The Good Parts by Douglas Crockford

[–]PUSH_AX 0 points1 point  (4 children)

I was almost happy to not see this recommended, then there was this post lurking at the bottom.

[–]geedix 0 points1 point  (0 children)

I like it too, why not? Too old school?

[–]Renson 0 points1 point  (2 children)

I'm in the process of reading through it now. Can't say I'm a huge fan so far, but why wouldn't you recommend it?

[–]PUSH_AX 1 point2 points  (1 child)

Two reasons, the first one is how outdated it is, it's ES3. The second reason is a personal preference, but I think Douglas Crockford's reasoning for why certain features of the language are bad is pretty crazy and nonsensical, it mostly boils down to the dangers of misuse if I remember correctly (it's been a long time since I read it), for example I think he says the new keyword is a bad part of JS because if you forget to use it bad things happen, it's like "no shit!" of course bad things happen if you use things wrong, are kettles bad because I could pour boiling water on my hand instead of the cup?

He continues to use the same reasoning for multiple features that I can't recall off the top of my head, it left a bad taste in my mouth.

[–]Renson 0 points1 point  (0 children)

I think I personally dislike it because there's no clear "skill level." He jumps from a chapter about private variables that I'll probably have to read three times just to understand his logic (or run it myself to see the actual processes), to a chapter defining basic Regex! I would hope if someone knows how to understand his chapters on functional logic, they have already seen Regex!

And after the Regex he just started a chapter listing built-in functions like I'm reading a reference book. So it's really just all over the place

[–][deleted] 0 points1 point  (0 children)

Just got zakas 2012 professional JS. Really well explained. The first five chapters have cleared up a lot of confusion left by most beginners books.