Hacker News new | past | comments | ask | show | jobs | submit login
Master JavaScript Programming with 18 Open-Source Books (ossblog.org)
127 points by vinny12 on Mar 3, 2017 | hide | past | web | favorite | 23 comments

The only way to master JS is to read one or two books (YDKJS being one of them) and then actually program projects of increasing ambition while asking questions and reading docs.

I'll never understand the obsession with reading so many books and doing so many courses.

Can confirm, I fell into this trap. Read books for about a year and realized I don't know shit and barely could code a hello world app. Then started actually applying those skills to hobby projects and learned 500x much more that way.

I'd say JS essential reading would be:

1. JavaScript the good parts - because classic

2. You don't know JS series - because depth

3. Functional JavaScript - because underscore

Then you're done. Go find a Node or front end framework tutorial and blast off from there. Build build build.

Save time and skip 1)

It's nice to know some historical context around this/hoisting. But it will come up in YDKJS too. Start your journey on ES6.

No amount of books will ever replace rote practice and just doing the work.

I'm a big fan of the online version of Eloquent JavaScript, it has inline code blocks that you can edit and run. Make's it really easy to test out a concept you just read about.


Nice. The inline code editor is very cool. Been looking to freshen up my JS knowledge so this is a good find.

These days I find the most important thing to 'get under your belt' is how to think and design in a language and more importantly, in your chosen frameworks.

Learning a language is usually not too difficult. Getting to the point where you understand how to 'think' in that language can take months.

It's why, when exploring a new language I usually hunt out 'Designing in <framework>' or 'Writing components for <framework>' courses and books. It is the way you glue together an application that is key.

Do people really find language-specific books helpful in better understanding a programming language long-term? Without ever implementing something, I don't think my memory would hang on to some language feature for long.

This is why I love Big Nerd Ranch for learning mobile dev. All of their books are completely focused on building one or two projects from start to finish and teaching you things about the API, dev environment, and best practices as you go. Usually at the end of each chapter there's also a "why" which explains why you had to do the seemingly obscure thing you just did so you're not just copy-pasting code.

Yeah, I rarely read books anymore aside from hunting down very specific knowledge. For example, I recently bought a PDF on using Netty since I find it hard to figure out from scratch.

But language books? I don't really see the value beyond the beginner level. Every a-ha moment for me comes from building something out of my comfort level and then reading other people's approach to the same sort of solution.

The language-specific books have always been helpful in getting me to discern whether I'm making a syntax error or a logical error. When it comes to implementation, I lose interest very quickly if it's something that has already been done reasoning that I can just use someone else's implementation.

So this way, I "fill in the blanks" with what I want to implement, knowing that an error or unexpected behavior is entirely my misunderstanding of the logic and not my misunderstanding of the language.

The best ones are those that have projects at the end of each chapter that incorporate what you've just learned. But yeah, I feel that books are mainly just for jumpstarting into a language, and don't help terribly much in the long-term. It can help with solving problems in the most sensible way for the language, but otherwise it's best to just hammer on a project.

I like to read language-specific books initially to ramp up quickly. Though, my goal is to get to actually building something as fast as possible. The books just make it easy to quickly grab the basics.

The weakest spots in the JS code I have seen, in npm and the projects I've had to maintain:

- Profiling CPU and memory: preventing and mitigating resource leaks.

- Robustness: Input validation, error handling, logging.

- Event handling and construction of finite state machines: defining states and transitions and validating them.

- Using a sane coding standard. Like Google's JS standard rather than the self proclaimed "standard" from feross.

The "request" npm module for example, is a FSM where states are defined by a combination of flags. However you can obtain states that are not handled by the library, because the FSM is constructed poorly without validating state transitions. That is a very common theme in npm modules.

You Don't Know JS's one on Async was the book that finally made the lightbulb go on for me with Promises. Can't recommend it enough.

Learning JavaScript the language is trivial compared to learning JavaScript the eco system. I've currently started working on a project using Vue, webpack, babel and bunch of other tools I've never used before and I feel like I'm learning an entirely new language and 90% of the time my actual JavaScript knowledge is completely useless.

Completely agree. JavaScript is often on of the easiest parts of building front-end applications.

My favorites are missing: http://exploringjs.com/

From Axel Rauschmayer: http://www.2ality.com/p/about.html

Too many books. I think with 'Node.js Design Patterns' and the 'You Don't Know JS' series is more than enough.

Only 18!?

Don't worry. 15 of them overlap so you should be able to read them quickly.

Yes, and that's just the basics!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact