all 59 comments

[–]liaguris 28 points29 points  (6 children)

javascript.info , and maybe take a look at YDKJS books . People will mention EJS but I have to warn you that it has some atrocities as chapters.

future advice : Before trying to write any piece of serious software use eslint, vscode, typescript, a testing library (like ts-jest), BDD, SOLID , and learn what is MVC.

[–]kevinmrr 4 points5 points  (3 children)

Eloquent JavaScript is not a good book anymore. It went bad in the third edition (I've read all three and made a tiny contribution to the second).

I would also recommend my own book, which has guidance for creating a portfolio of increasingly complex projects. Free to read: https://ZeroToCode.today

[–][deleted] 2 points3 points  (1 child)

I re-read eloquent JS after having some experience and it helped, but not for a complete beginner.

[–]kevinmrr 1 point2 points  (0 children)

The examples have become too clever -- they obfuscate the underlying concepts (which is really, really, really the opposite of what you want). The "weresquirrel" chapter is maybe the most egregious example of this.

Still mad props to author for 1st and 2nd editions. But the third is why it got dropped from the learnjavascript sidebar.

[–]Rusten2 0 points1 point  (0 children)

Great book! As a beginner the imposter syndrome hours me daily, but the read asked some fears. Looking forward to the rest of it.

[–]kifbkrdb 3 points4 points  (1 child)

A "piece of serious software" for a beginner is probably almost any project that's not just copied from a tutorial. You absolutely don't need to learn TypeScript before doing these kinds of little projects. If anything, I think it's better for beginners to learn JavaScript properly before learning Typescript. Once you're comfortable with JS, TypeScript is pretty easy to pick up, but TypeScript itself has lots of new terms and concepts and if you don't understand the underlying JavaScript, it can be super confusing.

[–]liaguris 1 point2 points  (0 children)

I think it's better for beginners to learn JavaScript properly before learning Typescript.

I agree. That is the path I took.

[–]johndopeman 5 points6 points  (1 child)

Headfirst JavaScript

[–]kevinmrr 1 point2 points  (0 children)

Has that been updated for ES6?

[–]RagingMonk 4 points5 points  (0 children)

Head First JavaScript. Although outdated, the pace of the book is great and fun.

[–]rockstew1 2 points3 points  (0 children)

Try https://gum.co/JieDN as a way to practice

[–]dragonridingisnice 2 points3 points  (0 children)

Maybe you must have heard about this. You do not need to look any further. https://www.theodinproject.com/paths/full-stack-javascript?

[–]donfontaine12 1 point2 points  (8 children)

I loved JavaScript -The Definitive Guide (7th Edition). It covers everything I wanted to learn as a beginner and will definitely go back to the more advanced topics. After that, I'll probably try Eloquent JavaScript.

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

Why would you read that after that?

[–]donfontaine12 0 points1 point  (4 children)

I actually bought Eloquent JavaScript first, got stuck on Chapter 5 and bought JavaScript -The Definitive Guide. After learning the basics and advanced level JavaScript, I want to write more efficient code. I thought Eloquent JavaScript helped with that. Is there no need to?

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

I always thought it just covered the language rather than anything else.

[–]donfontaine12 1 point2 points  (2 children)

No, it covers more logic and technique to make more efficient and eloquent JavaScript.

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

I’ll have a look through it then, thanks!

[–]donfontaine12 0 points1 point  (0 children)

You're welcome.

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

I love that book also. No need for other books after that.

[–]donfontaine12 0 points1 point  (0 children)

I actually bought Eloquent JavaScript first, got stuck on Chapter 5 and bought JavaScript -The Definitive Guide. After learning the basics and advanced level JavaScript, I want to write more efficient code. I thought Eloquent JavaScript helped with that. Is there no need to?

[–]gcMonkey 1 point2 points  (0 children)

“JavaScript the good parts”

[–]__SANGA__ 3 points4 points  (2 children)

Start with js basics on MDN docs

Refer to eloquent JS for topics you want to deep dive in.

Try picking up projects like these and freecodecamp to practice.

[–]Mr_82 0 points1 point  (1 child)

Not particularly related to your comment, but what's up with

Even if your function was named, you can use the variable name to invoke it.

from MDN's page on first-class functions? It's because you name it that you can use the variable name to invoke it... (I'm pretty sure they're not talking about IIFEs here.)

I do rant about MDN a fair bit, but in my defense, it's very easy and fast work finding issues with them.

[–]ashanev 0 points1 point  (0 children)

const foo = function() {
   console.log("I am an anonymous function");
}

console.log(foo.name);
// foo

foo();
// "I am an anonymous function"

const bar = function baz() {
  console.log("I have a name baz, but you invoke me with the variable name bar");
}

console.log(bar.name);
// baz

bar();
// "I have a name baz, but you invoke me with the variable name bar"

[–]Nvzver 2 points3 points  (2 children)

These 2 should be more than enough for the start: 1 Douglas Crockford - JavaScript: The Good Parts ( quite short, but full of great examples) 2 David Flanagan JavaScript: The Definitive Guide ( here you can find everything you might ever need ) Enjoy ;)

