As a popular reading material about computer science, Code: The Hidden Language of Computer Hardware and Software is much more vivid, interesting and easy to understand, absorb than any other similar books. It enables you to understand all aspects about computer, without profound or professional knowledge required. Its author is Charles Petzold, whose another classic masterpiece Programming Windows has affected the entire generation of programmers.
In the field of software management, very few books can rival Peopleware: Productive Projects and Teams this legendary classic. As a long-standing bestseller, it makes a deep insight that the biggest problem in the process of software development does not lie in technology, but in person; and appeals to managers to give software developers full freedom and trust. Anyone who needs to manage software projects or organizations can benefit a lot from this book.
The Art of Computer Programming (TAOCP for short) is a comprehensive monograph written by Donald Knuth. It was first published in 1968, and acclaimed as one of the best 12 academic monographs in Twentieth Century (Albert Einstein's theory of relativity is one of another 11) by American Scientist Magazine in 1999. The vast majority of computer programming knowledge of contemporary software developers came from this series of books.
In Agile Software Development: Principles, Patterns, and Practices (ASDP: 3P for short), the world-famous software development expert and software engineering master Robert Cecil Martin (AKA: Uncle Bob) will show you how to solve the most tricky problems software developers, project managers and project leaders are facing. Again, this comprehensive and practical guide for agile software development and extreme programming has the credit from the founders of agile development.
Hacker's Delight is a computer science masterpiece written by Henry S. Warren in 2002. It is the only book that explains the computer algorithm on the market. By contrast, other algorithms related books basically are all about mathematical algorithms. Of course, the mathematical algorithm also mainly serves the computer science, but basically, it doesn't care about the details of computer architectures.