The answer is obviously no. There are well over a million non-fiction books so even if you read a book every single day you'll need about 2740 years. So even at 10 books a day, you'd need 274 years.
But intuitively we know we don't need to read a million books. We know that reading 100 or 50 or even 10 well-chosen high-quality books means the reader has a lot of knowledge in at least one topic if not more.
So the question isn't how to read every book, it's what books to read to form a minimal spanning set over the knowledge we want to acquire (assuming the goal is to acquire as much knowledge as possible)
But that's assuming we only choose N books and read those N books from beginning to end. What if we actually read all 1 million books, but every time we hit a topic we already know we skip it. Suddenly the prospects of finishing the million books looks much better.
If you learn statistics, for example, you suddenly have made redundant most discussion of statistics in math books, engineering textbooks, CS books, and even statistics textbooks aimed at med students or any other profession. Sure you'll get some new perspectives from some books, some usecases, analogies, historical anecdotes, more breadth or depth in some areas. And of course the books aimed at math majors will be more abstract and rigorous, and the ones aimed at engineers more practical, maybe a book will explain a topic you struggled with in a way that makes it click for you. But in the end it's still statistics. Reading it the first time will take time, the second time will take shorter, and then it will just be rehashing the same topics but adding a new perspective or analogy along the way.
So the way you'd be reading any book in this way is looking for things that surprise you in that book. A book about a topic you know nothing about will be full of surprise and you'll probably need to read from beginning to end. But a second book about that same topic or an adjacent one will have less surprises, so you don't need to read it in full.
It's a bit like cross-entropy. You're aiming to minimize surprisal by seeking surprising information, so you get less surprised overall afterward. We do that to train LLMs, but we don't really pay attention to our own mental models and ways of seeing the world.
You also need to be honest about what you can skip and what you need to read again. It may be tempting to skip a topic you read in a previous book but you didn't really understand. This is an illusion of knowledge, not actual understanding.
This also builds knowledge, but not expertise. You need to actually work and struggle with most concepts to build the intuition and intimate knowledge that we call expertise. Being an expert is a very complicated topic and we're only discussing knowledge and mental models here which is one part of expertise.
Mental models are important. Reading everything in a particular field and organizing it into a tree or graph for example, means you can reason about what has been done and what hasn't been done in a much clearer way. As you read more, you update your mental model and add, remove, or merge nodes in the graph. And suddenly you can see gaps in the graph. The more comprehensive your reading is, the more sure you are that this hasn't been done yet. You have all the tricks in the book -well, all books- in your mental model. You can mix and match and add as much as you like.
This isn't some new or revolutionary idea. We've always done this. Syllabi, textbooks, literature reviews, design patterns, art styles, case studies, wikis. But I feel most of us don't focus on it as much as it needs to. We can read news covering the same ideas we know about and waste time reading the same stuff over and over again instead of combining it all into one node and seeking novel information or connections between information.
But why know as much as possible about everything? What would you even do with all that knowledge? Knowledge without acting is useless for the most part. But you can apply a micro-version of the same idea inside every domain you care about. Software engineering, web design, medicine, everything.
You can't read every codebase, but you don't need to. Reading a few codebases related to a given task makes you notice patterns, and you start to categorize them into a few approaches, each with its tradeoffs and its way of handling common problems.
Read enough of these and reading them gets easier, shorter, and faster, same as books. You're building a map, constantly adding, pruning, and merging nodes together in the graph to understand the topic. Eventually you can say: "There are four ways to build X, here are their tradeoffs, and here's what changed since the most popular projects were written.". That's the valuable part. Instead of redoing the same project and making the same mistakes all over again, you can step back and see the wider picture, you can reason about it from first principles and try to probe the map to synthesize new ideas or approaches, maybe by mixing ideas from different approaches or having an insight that none of the other approaches had. You won't know that without knowing what others did.
Same thing with products. You don't need to study every single product, but you need to study enough so you start to notice patterns. Maybe they all struggle with something, and you notice the rough edges and combine the best of each approach. You start to recognize which products exist in your space, how they're segmented, who they target, and how each one turns all that into a value proposition. You are now in a good position to notice the gaps that are left. Say you want to build a product in the database space: survey it the same way and you know every product that came before: what they do, how they do it, why they succeeded or failed. That's essentially what market research is, but the point is being comprehensive without being redundant. And that's what lets you confidently think of new ideas without worrying it's all been done before.
Same with websites. You could say there are infinite designs, and you'd be technically right. But browse a few dozen company sites and you can definitely cluster them. Maybe it would be a few hundred buckets but it's still finite, and knowing them gets you most of the space. A new design will still surprise you once in a while; fine, new bucket, and every similar design joins it forever after. The question is the same as with books: given all the designs you've seen, how likely is the next one to surprise you? And how competent are you to design -or prompt- the next one? You don't need to see every website for that. Just a high-quality, representative sample collected by you, not the LLM. It sounds simple, but if everyone did that we wouldn't have to deal with the ubiquitous "LLM design".
But why does all of this matter? Can't you just tell the AI what you want? Yes, but then you risk regressing to the mean. It's like this post: tell the AI to make "a poster" and you get the average of every poster that exists. It's not like the models aren't capable of more sophisticated designs; it's that nobody asked for anything else. His fix was to have the model list design styles, then pick one by name: Bauhaus, risograph, Japanese minimalism. You still need to understand design. You need to have taste.
The model can help by enumerating the vocabulary, and it's good at doing things like that. But then you have to pick a style and impose it as a constraint. The judgment call is the part that can't be delegated, because the model doesn't have preferences. It regresses to the mean.
Don't overdo it though. Set a deadline. Don't lose yourself studying every possible aspect of every possible thing. 20% of the research time gets you 80% of the value. Compress knowledge, prune it, categorize it, then act. Life is short, speed matters.
The map won't make you competent by itself, and it won't do the inventing for you. It tells you which questions to ask, but acting is what calibrates your answers and builds expertise. Experience is still made of building the thing, overcoming challenges, and editing your map accordingly. A clean taxonomy of what exists can make it feel like everything has already been done, so use the map to know what exists, then step off it on purpose. Find new approaches.
Make the map, then go wild!
PS: I'm building my own map (an internet directory), I've written more about it here: Where did internet directories go?