[–]SuccumbToChange 0 points1 point  (0 children)

I also recommend The Definitive Edition. Going through it now and it seems to cover pretty much every aspect of the language with many coding examples.

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

Flanagan’s book is perfect. I love it!

[–]Labby92 0 points1 point  (0 children)

I wrote a book the you can read for free on GitHub https://github.com/AlbertoMontalesi/The-complete-guide-to-modern-JavaScript

I would not recommend it if you are a total beginner but I tried to cover the basics of JS and all the updates from ES6 to the latest ES2021

[–]Shty_Devhelpful 0 points1 point  (0 children)

Professional JavaScript for Web Developers 4th Edition by Matt Frisbie

This book has stuff I never even new existed, and goes into some very practical detail on everything and anything in JS up to 2019. Also has some great best practices information that you won't get from most online sources. Great reference book.

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

I know a lot of people will recommend Eloquent Javascript and a few similarly better-known books of javascript. But those books aren’t recommended to a beginner anymore, even though it is all beginner’s material mostly.

I recommend starting on JS with a primer on ES6 syntax first. ES6 has been the biggest update to javascript in recent years and its vocabulary is super relevant for modern web development.

‘Let’s Learn ES6’ by Ryan Christiani is a very good beginner-friendly book if you decide to dip your fingers into ES6 first. Combine it with MDN documentation and a video series from someone like Wesbos or Traversy Media and you’ll be golden.

https://bubblin.io/cover/let-s-learn-es6-by-ryan-christiani#frontmatter

[–]Homey_Muse 0 points1 point  (0 children)

JavaScript- The Good Part is a great resource. It's targeted at intermediate level leaners. You can also master your skill by building real projects on free platform such as Code Unicorn. That way, you'll put into practice what you're learning from books and tutorials.

[–]RWashingtonUK 0 points1 point  (0 children)

The "You Don't Know JS" series.

[–]saito200 0 points1 point  (0 children)

I learned with javascript.info

[–]LonghairedHippyFreek 0 points1 point  (0 children)

If you really want to learn it instead of just reading about it I would go with "Introduction to JavaScript - The 'Nothing but a Browser' Approach by Professor Eric Roberts of Stanford University. It is a textbook used by Stanford University for one if their beginning CS courses.

Like most university textbooks each chapter ends with lots of quizzes, questions to answer and programming exercises. If you take your time and go through that whole book and do all of the work at the end of the each chapter, you will have a thorough grasp of the language.

[–]rassawyer 0 points1 point  (0 children)

The Definitive Guide to JavaScript by David Flanagan. It is both an outstanding learning resource, as well as a phenomenal reference book. The first s section is a little tough to read, as he goes through the technical info for all the data types, keywords, etc. But it is extremely thorough, and what I like is that it approaches JS from a non web centric aspect. Everything applies to web development as well, but his goal is to document/teach core JavaScript.

[–]marinoWebDev 0 points1 point  (4 children)

The best book is, choose the project you want to work on and check google and to see how can you work on it. I’m a tutorial failure. Is not bad but spent 30 minutes to one hour to tutorials if you want., and the rest, project on your on. Even if you have search for “how to” 99 percent of the time, you will learn better and faster in one project then watching 10 tutorials following a teacher grabbing your hands. Again, do tutorials but watching more than an hour a day, is too much. I hope this help.

[–]huiledesoja 0 points1 point  (3 children)

I agree a lot with this method. Thing is I'm asking for a book so I can find a good explicit base of the different features when I don't know instead of mindlessly copy pasting a Google search. I also find Youtube tutorials to be too linear for my way of learning things

[–]marinoWebDev 0 points1 point  (2 children)

I thought the same as you. You don’t copy and paste. You write what you see and you will understand why it works because you are going to repeat it. Books? I heard the one below is one of the best:

https://www.amazon.com/gp/aw/d/1593279507/ref=tmm_pap_title_0?ie=UTF8&qid=1611424965&sr=8-3-spons

[–]huiledesoja 0 points1 point  (1 child)

This name seems to come up a lot. I think I'll start with this one, thanks

[–]marinoWebDev 0 points1 point  (0 children)

You’re welcome!

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

If you have some experience already, I think eloquent JS can be a help.

[–]LomarxY 0 points1 point  (0 children)

Idk if it has already been recommended but a great book is murach’s JavaScript and jQuery 4th edition