Skills:
"Programmer Interview Treasure" This book has Java, C + + and other versions of the main introduction of the written interview often test questions, some of the knowledge point is really very fine, very worth watching.
Data structures and algorithms:
"The beauty of programming" inside the programming problem often test, some may be more difficult.
"Sword refers to offer" This is strongly recommended, master the idea of solving problems is very important. For example, space for time, dynamic planning and so on.
"Data structure" this needless to say, linked lists, trees, pictures are often the test.
"Introduction to Algorithms" There is energy, you can choose to look at.
"Programming Zhuji"
Language:
"Simple and Simple MFC"
"Deep Exploration of C + + object Model" introduces C + + object-oriented constructors, virtual functions, etc., after reading can understand the operation of the program results.
"C + + Primer" A large number of C + + Foundation, but the foundation is not very good students suggest to see Tan Haoqiang "C + + programming."
"Effective C + +"
Java Programming Idea
"Elephant Thinking in UML"
"JavaScript Authority Guide"
C + + Standard Program Library
"STL Source Analysis"
Design pattern:
"Design Patterns"
"Headfirst design pattern"
Scripting language:
"Python Learning Handbook"
Mastering a scripting language is necessary, preferably with engineering practice.
Operating system aspects:
"Linux design-bird brother's private dishes."
"UNIX Network Programming"
Not only basic commands, it is best to have programming experience in a Linux environment.
"Deep understanding of computer systems" personally feel that this book is not good.
Database:
Not found better, would be basic SQL command.
Internet:
Did not find too good, at least the basic science to master it.
That's probably the way it is. Of course, there are a lot of good books, specifically to see what extent and the position of the application of the relationship. I wish you all a good job.