- Mar 2026: 124
- Feb 2026: 140
- Jan 2026: 157
- Dec 2025: 306
- Nov 2025: 484
- Oct 2025: 218
- Sep 2025: 176
- Aug 2025: 136
- Jul 2025: 317
- Jun 2025: 230
- May 2025: 237
- Apr 2025: 165
- Mar 2025: 367
Sales are certainly down, but it has gone up and down in the past.
Since the 1st edition came out in 2021, it has sold roughly 20,000 copies (about 10,500 English paperback copies, 3,800 ebooks, and 6,700 translated copies). The 2nd edition came out in 2024 and has sold roughly 13,000 copies (about 8,300 English paperback copies, about 3,000 ebooks, and about 1,600 translated copies).
Most of the money comes from O'Reilly's online platform, not from book sales. That has been declining lately, partially because the latest edition is now over 2 years old, but also I suspect that people are cancelling O'Reilly subscriptions and just relying on LLMs (which have indexed all of the books and used pirated copies to do so).
This follows a general trend. Areas which used to be bounded by the limits of the human mind stopped being bounded that way some time back. This first appeared in corporate structure. Through the 1970s or so, there was an upper limit on corporate complexity. Beyond some point, connectivity problems started to choke the organization. There were classic ways around this, mainly dividing companies into sub-companies with their own profit lines. "The Concept of the Corporation" by Peter Drucker describes how General Motors did that. GM was at the time a group of loosely connected car companies under one corporate roof.
A few companies figured out scaling early. Sears was famous for having developed the "Schedule System", which reduced fulfillment overhead from O(N * M) to O(N log M). This allowed Sears to run a giant ordering plant out of Chicago to serve the whole country. But many companies didn't scale well, and choked as they grew. Westinghouse is a classic example.
As computers came in, the scaling problems receded. Airlines got their reservation systems under control, and seat utilization went up. Logistics went from warehouses to fulfillment centers, with much shorter holding times in inventory. Chains no longer were limited in size - WalMart, McDonalds, and the big banks could expand to planetary scale. The giant corporate paper-pushing plants disappeared.
So did forced organizational simplicity. Companies had, at some level, to be simple. Otherwise they became unmanageable. As computerization proceeded, that constraint was relaxed.
Finance achieved previously unimaginable levels of complexity. Until the 1980s, most financial products were rather simple. Now, there's no limit, and the tail wags the dog. Futures markets are far bigger than the volume in the underlying commodity, and zero-sum activity dominates.
AI will accelerate this. There will be businesses no human can comprehend or manage. This may not be productive but will be profitable for someone.
Interesting, is SO getting traffic again? I thought it wasn't doing well? Or have they adapted?
> The programming book was, when you look at it squarely, always a slightly absurd object. Printed text on bound paper, describing software that lived on screens, which the reader had to retype, by hand, into a screen of their own.
The point of programming books was never "give a man a fish" but "teach a man to fish." If you were not hands on, experimenting, and instead copy-pasting you likely didn't get anything out of the book anyway.
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 :).
The crazy thing is that SO is dying so quickly that it's already under half that amount.
https://data.stackexchange.com/stackoverflow/query/1926661#g...
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.
Also, now when I am trying to learn a language, I just work on a project and search in the docs (or just on Kagi) to find what I am trying to do. Maybe a physical book would be a quicker reference, and maybe I should buy some more of them.
P.S. I enjoy finding old computer books (like DOS/Win95 era) at the thrift store.
> You already know why, more or less. ChatGPT has over 900 million monthly active users. GitHub Copilot has 4.7 million paying subscribers as of January 2026, up roughly 75% in a year. You can’t imagine writing software without Claude Code anymore.
I read programming books and use LLMs for different purposes. With books, it's usually not to find a solution to the very specific problem I'm working on. That's what I use LLMs for because they give very focused answers. Books, on the other hand, provide much broader context that help me learn a language. Whereas with LLMs I get a solution yet tend to retain nothing. YMMV.To be honest, I'm 17 y.o., I'm coding by chatting with an agent, but it seems like we can't tell the distinction too absolutely.
At the first time writing a React app, I forgot to name a file with a .tsx extension and I used .ts instead, then spotting ugly error lines across my JSX syntax, confusing and sharing with my friend, and laughing this little funny thing all the day.
I once spent the whole afternoon choosing a js linter, reading their docs and perceiving different tastes. In my early twelve-ties (uh this sounds funny too) I'm always arrested by configuring Windows PEs, installing different Linux distributions on my PC, etc. Today I still read tech books, alongside videos, articles and also chatbots. Chatbot is a new tool, but there's no doubt it cannot replace other media types and what they bring to us/me.
What may I express is that a natural interest in programming or computer things cannot really be overwhelmed by LLM things. I don't know how to use vim skillfully since I majorly used Windows at my early age and I'm not familiar with vim's logic, but this practically doesn't stop anything. I still found Linux's fantasy, at last. And same for LLMs.
I did find "Eloquent JavaScript" very helpful, it didn't just get me started on JavaScript but actually introduced that whole computer-sciencey side of programming that I hadn't encountered in my various markup and stylesheet language coding. I never finished Eloquent JavaScript though, it was like a springboard that got me into JavaScript (which is dynamic and has an interactive runtime) and as soon as I could be having a conversation with JavaScript at runtime, from there I continued learning by talking to the REPL and seeing what happened.
I also once read a book on MS SQL Sever 200x, which I don't remember much of, and I don't think it was terribly useful anyway. If I wanted to know the size of a datatype I'd Google it.
I have seen a myriad examples of people that have half-learned a language from random snippets in the web (or from AI now), and the struggle never ends. And taught courses or videos tend to be too time-inefficient and too shallow, more of an intro.
A good book is still by far the best way to get the complete and cohesive overview of a technology and put it into context. It gives you the kind of mental model that allows you to solve fresh problems from first principles thinking, because you understand the whole breadth and depth of how the technology works.
StackOverflow is kinda forgotten now, but there was a time where you could find the answers to pretty much all your programming questions there, and if not, you could simply post a question yourself (and yes, there was a time where SO was pleasant to use and your question didn't get immediately shut down by overzealous admins).
I personally never liked learning a programming language from a book. Like, in the early days of Java, I would get so much more use out of the then excellent API docs than out of secondary material.
And of course, programming is one of those disciplines where you really have to just try it out to really make progress.
Books are still good for the fundamentals of course.
But I've started reading programming books again recently, on my e-reader and on my laptop. People are still writing them, and they're still good. We should all go buy some!
For my own usage, I don't see chatbots as supplanting textbooks. If anything, they pair well; reading a book from cover to cover gives me the breadth and depth I want, but LLMs are there for tangents and questions that come up along the way. I was reading a book and chatting with Claude like tihs just yesterday, for a few hours.
The problem with LLM learning is not that they can't explain a concept, but you have to know what to ask in the first place. To get a deep proper answer from LLMs you need a deep precise prompt. When you learn the new topic, you don't know about the topic itself, so you need a properly structured interleaved material to grasp new concepts.
After you get the concepts from books, you can prompt the LLM for particular non-covered subjects you are interested in.
So even these days when I'm interested in some topic, I sometimes even ask the very same LLM to provide me top-10,top-20 books for the topic, with short overview for which type and level of readers and style they are, pick a few and read them.
LLM is a replacement for docs and simple questions on StackOverflow, not for the real organized knowledge that requires a few hours session of concentration to understand.
A good book deals with that.
For example, my Effective Pandas book teaches best practices that most never learn because the blog posts that train the models are actually espousing anti patterns.
(As an author I'm keenly aware that fewer folks are buying books.)
These days, I don't use LLMs for actual programming but will ask them questions in lieu of doing a web search. It's like documentation I can chat to. Basically a more efficient blog post or book chapter that happens to be dedicated to whatever it is I'm working on.
Many of those are not programming books, but they do seem to be recently published, I wish my Japanese was better.
And I wouldn't have it any other way. I remember my ginormous Visual Basic 3 Bible from the 90s with great fondness and nostalgia, but thumbing through a dead-tree book to figure out computery things is just not a thing I care to do.
Having said that, I still think there's room for computer related "books"... of the digital kind, at least. It honestly feels a little absurd to even consider buying a physical book for this sort of purpose.
my 0.02 on the matter: things are stacked against you even if you are not strapped for time.
a vast majority of the stack is changing too fast and non-digital versions are not appropriate beyond learning the base of a language or high-level design patterns.
as publishing became super accessible, there is also a plethora of options, and increasingly difficult to sift between the lower-quality stuff and the diamonds.
for most people, very few (kinds of) programming books exist today that could stay relevant beyond the university.
I've only had peripheral exposure to writing in assembly and "systems level" programming so I'm really quite enjoying it.
[0] https://www.amazon.com/Computer-Systems-Programmers-Perspect...
I have it generate an ePub file, and drag and drop it to my kindle.
It's a great way to take information with me, out for a long walk where I can focus on it and absorb it.
Look at video game or pop culture coverage for example. With a few specialist exceptions, no-ones reading print media for info on them anymore. Things like YouTube and social media and specialist websites are just a lot more practical and up to date.
I get that books make it easier to go slowly (or for writers to spend the time researching), but tech is just a fast moving field. By the time something is available in print form, it's probably already near irrelevant for work purposes.
Do you need to debug some ancient perl? Sure, ask Claude. You'll get an answer and move on. But if you're looking to learn how to use the next technology before it's mainstream, you'll go looking for that material. And it's there, where you expect it to be. Do you still watch network television or haunt Blockbuster? Times change and the market moves on. The interesting thing is, people like books and they're also available for those looking for a physical artifact to hold. Most of what's available is POD. Depending on the title, you're hitting the print button when you place the order.
Before the rise of AI, developers were basically doing copy/paste from StackOverflow. There are few developers who knows how to code.
Even DevOps engineer, I worked with CI/CD "specialist" who couldn't work for sht, if you asked him anything outside StackOverflow, he couldn't answer.
But there is a silver line for everything.....
I am not a developer but I learned to code with Perplexity AI, but not copy/paste, anything I didn't understand I asked it to explain why.
I wrote my first python app with classes, functions, 94% code quality coverade, the mock unittest was 4x bigger than the actual code. I can start a python script from scratch without looking at my own examples.
I would never be able to do that within a few weeks by looking at forums that often have worse response than AI hallucination.
It’s bittersweet that perhaps the next generation will never truly understand how utterly insane it was that small companies were paying developers like me good money to read books, then struggle for months to create a simple CRUD app that could have simply been copied, but the company “felt it was right to build their own custom one from scratch.” This would then lead to endless management meetings full of middle managers who never truly felt comfortable turning on a laptop, only for the end result to become a mess of functionality destroyed by committee, shifting goalposts, blame directed at fired programmers, and years of completely wasted human and financial capital — all for a monstrosity built in Flash one year before it was deprecated.
My only consolation is that if the new generation never knows the true horror of human ignorance, perhaps it will spare them the generational shame.
Maybe someone disagrees, I'm open to hearing what the book has taught you that the digital docs/book didn't.
I even sometimes read them without touching a computer.
Studies show that books is the best media to learn. Forget video, books + practice (now with AI explanations) is my learning methodology.
It's a great book, although it's forcing me to admit that I need glasses (the print is so small)!
I know it's a hyperbole but repeat a lie often enough...
Having coded Perl for years, I take that personally, pal...
One persistent internet and Altavista became available it was just a matter of time, and now we're there. The whole move fast and break things culture won.
Like Chesterton's fence, you don't know what you're got until it's gone.
(Reading HN to procrastinate.)
Using paper just works better for me.
I do use LLMs for asking questions, and other learning tools.
no AI can write it like this.
the same will apply to software. You just wait and see the day when disclaimers like 'No AI involved' would be a signal of high quality, especially for software on which lives depend.
I think the next deep dive was in 2022, when I learned Go. But that was completely from online sources.
you can't pick up c++ from the docs and the language itself is a monstrosity, and for that you must have book explaining why do you have 30 types of pointers, golang in the meantime have excellent official guide, and you don't really need any book
The most effective way to make money from open soruce was (for a time at least) to be Tim O'Reilly, Amazon, or Google.
Different brains, different strokes, but I think the book format is not wrong, the teaching and learning expectations are.
They're also incredibly useless. If I get a digital book, I can search it, highlight and categorize. And it doesn't weigh or occupy the size of a phone book. Many programming books are just gnarly and unpleasant for casual reading (unless it's a small thin book but it won't go into enough details).
I won't get into the copy pasting argument because someone will inevitably argue about how you should type the examples by hand to learn more! but not consider how many examples are in a book...
So when it comes to buying classics like K&R, get a printed version! But when it comes to 400+ pages, nope, buy digital.
So I think people still crack open books, but they're not paper ones nearly as much.
With AI that toolbox doesn’t grow. You don’t become better, everything from now on will be wrangled into shape with the frozen set of skills you have at this point.
For some people this is fine. For me the endless learning and sharpening of the blade is one of this most appealing parts of programming, so I hate this.
It's wrong for so many reasons. It disrupts talent pipelines. The staff+ people probably don't want to work twice as hard to cover the cut headcount. In general, people prefer to work on systems that are well architected and not some slop that got vibe coded up in a weekend.
They (corporate upper management) could've just done nothing and the end result would've been better than whatever the fuck is happening right now
It’s so obviously better to learn programming in a web based medium. Not just for tutorials or code-running environments, but also for having up-to-date manuals and references for tooling as new releases come out.
Or, if you don’t like that, e-books are again vastly superior with the ability to search easily without flipping through indexes, copy/select text, etc.
Books become out of date so fast, and you live in a hell of manual transcription, which is not actually that helpful for learning despite being highly manual. I also remember dealing with typos and mistakes that were hard to fix as a new learner. Let’s hope someone sent a letter to the author and that the book sold well enough to get a second edition, which I’d then have to buy…but by then it was too late, I’d have moved on.
There was a huge bookshelf because there was no better option. Just like Blockbuster video, something far better came around.
What made me stop was not LLMs, but that I started to get frustrated by every book spending what felt like 20% of its volume on 'how to properly install this' - something that was little value to me (that's the packet manager's job, and I am not screwing up my installation becaue you like that other processor flag more) - while prices rose. Final nail in the coffin was when O'Reilly decided to aggressively push their subscription model. I'm not paying money every month to get access to a library whose books can disappear at will.
I still buy the occasional No Starch Press book.
https://www.ebooks.com/en-us/book/345913182/ai-engineering/c...
Take a guess why so many younger devs will opt to pirate a PDF rather than purchase retail programming books. Publishers are pricing themselves out of the market.
I don't think programming books are going anywhere, because they still contain a concise directory full of information on different languages or frameworks. If I try to learn a language piecemeal through chatgpt or blogs I risk missing important details or platform-specific knowledge. I'd believe books on vim are going away but books on languages or other job-essential tools have a use in the market and I can't imagine they'll go away.
Sol,
Off-Topic: If I suspect that somebody in a company, or message board is tampering with a user's account, when they are not supposed to, say by blocking their ability to login, would legal action against the company in question be justified on the part of the user?
I volunteered, did the best job I could, and posted an honest review via blog. I got more review requests, and a few other publishers contacted me for the same.
I didn’t really master much, because I didn’t put hands on keyboard for a lot of it. But I got a good view of the technical landscape, and I accumulated a nice paperback library.
Before too long, the free books became free ebooks and some of my contacts needed renewing as natural career progression took place. I let my ‘hobby’ die off as I dug deeper in the topics that interested me.
So that era passed. I still have several books with my name in the credits, sort of a souvenir set from the time.
- Okasaki, Purely Functional Data Structures https://www.cs.cmu.edu/~rwh/students/okasaki.pdf
- The Garbage Collection Handbook https://gchandbook.org/
- The Dragon Book - https://faculty.sist.shanghaitech.edu.cn/faculty/songfu/cav/... (yes, it's old, but I still like the end-to-end, all-in-one intro)
- Windows Internals - https://learn.microsoft.com/en-us/sysinternals/resources/win...
- Structure and Interpretation of Computer Programs - https://web.mit.edu/6.001/6.037/sicp.pdf
- Concurrency Control and Recovery in Database Systems - https://www.microsoft.com/en-us/research/people/philbe/book/
- Crafting Interpreters - https://craftinginterpreters.com/
- What Every Programmer Needs to Know About Memory - https://people.freebsd.org/~lstewart/articles/cpumemory.pdf (the best thing Ulrich Drepper ever did)
- An Introduction to Modern Cryptography - https://eclass.uniwa.gr/modules/document/file.php/CSCYB105/R...
A good programming book gets better with age. If it's really about ideas and uses this or that technology for exposition, so much the better: the more remote in time the grammar of the examples, the more you can focus on the ideas. SICP being in Scheme is an advantage because you don't know Scheme yet; Windows Internals being about Windows teaches you generally good lessons in OS design by forcing you to contemplate a system alien to the Unix you probably know better.
It's shocking how many of these seminal books are available for free and how few people read them. Yes, yes, you can get the same information from an LLM, but an LLM won't give you the guided tour through the whole rugged ideas-space and show you a reasonable peak. Order, emphasis, and expository style build intuition, so books (especially old ones) are worth reading.
Probably for the best that books are going away, kids these days tend to turn them into their entire personality and keep alive bad ideas far longer then they have any right to exist.
I agree with the article good code lives on screens, it should be self documenting. If it can't be self-documenting then a tool is the next best thing, then docs, books, If a person has to explain to another person what going on something is very wrong. I also agree that "teaching modes" on chatbots need to be far stricter, I've seen some research in this direction. But it's also on the community to create a software cannon that isn't controlled by some megacorp so your dedication is yours.