This is a foreign programmer's 30 classic programmers must read books!
1. "Code Encyclopedia" Steve Maik Cornell
Recommendations: 1684
"The Encyclopedia of Good Programming practices, the Code encyclopedia, focuses on personal technology, and everything adds up to what we instinctively call" writing neat code. " This book has 50 pages to talk about code layout. "--joel Spolsky
For beginners, the concept in this book is a bit more advanced. By the time you are ready to read this book, you should have already known and practiced the concept of 99% in the book. –esac
2. The path of programmer's cultivation
Recommendations: 1504
This is an excellent book for programmers who have already learned the programming mechanism. Maybe they're still enrolled in school, but they don't feel safe about what they're doing. Just like the difference between sketches and schemas. Even though you are drawing in the school class, you can draw beautifully, but if you think you don't know where to start, if someone wants you to draw a music Exchange Network diagram on your own, then this book will suit you. --joel
3. Construction and interpretation of computer programs
Recommendations: 916
Personally, this book has so far affected me with a programming book that has been drunk.
"Code Encyclopedia", "Refactoring" and "design Patterns" These books teach you efficient work habits and transactional details. Other books like "People's collections", "Computer Programming psychology" and "People's Month myth" have been developed in depth to the psychological level of software development. Other books deal with the algorithm. These books all have their own place of belonging.
However, the construction and interpretation of computer programs differs from these. This is a book that will inspire you, it will ignite your passion for writing great programs, and it will teach you to know and appreciate beauty, and it will give you a sense of awe and an irrepressible desire to learn more. Other books may make you a better programmer, but this book will certainly make you a programmer.
At the same time, you will learn something else, functional programming (chapter III), Lazy computing, meta-programming, virtual machines, interpreters, and compilers.
Some people think the book is not suitable for beginners. Personally, although I do not fully agree with some programming experience to read this book, but I will certainly recommend to beginners. After all, this book is written for the famous 6.001, an introductory programming course at MIT. This book may require more effort (especially when you are doing exercises, you should), but the price is worthy of the book.
Aren't you sure? Read the preface or preface to the first edition. There is a free electronic version on the Internet. –antti Syk?ri
4. "C Programming Language"
Recommendations: 774
This book is easy to read and will teach you three things: C programming language; How to think like a programmer; the underlying computational model. (This is important for understanding the "bottom")--nathan
5. Introduction to the algorithm
Recommendations: 671
"Code Encyclopedia" teaches you how to correctly program, "People's Month myth" teaches you how to manage correctly, "design pattern" teaches you how to design correctly ...
In my opinion, the code is just a tool, not the essence. The main part of developing software is creating new algorithms or re-implementing existing algorithms. Other parts are like reassembling Lego bricks or creating a "management" layer. I still dream of such a job, most of my time (>50%) is in writing algorithms, other "management" details are left to others ...--ran Biron
6. Refactoring: Improving the design of existing code
Recommendations: 617
I think I have to recommend refactoring: improving the design of existing code. --martin
I must confess that my favorite programming quote is from this book: any idiot can write a program that a computer can understand, while a good programmer can write a program that someone else can read. --martin Fowler
7. "Design Mode"
Recommendations: 617
As far as I'm concerned, I think gang of four's design model is a very useful book. Although this book is not about "meta" programming, like other suggestions, it emphasizes encapsulation of good programming techniques such as patterns, and thus encourages others to propose new patterns and anti-patterns (antipatterns) and apply them to programming dialogs. --chris Jester-young
8. The myth of man and Month
Recommendations: 588
9. The Art of computer programming
Recommendations: 542
This is a book that Gartner has devoted his efforts to writing. --peter Coulton
10. "Compiling Principle" (Dragon book)
Recommendations: 462
I was surprised that no one mentioned the Dragon book. (Maybe it's been recommended, I didn't see it). I have never forgotten the first cover of the book. This book has let me know how wonderful the compiler is. -DB
11. "In the design mode"
Recommendations: 445
I know that gang of four's "design Model" is a standard book, but it is better to look at this tome first, the book is more simple. Once you understand the basic principles, you can look at Gang of Four's Bible. -Calanus
12. "The Aysil, the Book of Bach: The Grand of the different Choi"
Recommendations: 437
If the next Ang really deep reading, I recommend Douglas Houshida (Douglas Hofstadter) "Del, Aysil, Bach book." He deeply studied the problems programmers face every day: recursion, validation, proving, and Boolean algebra. This is a very good reading, difficult, occasional challenges, once you want to fight the end, it will be very worthwhile. –jonik
13. The way of code cleanliness
Recommendations: 329
While the code is neat and the code encyclopedia has a lot in common, it has a clearer and more practical clear example. –craig P. Motlin
14. "Effective C + +" and "more effective C + +"
Recommendations: 297
In my early career, Scott Meyer's "Effective C + +" and subsequent "more effective C + +" have had a direct impact on my programming capabilities. As one of the friends at the time said, these books shorten the process of developing your programming skills, while others may take years.
One of the most influential books of the last year was the cathedral and the Bazaar, which taught me a lot about how the open source development process works and how to deal with bugs in my code. – John Channing
15. "Programming Zhu Ji Nanxiong"
Recommendations: 282
Although I have to be ashamed to admit that half of the book I do not understand, but I really recommend "programming Zhu Ji Nanxiong", there are some amazing things in the book. –matt Warren
16. The art of code change by Michael Feathers
I don't think any book can affect my programming perspective as much as this book. It clearly tells you how to deal with other people's Code, implicitly teaches you what to avoid (and why to avoid it). -Wolfbyte
Agree. Many developers discuss the use of clean slate to write software. But I think almost all developers are eating dog food from other developers at some point. –bernard Dy
17. Code: The language behind computer hardware and software
I recommend Charles Petzold's "code". In this age of tools and Ides, a lot of complexity has been "extracted" from the programmer, and this book is a dream. –hemil
18. Zen and Motorcycle Repair Art/Zen and the Art of Motorcycle Maintenance
The book that influenced me the most was Robert Pirsig's art of Zen and motorcycle maintenance. No matter what you do, always strive for perfection, thoroughly understand the tools and tasks in your hands, and more importantly, have fun (because if you have fun doing things, everything will lead to better results spontaneously). –akr
19. Peopleware/Personal collection: User-friendly software development
Demarco and Lister show that the first problem in software development is people, not technology. Their answer is not simple, it's just an incredible success. The second edition adds eight chapters to the content. –eduardo Molteni
20. "Coders at work/programming life"
A very influential book, you can learn from the experience of some of the industry's top people, how they think and work. –jahanzeb Farooq
21. Surely you ' re joking, Mr feynman! /Come on, Mr. Feynman!
Although this book may be a little tricky, believe it or not, this book has been on the reading list of computer science majors. A good character model, a good book about curiosity. –mike511
22. "Effective Java Chinese Version"
The second edition of this book teaches you how to write beautiful and efficient code, although this is a Java book, but there are many cross-language ideas. –marcio Aguiar
23. Patterns of Enterprise Application Architecture/Business Application Architecture model
It's strange that no one has recommended Martin Fowler's "Enterprise Application Architecture Model"-Levi Rosol
24. "The Little schemer" and "The Seasoned schemer" Nmiranda
These two are Lisp's English books, and there is no Chinese version. There is also an electronic version on the Northeastern University website.
25. The road of Interactive design English name: "The inmates is Running the asylum:why high Tech products drive Us Crazy and how to Restore the sanity" The book Alan Cooper, the Father of Visual Basic, is the father of interactive design.
This book is based on a number of business cases that describe how to create better, high customer loyalty software products and software-based high-tech products. This book lists a number of real and credible practical examples of current software products and software-based high-tech products, there is a widespread "difficult to use" problem. The author argues that the problem of "hard-to-use" is caused by the high "cognitive friction" in these products, and the root of this problem lies in the lack of an early "interactive design" phase for the benefit of the user in the software development process. "Difficult to use" products not only harm the interests of users, will ultimately lead to enterprise failure. This book, through some vivid examples, gives a convincing account of the effectiveness of the "goal-oriented" interactive design approach advocated by the author in solving the "difficult" problem, and confirms that only by changing the existing concepts can we effectively introduce the interactive design in the development process and lead the product design to success.
Although this book is written for business people, it is also suitable for all professionals involved in software products and software-based high-tech product development, as well as those who are concerned about the status and development of the software industry and the high-tech industry.
He also has another Chinese version of the book: "About Face 3 interactive design Essence"
26. Why's (poignant) guide to Ruby
If you're not a programmer, reading this book can be fun, but if you're already a programmer, it might be a bit tedious.
27. The Art of UNIX programming
It is useful regardless operating system. –j.f. Sebastian
No matter what operating system you use, this book is very useful. –j.f. Sebastian
28.45 Habits of practices of an agile Developer/high-efficiency programmer: The path of agile development and cultivation
45 habits, divided into 7 areas: work attitude, learning, software delivery, feedback, coding, debugging and collaboration.
In every specific habit, start with a fallacy, then analyze it, then have the right approach and put yourself in the right hands to give you a personal "feel", and finally list a few caveats to help you fix your practice ("Art of Balance").
29. Test-driven development by Example. /test-driven development "
Many of the books that have been mentioned have inspired me and influenced me, but this book should be read by every programmer. It showed me the importance of unit testing and TDD, and let me get started quickly. –curro
I don't care how good or elegant your code is. If you don't have a test, you're probably not writing code. The book deserves a higher number of recommendations. People talk about writing user-favorite software, or designing great and robust code, but if your software has a bunch of bugs, talking about those things doesn't make sense. –adam Gent
30. Don ' t make Me Think/Midas: A visitor-centric web Design Guide
Depends on the goal you are after. I like the code encyclopedia because of pure programming, "Midas Touch" is an excellent book on UI design. –justin Standard
Books are the Masters ' accumulated experience of development. If you want to be better, choose a few books that are right for you to read!
30 books that good programmers should read