Hacker News new | ask | show | jobs
by dkersten 2218 days ago
Another thing that bothers me is that most intermediary books on a topic tend to start with a good chunk of beginner stuff. For example, many game programming books will cover a ton of beginner material at the start, same with graphics books or books on a particular programming language. I shudder to think of how much duplicated content that I will never read because I'm no longer a beginner is sitting in my bookshelf. If I buy an intermediary or advanced book, I don't need a recap giving me the absolute basics! Eg if its an intermediate-level programming language book, don't tell me how to do simple conditionals or loops or something that I definitely already know to consider an intermediate-level book...
2 comments

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...

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.
There was a commenter here on HN (if my Google-fu serves me, I'll come back and edit with a link) talking about this problem wrt contracted educational services. Folks request intermediate to advanced training. The trainer shows up, finds out that everyone is actually a beginner with this particular technology, and has to adapt the course appropriately.

That's pretty good customer service, but it's not something you can get with a book. I suspect "intermediate" books with a "beginner" start are attempting to address this problem and head off the terrible reviews. Perhaps it's an ego thing with software engineers. "I'm no idiot, so I'm intermediate," "I've been doing software for decades so I'm advanced," and not realizing that it's about your experience with this technology, not your brain.

Okay, so you propose all books should be written for noobs just in case noob picks up something for already advanced user?

That just doesn't make any sense.

Obviously, the author of the book can explain the book is really meant for a user with some prior knowledge and experience of the matter. If the reader ignores it it's not really a problem of the author to deal with.

My background is mathematics and, as an example, just recently wanted to pick up some control theory. It is absolutely normal I pick up a book I have not enough knowledge to even start reading. It is normal. You get something else, study it, then go back to the one you tried to understand.

Agreed. The one thing the Internet surely did was enable self-starters to have their fill of the entirety of human knowledge. But you have to have determination and patience. Some things might not make sense the first time you read them. I come back to things that I’ve already read time and time again, and get new insights out of them each time.

“Oh!!! That’s what they meant here!!!”

I say this once a month with something I’ve read 50 times. We need to reward people for having determination, not make every single book beginner friendly at the expense of deep material. We’re doing the world a huge disservice by limiting the potential of what people could be sharing.