I tried to introduce a partner to programming with an introductory Python book one year ago. It was brand new on the shelf in the impulse purchase area at Micro Center. It looked nice on the outside and decently vetted at a glance of the intro and a page or two, I trusted Micro Center (undeserved in retrospect), and I was in a bit of a rush. I gave it to my partner to try out on their own and they started having trouble pretty quick, and it wasn't really their fault - it was using a lot of technical terms and concepts with no explanation that you wouldn't expect someone to know who hasn't taken a few Computer Science classes.
And the best part.. it was Python 2.7. Micro Center sold me a brand new, glossy covered "Learn Python" book based on 2.7 in the year Anno Domini 2025. Its instructions didn't even properly tell you to install that version, so if you even make it that far you're going to be lost why the syntax is wrong for every example.
Moral is, books are just as easy to strike out on as a bad online resource. Honestly, I feel like Googling "x language tutorial" is probably going to get you the best results much more easily than picking something off the book shelf - if I can't vet a book reliably, and I already know the damn language inside and out, what hope does a newcomer have?
There is a good ending at least. Among a bunch of random stuff I got from an infrared spectroscopy shop that was closing down and practically giving away all their cool equipment, I found a copy of K&R C. I'd never read it myself but I'd heard so much about it online over the years that I figured it was as worth a try. So I got the victim of the Python book set up with WSL and gcc, and they had a much better time that time around.
I did something similar with my partner, though I didn't look at a shelf in a physical store. We ended up going with How to Design Programs. There were some small terminological things that I helped clarify. (I can't remember what they were.) But overall, I was blown away by how much she was able to just pick it up and run with it. She used just the book and a little bit of help from very cheap and basic LLMs (not for writing code, just for answering questions) did really well, until life got too busy for her to put more time in.
Overall I think it's a really good book for this kind of thing: https://htdp.org/
> Moral is, books are just as easy to strike out on as a bad online resource. Honestly, I feel like Googling "x language tutorial" is probably going to get you the best results much more easily than picking something off the book shelf - if I can't vet a book reliably, and I already know the damn language inside and out, what hope does a newcomer have?
I don't think language tutorials or "Learn $LANGUAGE" are good targets for introducing people to programming. That's true whether it's a book or a blog post or a YouTube tutorial. You want to teach computational thinking per se before focusing on a particular language. Something like HtDP or _The Little Schemer_ or _Logic, Proof, and Computation_.
Even if you want to dive in with practical skills before developing a foundation, you still don't really want books with targets as broad as "Learn $LANGUAGE". You want something like the _Learn Enough ... to be Dangerous_ series, probably starting with the entry on Command Line and then moving on to the entry of a target language (JavaScript, Ruby, Python) in the same series. Then you can move on to a book that tries to teach more or less a whole language, or a programming paradigm through the lens of a particular language.
If your goal is to learn programming, it doesn't matter that much if the programming language is obscure or the toolchain is out of date. But if your goal is to learn some language to work with peers in it at work or something like that, then yeah, you gotta check the publication date.
For a lot of us, maybe our first programming book or class was presented as a "Python course" or a "Java course" or whatever, but that doesn't really represent the goals of a first encounter with programming no matter what your strategy is.