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 helping with actual coding, they are also 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 is not just an “Introduction”. This book covers the common Algorithm and Data structures used today, providing implementations and Q/A’s. Definetly 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 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 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.
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. 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 is an essential skill for developers who build 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.
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 the latest Software concepts ie. Internet of Things, Cloud Computing, and DevOps.
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 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 experimential databases. It is a one-size-fits-all book for Databases in general.
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.
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).
Thanks for reading!