Hacker News new | ask | show | jobs
by NikolaNovak 20 days ago
Beyond the slowing you to type, the key part of the good books was the considered and mindful order of presentation. This is what had me spending money when I could get the reference manual for free - a guide, a book that taught me unfamiliar concepts in top down fashion, and took some degree of responsibility to be both accessible and comprehensive.

I love the tutoring of LLM, but to this day as a complement to a guided book. I don't find such guided books in computer science much anymore sadly, but for now I still do it in other venues - French, Biology Astrophysics and such. I grab a book, and then use LLM to supplement my reading as my mind always has a myriad questions :).

Not entirely sure why computer science is so radically different - maybe because things change and get obsolete too fast? At any rate, cuddling with a book is still my favourite way to learn a new topic, much as I spend 12 hrs a day eagerly typing and staring at the screen as well :).

6 comments

Unfortunately even in the old days, a truly good programming book like you’re describing was depressingly rare.

Younger me really enjoyed some of the game programming books by Andre Lamothe.

Most “Learn Language X” books were terrible with over focus on syntax and very little thought into organization.

Apparently the guy who wrote the Camel book on Perl made less than $1000 from that book. I was shocked when I heard about that because back in the day when I was learning that book was incredibly popular and seemed to be everywhere.

EDIT: Edited, not wrote. My bad. That's a crucial distinction. Also, I meant the Llama book, not the Camel book.

That’s not true. I wrote the Panther book, Advanced Perl Programming, and easily made way more than 100k. Of the 25-30 or so dollars the books cost, I got 10% per copy, or $2 after taxes. The first print run of 35000 sold within the first three weeks.

The Camel book was already a huge bestseller, and was one of the anchor books of the early OReilly series. It made Larry a pretty penny

The 4th edition authors included brian d foy, who said "I think Tom [Christiansen] and I worked for about two years to produce the current edition. I certainly wouldn't want to spend that much time again to make less than $1,000... It's a huge effort from the editors and proofreaders and the book won't sell enough to make back the effort they put into it." https://www.reddit.com/r/perl/comments/1ns5r9n/comment/ngmvt...
I wasn't aware of this.

The first edition came out in 1991. The 4th ed came out in 2012, by which time Perl was no longer the duct tape of the internet. Perl 6 had muddied the waters, and Ruby and Rails had peaked.

Still, 1000 is painfully low, esp. for a high quality product.

Yes, you're right. That is the comment I was referring to.
If only Amiga assembler books hit those type of numbers.
Do you suggest any such books?
These are good ...

"Python for Data Analysis" by McKinney (2018)

"The Go Programming Language" by Donovan and Kernighan (2016)

"Hacker's Delight" by Warren (2013)

"Algorithm Design Manual" by Skiena (2008)

"Purely Functional Data Structures" by Okasaki (1998)

"Structure and Interpretation of Computer Programs" by Abelson and Sussman (1985)

> Unfortunately even in the old days, a truly good programming book like you’re describing was depressingly rare.

And when you got past the beginner stuff, non existent.

I've randomly tried to improve my $LANGUAGE_I_ALREADY_SHIPPED_SOMETHING_IN knowledge across the years, but if you look at books there's a plateau, and it's not too high.

With the internet, there are random posts here and there with pieces of info that will help you improve yourself. But no books.

You’re better off learning foundational knowledge. Languages are notations, not intent. What has been useful for me are Computation theory, Algorithms, Concurrency, Distributed Systems, Operating Systems theory, Practical system administration, Computer Organization, Networking,…

I do get language books, but only as a reference. For anything more advance, I usually read the sources.

You’d think someone would write about the tricks you learn breaking your teeth on the language though.

And they do, in random forum and blog posts though.

Agreed, Books on specific programming language were indeed tricky.

I found books on architecture, systems, or patterns, were more available. E.g. On relational database optimization principles, or Unix system administration, or graphics algorithms and rendering math, etc :)

> the key part of the good books was the considered and mindful order of presentation.

> a guide, a book that taught me unfamiliar concepts in top down fashion, and took some degree of responsibility to be both accessible and comprehensive

> the tutoring of LLM, but to this day as a complement to a guided book

> I grab a book, and then use LLM to supplement my reading

My sentiments exactly!

People forget that mere data/information without a proper encompassing mental model/framework into which that information slots in to complete the big picture is what education and knowledge are all about. You must see the forest and not just the trees.

This is particularly relevant to CS since there are so many interlinked concepts involved that you can get overwhelmed and drown in the details without understanding anything. Edsger Dijkstra explicitly pointed this out in his EWD340: The Humble Programmer - https://www.cs.utexas.edu/~EWD/ewd03xx/EWD340.PDF

If you haven't built up a systematic and holistic mental model then you have not learnt anything. Top-down design and Bottom-up implementation both have to meet for the system to come together.

This is the main reason you need a good teacher or a good book as a stand-in for the teacher.

Corrigendum;

> People forget that mere data/information without a proper encompassing mental model/framework into which that information slots in to complete the big picture is what education and knowledge are all about. You must see the forest and not just the trees.

should be,

People forget that mere data/information without a proper encompassing mental model/framework into which that information slots in is useless. To complete the big picture is what education and knowledge are all about. You must see the forest and not just the trees.

"considered and mindful order of presentation" -- along these lines my favorite programming book is the Commodore 64 User's Guide, coupled with the reference. I was quite young and found the programming section very approachable. It build on itself in logical layers, and I felt like I had a companion to guide me through the process of learning and understanding. IIRC, I read it like a novel a couple-few times in the process.

https://archive.org/details/commodore-64-user-guide/

> the key part of the good books was the considered and mindful order of presentation

I'd always start with textbooks then flesh out the gaps with internet materials.

I felt "linear learning" from a veteran practitioner gave me a shortcut to how I should store the material and conceptualize the relationships between moving parts. Like surveying the land, putting foundations where an expert might put them, but then I was on my own for what knowledge to actually build.

I've commented on this development before on HN, so I'm glad to see this post on the front page. From a few months back:

"...the fact of the matter is that kids getting into high tech and programming mostly don't read books anymore. How do I know? Recently I was hanging out with a bunch of high school students who asked me how I learned. I said it was mostly via books and man pages. "Yeah, don't sleep on high quality written material. O'Reilly. Wiley. Addison-Wesley. Manning. MIT. No Starch Press. &c...

"Well. You should have seen the look on their faces. I might as well have morphed into the Steve Buscemi meme "How do you do, fellow kids?" They looked at me like I was a total relic or greybeard and said things like "Nah, nobody reads tech books anymore; I learned Typescript from YouTube videos."

This reminded me of the Diataxis documentation model.[1] A lot of what's out there now is the "application" side of the model, leaving the "acquisition" side unfulfilled.

[1] https://diataxis.fr/