logoalt Hacker News

isityettimetoday at 4:49 AM0 repliesview on HN

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.