How many technical books do you read per year?
The Pragmatic Programmer says that you should try to read a technical book once a month. I believe you should read at least 4 technical books a year but also agree that you should aim for 12 books a year.
So, how many technical book do you read a year? I'm probably an outlier. I read around 15 technical books per year. I read them because I enjoy their content: beautiful books like SICP, TAOCP, Stevens' books, etc.; I can recommend them to anyone. There are plenty of tech books out there that are awfully boring though (I don't read those). Funny enough, people usually say that books like the former (the beautiful ones, the timeless ones) don't help you on your current job... Well, I couldn't care less. I don't read sci-fi to gather knowledge either. I read for fun, and this applies to tech books as well. (I believe that timeless tech books do help you, though. They help you with your career, not with your (current) job). I haven't heard of the Stevens book. Would you kindly mention the book title?
TCP/IP book? Yes, that's one of them. The author is Richard Stevens. I don't get hung up on numbers or whether I actually "finish" the book. It is a lot easier to read a book like The Pragmatic Programmer cover-to-cover than it is to read a book about a specific language or API. I've been trying to learn Rust and I find that if I don't practice or do exercises then I don't end up remembering what I read. I read nearly all of "Programming Rust" but now I'm having to go back and read many sections because I wasn't writing the code as I was reading the chapters. As for "finishing" books, I rarely truly finish a book. I've been reading graphics and game engine books but I don't feel pressure to read every chapter. Did I really "finish" a book if I skipped chapters? Who cares. Every graphics/game book seems to start with chapters about linear algebra so I skip those. Collision detection? If I need to find the intersection between a line and a cone then I'll look it up. I also find it helpful to read a chapter from multiple books about the same topic (thanks to o'reilly books online). Like when I was learning C++11 I read the futures/promises chapter from 4 or 5 different books. I found having the same thing explained by different authors was more helpful than just re-reading a chapter. I also had a learning disability as a kid so maybe that's why I need to re-read things so much. Zero. I totally appreciate the value in it, but I'm old and just have a hard time making personal growth in my job skills a priority over time with family. I read more before I had children, and I would read if I was could spend some work hours on it. I've also seen people who read too much - all their work philosophy and decisions are not based on experience, but on a book they read. I feel the flow should be to: read -> synthesize new info with experience -> test out some changes to your way of working -> decide whether or not it works. But I've seen too much of: read -> declare sweeping changes to the entire team -> read another book. I can recognise the problem you are describing of people reading and not reflecting before applying. I also see your point of limited time, and I don't think choosing work over family is a good idea. One thing we have been doing for some years at my company is that I started a book circle to encourage my peers to read more and me to get more people to discuss and reflect with. We encourage people to read on work time and we go through 2-3 books a year. Check out my article for tips on starting a book circle for programming books (https://www.programmingbooks.dev/articles/book_circle/) I read a lot. I basically always have at least one fiction book and one technical book (usually math, statistics, or programming) that I'm reading at any given time. I think I'm an outlier on the other end. This year I've read 3 or 4 books on programming language theory, one specifically about Scheme, and The Rust Book. I've picked up and read a a little bit to a lot from a lot of math textbooks. This is all probably stems from graduate school training and my ADHD... It also helps to have PDFs or online versions and a baby that had some serious aversion to sleep, so the only thing you can do is sit in the dark rocking her and read... Do you take notes? It depends. For books that have exercises, no. I just do the exercises. For books without exercises, yes. Usually I try some of the key proofs, or to write some code that uses it. Usually with math/stats books I’m reading it for a specific purpose, so I start using it right away. For instance, I had to do some differential geometry and Lie algebras recently. I did problems in the book until I understood the material and then wrote some code that used it. For the PL theory stuff, I mostly just tried to write a simple Scheme-like language interpreter that added worked with the thing or tried to use a new language that leveraged the ideas. When I was reading about compilers I basically just started adding compiler stages to a simple compiler. When I was reading about dependent types I played around with Coq, Agda, and Lean. Reading is my only hobby right now (I'm able to fit it in around kids) so I aim for 3-4 books a month. Most of what I read is non-fiction, but technical books take a long time to finish so I'd say I finish ~10 technical books a year. I won't say I remember everything I read, but I highly recommend reading as much as possible. My career has been on an upswing the past few years and I have to think reading more has been a contributing factor. Reading has been particularly helpful at my current job where I don't have any mentors or more senior people to learn from, books have helped fill at least some of that gap. Context: I am a software engineer / architect with 8 years full time dev experience. I can recognize myself a lot in what you are experience. I have had a limited amount of seniority to learn from recent year and have found book a real gold mine of interesting ideas. I learned so much from reading and that is what drove me to my side project (https://www.programmingbooks.dev) that is all about helping people to read more technical books. Want to share any technical books that have affected you? Any favorites? Do you use any system to take notes? I have been "reading" Crafting Interpreters for about a year, and implementing variations on what it is teaching. I always try to have one on the go for 10% time or whenever I'm out of original ideas. Got SICP but expect that to take another 3 years at this rate. Crafting Interpreters and SICP are no small books to go through. I think those books are great but I also think that starting with them might not be a great thing (depending on interest, of course) as they are so daunting to get through. On my side project (https://www.programmingbooks.dev) I try to map out how a roadmap on how to gradually work up to these more heavier books that are still a great read. That's a great project, have bookmarked for later. I'm in a slightly weird position of having been a professional dev for many years but have big gaps in my computer science academic knowledge I am trying to make up for. Mostly just for personal satisfaction so I don't mind slow progress. Nice list. It would be great to make it from text in a repo so suggestions could be made as pull requests. one, maybe two? One technical book a month sounds like way too much provided you actually aim to work through the book thoroughly. I recently made my way through SICP because I never finished it when I was studying and that took me like half a year during my free time. SICP is of course a big and long book that understandably takes a lot of time for most people to get through (depending on prior experience). There are many other good books that are much easier and shorter reads than SICP. Maybe try some shorter books in-between the long books. Check out my side project for tips (and a roadmap for reading programming books https://www.programmingbooks.dev) I think it's more important to ask: how much have you _learned_ from reading technical books? There's also different reasons for reading technical books: getting answers to current problems (though most people would just search the web); going deeper on a specific topic that you're already familiar with; tackling a new area; etc. While I read a lot of pieces of books, I find reading in a group (book club[0]) to be the best way to really understand what's read (as well as providing a bit of discipline and structure to make sure I really read it and don't just skim/skip). [0] This is why I run a weekly book club as part of my Discord community (https://ted.dev/discord), so I know I'll deeply read at least a few books every year. > I think it's more important to ask: how much have you _learned_ from reading technical books? I think that you learn at least something by just reading, another perspective on things is valuable. I think an open mind is the most important when reading. > [0] This is why I run a weekly book club as part of my Discord community (https://ted.dev/discord), so I know I'll deeply read at least a few books every year. I love that you have an open book club! Maybe I'll join, We have one at work that I organize and it is great fun and one of the weeks highlights. I have also tried to collect my tips for starting a book club here (https://www.programmingbooks.dev/articles/book_circle/) Zero. I guess I'm an outliner. Any specific reason? Do you think it's a waste of time, do not feel like you have the time, or do you not know what to read? It's just personal preference. Books that just give information (especially techs) are replaced by the Internet.
Other books are supposed to teach me something,
but my experience is that I learn stuff by doing and thinking rather than reading. On the claim that it’s all just information, consider that a book represents a substantial portion of the life of the author(s) and editor(s). Contrast that to the cheapness of publishing online. Of course, whatever works for you works for you. Thanks for sharing! I agree, and I also learn the most from doing and thinking, but programming books gives me perspectives and ideas to think about, discuss, and try/do. The technologies changes nowadays faster than a book get published. This is why I'd never read a book to learn a framework or API. For me, reading is all about learning those core lessons that apply equally well across the decades (Code Complete was great for this). Whenever I think about consuming information, I always first consider the half-life of that information (another reason why I rarely spend time keeping up on the news). Maybe, but does the ideas, practices, and principle change often or at all for our profession? I find many old book still very relevant today, good books don't really age that fast. It depends on what I need. If the company gets into some new technology then I read a couple of books on the topic. I try to get generalist books instead of framework x.yy books. So, it can be 4-8 books or none depending on the year. So, it's the everyday challenges at work that motivates you on what books to read? Around 3 these past few years. Reading is not enough though. Of course, reading without practice, reflecting, and discussions is meaningless. What kind of books have you found yourself reading the last couple of years and with did you like and with didn't you like? The 100 page machine learning books, Designing Data Intensive Applications (DDIA), philosophy of software design etc. DDIA was the most useful since I could apply it directly to my work, the others not so much. Not even sure if I took away much from the ML books since I rarely use it in practice. Still enjoyable overviews. DDIA will stick, others won’t. As a data point, I've purchased (or borrowed from the library) 9 technical books this year. I've read bits and pieces of all of them, but I haven't read them cover-to-cover. By then end of the year, I'll probably be up to 12-15 total, but not reading everything. Edit: I probably read about 1/4 to 1/3 of each book (although this varies widely), so that puts me at ~4 full books. I haven't read a technical book cover-to-cover ever again since I got internet access in the late 90's. I remember that, before that, the books were my only source of information and I'd read everything. Nowadays it's more a compilation of dozens of different sources. Is there a reason you don't read them cover to cover? I can understand that some books are more reference than narrative. Yet, I find that most books are usually a coherent whole that is more than the sum of its parts. I've read about 1-2 per month so far this year, but I'm burnt out now and I plan on hopefully not reading any more technical books this year. Also I find I don't really remember much from them, but I don't take notes etc, I am more of the 'something will rub off on you' persuasion when I read books. I buy about ten per year. Read? I read 0, but I buy > 0 every year. One day I'll finish them. Also, one day I'll start them. I think how you take notes is important than now many books you read 0, my job isn't my life. And they don't pay me to read books.