I remember reading somewhere that many (most?) software developers don't read even one technical book a year. I was curious what books the HN community is reading?<p>I recently picked up Operating Systems: Three Easy Pieces because I need to brush up my OS knowledge for work.
1. Building Evolutionary Architectures - A great book for those looking to build an IT department that can meet the business needs of today and create an organizational mindset that allows you to still be nimble and evolve to meet future demands.<p><a href="https://www.amazon.com/Building-Evolutionary-Architectures-Support-Constant/dp/1491986360" rel="nofollow">https://www.amazon.com/Building-Evolutionary-Architectures-S...</a><p>2. Building Microservices - A great book by Sam Newman which Building Evolutionary Architectures is effectively written upon IMHO. This book is really more technical and gets into the weeds of building out systems using microservices and it also touches based on CI/CD.<p><a href="https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358" rel="nofollow">https://www.amazon.com/Building-Microservices-Designing-Fine...</a><p>3. Inside the Minds - Although this book is old and talks about XML as an emerging technology, it's exceptional in showing you how various CTOs think and define their roles in different companies. It really drives home the importance of having IT support business vs. just building out technical solutions.<p>Note: Buy this book used and save yourself a lot of money. I got it for $2.58.<p><a href="https://www.amazon.com/Inside-Minds-Technology-Officers-Peoplesoft/dp/1587620561" rel="nofollow">https://www.amazon.com/Inside-Minds-Technology-Officers-Peop...</a><p>4. Release It! - A very good book that talks about important concepts in building systems that can be released often. It talks about things like Bulkheads, and circuit breakers; also mentioned in Sam Newmans book,. If you're company doesn't have CI/CD in place and a proper release model, then you should certainly read this book.<p><a href="https://www.amazon.com/gp/product/1680502395" rel="nofollow">https://www.amazon.com/gp/product/1680502395</a><p>I have more books, but I don't want to flood this post.
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems<p><a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321" rel="nofollow">https://www.amazon.com/Designing-Data-Intensive-Applications...</a><p>I read through this book last year when I saw it recommended on HN. I recommended it to engineers on my team at work.<p>I’m reading it for a second time now, and just finished chapter 2 today. It’s dense but an amazingly detailed and thorough text.
Related to tech but not technical:<p><i>The Psychology of Computer Programming</i> by Weinberg. It's a bit dated (references PL/I, tapes and punch cards), but the content on team structure and programming psychology is actually pretty good and mostly seems to hold up (based on my own observations of myself and offices). It's one of a variety of books I've read recently that hasn't really taught me anything "new", but has connected dots between topics or given me better terms or frames of reference to discuss the topics.<p>Technical:<p><i>The Reasoned Schemer</i> by Friedman, et al. Not using this for anything in particular, but I wanted to do something fun that was programming. It's been a very enjoyable read. About 2/3 through it but got distracted by moving and other things. I'll pick it up after the move next week.<p>My objective is to read at least one full book per month this year (I often have several books I'm reading at a time, not always to completion). So far I'm on track with that. A variety of topics: system dynamics and systems thinking, project/team management and dynamics, then various technical topics like the above or mathematics.
I’ve been reading Game Programming Patterns off and on. Not a game developer, but it’s a pretty light read and interesting to see how design patterns apply to making video games.<p>Next up after that I’m gonna finally finish Practical Object Oriented Design in Ruby by Sandi Metz. I started this one after reading 99 Bottles of OOP.<p>Longer term project is to read through The Little Schemer and the other books in that series like The Reasoned Schemer, The Little MLer, etc.
I'm juggling several books currently:<p>1. Computer Networking: A Top-Down Approach 6th Edition.
2. TCP/IP Illustrated, Vol. 1 2nd Edition.
3. Interconnections: Bridges, Routers, Switches, and Internetworking Protocols 2nd Edition.
4. Engineering a Compiler 2nd Edition.
5. Flex & Bison.
6. Sed & Awk.
7. K & R.
8. The Unix Programming Environment.
9. Advanced Programming in the UNIX Environment.
10. Linux Kernel Development.
11. The Go Programming Language.
12. Introduction to Operating Systems Abstractions.<p>I recently discovered how much easier it is to use markdown for basic note taking, I have been just using html, which is part of the reason I took a break from reading, ha.
I second the Building Evolutionary Architectures. Also enjoyed "Kotlin Programming: The Big Nerd Ranch Guide" ( <a href="https://www.amazon.com/Kotlin-Programming-Nerd-Ranch-Guide/dp/0135161630/" rel="nofollow">https://www.amazon.com/Kotlin-Programming-Nerd-Ranch-Guide/d...</a> ).
The art of Unix Programming <a href="https://amzn.to/2I2CVvX" rel="nofollow">https://amzn.to/2I2CVvX</a><p>My first reading of this book convinced me to move away from Windows. I usually read it at-least once a year.
Growing Object Oriented Software Guided by Tests. So far I didn't learn anything from it, and it's hard to read more than ~10 pages without falling a sleep.<p>Next on my list are Software Architecture in Practice and Programming Pearls.
I'll structure this in "current/future/recent_past" format if I may.<p>Currently:<p>* The Go Programming Language<p><a href="https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440" rel="nofollow">https://www.amazon.com/Programming-Language-Addison-Wesley-P...</a><p>* Building Microservices<p><a href="https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358" rel="nofollow">https://www.amazon.com/Building-Microservices-Designing-Fine...</a><p>Plan to do next:<p>* Designing Data-Intensive Applications<p><a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/" rel="nofollow">https://www.amazon.com/Designing-Data-Intensive-Applications...</a><p>* Designing Distributed Systems<p><a href="https://www.amazon.com/Designing-Distributed-Systems-Patterns-Paradigms/dp/1491983647" rel="nofollow">https://www.amazon.com/Designing-Distributed-Systems-Pattern...</a><p>* Unix and Linux System Administration 5th ed, but probably just gonna skip/read chapters of interest, i.e. I wanna get a better understanding of SystemD.<p><a href="https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/" rel="nofollow">https://www.amazon.com/UNIX-Linux-System-Administration-Hand...</a><p>Read last month:<p>* Learning React<p>Good for a quick intro but I probably wouldn't read cover-to-cover again, some sections are old, but overall an OK book.<p><a href="https://www.amazon.com/Learning-React-Functional-Development-Redux/dp/1491954620/" rel="nofollow">https://www.amazon.com/Learning-React-Functional-Development...</a><p>* React Design Patterns and Best Practices<p>Really liked this one, picked a tonne of new ideas and approaches that are hard to find otherwise for a newbie in JS scene. These two books, some time spent reading up on webpack and lots of github/practice code made me not scared of JS anymore and not feeling the fatigue. I mean, I was one of the people who dismissed everything frontend related, big node_modules, electron, complicated build systems etc. But now I sort of understand why and am on the different side of the fence.<p><a href="https://www.amazon.com/React-Design-Patterns-Best-Practices/dp/1786464535/" rel="nofollow">https://www.amazon.com/React-Design-Patterns-Best-Practices/...</a><p>* Flexbox in CSS<p>Wanted to understand what's the new flexbox layout is about since it's been a while when I've done some serious CSS work. Long story short I made it about half of this and dropped it - not any more useful than MDN docs and actually playing with someone's codepen gave me better understanding in 5 minutes than 3 hours spent with this book.<p><a href="https://www.amazon.com/Flexbox-CSS-Estelle-Weyl-ebook/dp/B072JHT5L4" rel="nofollow">https://www.amazon.com/Flexbox-CSS-Estelle-Weyl-ebook/dp/B07...</a>