There are so many programming books out there, sometimes it’s hard to know what books are best. Programming itself is so broad and there are so many concepts to learn. This book list is a curation of the most valuable books for each major Software category.
These programming books are beneficial for your programming career, from beginner to expert. These books will help you day-to-day with your general programming knowledge.
Besides from helping with actual coding, they also are useful sources of information for conversations, meetings, interviews, code reviews and designing programming solutions. It is certainly a good feeling when you can refer to something you have read and provide a solid answer.
Introduction to Algorithms (The MIT Press)
Introduction to Algorithms is not just an “Introduction”. This book covers the common Algorithm and Data structures used today, providing implementations and Q/A’s. Definitely a comprehensive book, and can be used as a reference manual when you are programming. Many top companies look for Algorithm and Data structure skills today, which makes this book even more valuable.
Operating System Concepts
Operating Systems Concepts covers the nuts & bolts of the OS, such as context-switching, paging, and thrashing. It’s a big book, but covers lots of ground in the underlying concepts that make up an Operating System. Reading this book you will learn about the kernel, userland and programming in the lower-levels of Computer systems. It’s not a chore to read this book.
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services
Designing Distributed Systems is a book to learn architecture and patterns for designing distributed systems. This book will help you on the Software design side, providing insights on how to structure your project better to have less problems down the track.
Artificial Intelligence: A Modern Approach
The most in-demand field at the moment is Artificial Intelligence. This book provides AI algorithms and techniques in detail, covering pathfinding and building AI Agents. If you are looking for one of the best books on ai, then this is surely a top pick. There is detailed information on building Agents, graph algorithms incl. A* Search, and how to navigate in areas of uncertainty. Great book with lots of content and examples.
Designing the User Interface: Strategies for Effective Human-Computer Interaction (6th Edition)
Designing the User Interface is an essential to Dev’s building on the front end. It’s jam packed with information on how to apply Human Computer Interaction concepts to modern applications. There is also placed emphasis on designing interfaces for newer aged devices.
Principles of Information Security
This is the book for Information Security at the moment. The field of security changes fast. If a new field hits mainstream, then so does the security vulnerabilities. This book shows examples of securing latest Software concepts ie. Internet of Things, Cloud Computing, and DevOps.
Artificial Intelligence for Games
AI for Games is another good book for learning AI, and bonus if you like games. It shows how to create great AI algorithms in video games, making it “just hard enough” for players to still have a fighting chance. It includes examples, tutorials and sample code to get your hands dirty.
Database System Concepts
Database System Concepts is a well-known book on learning how to wrangle Databases. It might be labelled as a ‘first year’ graduate level book, but don’t let that stop you, it provides detailed information for both commercial and experimental databases. It is a one-size-fits-all book for Databases in general.
Compilers: Principles, Techniques, and Tools
Not just a cool book cover - this is a well-known book for designing and developing compilers. There are lots of interesting topics that aren’t really spoken about in modern-day computing conversations. This is worth picking up if you’re looking to dive a little deeper and learn compilers.
Real-Time Rendering is a book on Computer Graphics. Heavy on the maths, but it is a down-to-earth take on developing graphics for games, movies, and other graphic intensive applications. It provides detailed frameworks to use to help you get up and running quickly.
The Essence of Software Engineering
A book to fill in the missing knowledge-gaps of Software Engineering. It also demonstrates applications in an industrial setting. It’s more of a general Software book - good to have. Note: It’s currently free on the Kindle store (link above).
Hungry for more books? Here are some awesome programming books.