Hacker News new | ask | show | jobs
by reificator 2224 days ago
This is why I look for gems like Professional Javascript for Web Developers[0][1]. (I can't speak to the latest version, I think I read the 3rd edition from 2012.)

It's a book about Javascript that assumes you've written software in other languages before. I believe the book uses Java/C#, Python, and maybe a couple other languages as reference points.

It describes language behavior and constructs that may be new to you, and details where the familiar may differ from what you'd expect. For instance, the section on `var` and how function scoping (and hoisting) differ from block scoping was quite detailed, but I don't remember it spending a lot of time on what it meant to declare a variable or why scoping rules matter.

If the book had a beginner focus I might have seen the section on declaring variables, skimmed to see the `var` keyword, and skipped the rest. Then I'd have written a bunch of code that would bite me later, because why would you ever assume function scoping when coming from another language?

It's unfortunate that it's so difficult to find books with either an intermediate to advanced focus, or a focus on switching languages, as I think both are sorely needed in the current programming ecosystem.

[0]: https://www.wiley.com/en-us/Professional+JavaScript+for+Web+...

[1]: https://www.amazon.com/Professional-JavaScript-Developers-Ma...

2 comments

Author of the 4th edition here!

Much credit goes to the author of previous editions, Nicholas Zakas, for dictating the style. He offered this advice when I began the new edition:

I tried to make it a book that had a distinctive approach, which is that it didn't treat the reader with kid gloves and went deep into technical details to people could really understand the language. This, more than anything else, is what people have told me they enjoyed about the book. It was unapologetically not for beginners.

More than anything else, this advice is what guided me in preserving the original style in the new edition.

Fluent Python sounds like the same thing. It assumes experience in another language and having done the official Python tutorial.
Thanks, I'll have to check it out. I've definitely dabbled in Python but I would like to learn it properly.