#4807
You've probably heard this formula: program = data structure + algorithm. What it means is that: data structure is the skeleton of a program, and algorithm is the soul of the program. Therefore, data structures and algorithms are very complex, abstract and difficult to understand knowledge. Even for a skilled programmer, it is not easy to master both data structure and algorithm well.

#3602
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.

#3504
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.

#3470
Programming Pearls and More Programming Pearls are companion volumes written by Jon Bentley that successively published in 1986 and 1988. Both of them have become a masterpiece in the field of computer science. If you want to be a really excellent programmer, you have to read them first.