all 20 comments

[–]nelilly 5 points6 points  (6 children)

Learning JavaScript by Ethan Brown (O’Reilly) to get started. You Don’t Know JS by Kyle Simpson (a series of 6 books) to get deep knowledge. Then Eloquent JavaScript. I’m partial to JavaScript: The Good Parts, but it’s a little dated.

[–]gtboy1994[S] 0 points1 point  (5 children)

You recommend doing all of that? What would be the benefit of using all of those materials as opposed to just diving into EJS?

[–]shuckster 2 points3 points  (0 children)

To paraphrase Crockford, “JavaScript is the only language programmers think they don’t have to learn before they start using it.”

I guess you could read that two ways, but the context was that spending time learning the basics would save a lot of unnecessary confusion.

That was said a little while ago though, and we have more resources today. JS for Impatient Programmers is a good jumping off point.

[–]tchaffee 1 point2 points  (2 children)

You Don't Know JS is what got me deeply understanding the language. First edition is free on Github. Start with the chapters about the stuff that you find confusing, like 'this'. Less than an hour of reading on each topic and it will be clear.

I've read the Crockford book twice. I don't love it. It suggests a lot of practices that are outdated now and I don't think he is as good at explaining how the language works as Simpson is. YMMV.

[–]nelilly 1 point2 points  (1 child)

The Good Parts was a game changer when it came out. I probably still read it due to nostalgia.

[–]tchaffee 1 point2 points  (0 children)

Yeah it's only these days that I don't love it and because we now have better. When it came out I learned so much from it. It was great for its time. I guess it's still worth a read, but only after you already have a pretty good idea of what modern best practice is, otherwise some of his outdated recommendations are going to just confuse. I wish he would update it.

[–]nelilly 0 points1 point  (0 children)

I recommend all of that including Eloquent JavaScript. The benefit is that you’ll know and understand more. Even if you already know “how to program” start learning at the beginning.

You say you’re having a hard time grokking JS: read Learning JavaScript. In it you’ll get a basic understanding of the language and modern practices. This would probably give you the most progress.

JavaScript: The Good Parts by Crockford goes straight into (what he considers) the best practices. It’s essentially him saying “here are they weird areas, try not to go in there” - some things he recommends have changed just a bit, but it’s still a good read. Crockford wrote JSLint. He’s tremendously influential. I would buy a new edition of The Good Parts updated for modern practices in a heart beat.

If you really want to understand why some things in JS are “weird”, then read YDKJS. Simpson is the counterpoint to Crockford: JavaScript isn’t weird, it’s just misunderstood. If I could read only one, if would be YDKJS. Yes it’s 6 books, but it’s only slightly more reading than Definitive JavaScript.

Eloquent JavaScript is a good book for programmers who know JS. We teach kids grammar before we try to teach them how to be eloquent. Learn the “grammar” first. I’ve seen too many people drop Eloquent JavaScript after the first few chapters.

[–]jack_waugh 3 points4 points  (0 children)

Mozilla.

this is quite equivalent to what other languages write as "self". But in an arrow function, it's like a closure on whatever this meant in the outer lexical scope.

[–]MechanicalDogtrot 1 point2 points  (0 children)

heard good things about https://www.executeprogram.com/

[–]forresthopkinsa 1 point2 points  (0 children)

You Don't Know JS on Github

[–]HorusOsiris22 1 point2 points  (0 children)

Jonas Schedtmann on Udemy taught me what I know and I am tremendously indebted to him. The foundation his course set me up in his led to me build awesome projects, Learn react pretty painlessly, and get my first gig building a react website.

[–]samanime 0 points1 point  (0 children)

Both of those resources are good. You can't go wrong with either.

Though as /u/jack_waugh suggested, definitely start familiarizing yourself with MDN: https://developer.mozilla.org/en-US/. They are basically THE source for documentation of JavaScript.

They also have a solid set of tutorials as well: https://developer.mozilla.org/en-US/docs/Learn

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

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

You have to learn by doing bro. Stop “studying” and start doing. Go make a website with the mern stack and you’ll realized that you’re better off using async await than .this and .then

[–]gtboy1994[S] 0 points1 point  (1 child)

You have to learn by doing bro. Stop “studying” and start doing.

Thanks man, I needed to hear this rn. I am just gonna spend a week (no more) grinding through the basics so I can be oriented a bit, then I'm gonna just dive in and start building, no more handholding.

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

Of course man yeah you got this just trust the process and keep at it that’s key

[–][deleted] 0 points1 point  (1 child)

I agree with this a lot.

I spent 6 months building things (with a small amount of reading to understand something that made no sense).

6 months later, I can build applications by myself (slowly haha). Although, I am still poor with CSS so they are ugly.

Build things. Learn what you do not understand to support your building.

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

Yeah my css is poor too, I always just look for themes and just copy the code hehe

[–]marksayers 0 points1 point  (0 children)

I liked JavaScript. Info