Original address: http://igeekbar.com/igeekbar/post/466.htm
1. Code Encyclopedia Steve Maik Cornell
"The Encyclopedia of Good Programming practices, the Code encyclopedia, focuses on personal technology, where everything adds up to what we instinctively call" writing neat code. This book has 50 pages talking about code layout. "--joel Spolsky
For beginners, the idea in this book is a bit higher. By the time you are ready to read this book, you should have known and practiced 99% of the ideas in the book. –esac
2. The programmer's Way to practice is an excellent book for programmers who have studied programming mechanisms. Maybe they're still students, but they don't feel safe about what they want to do with themselves. It's like the difference between a sketch and an architecture. Although you learn in the school classroom is drawing, you can also draw very beautiful, but if you think you don't know where to start, if someone wants you to draw a Peer-to-peer music Exchange network Map, then this book is for you. --joel
3. Construction and interpretation of computer programs
Personally, this book has so far been a programming book that has affected my intoxication.
The classic books of code, refactoring, and design patterns teach you efficient work habits and trading details. Other such books as "The Human episode", "Computer Programming Psychology" and "The Human Moon Myth" go deep into the psychological aspect of software development. Other books deal with the algorithm. These books all have their own place to belong.
However, the construction and interpretation of computer programs differs from these. This is a book that will inspire you, it will ignite your passion to write excellent programs, it will also teach you to know and appreciate beauty, it will give you a kind of awe, so that you can hardly restrain the desire to learn more things. Other books may make you a better programmer, but this book will certainly make you a programmer.
At the same time, you'll learn something else, functional programming (chap. III), Lazy computing, metaprogramming, virtual machines, interpreters, and compilers.
Some people think the book is not suitable for beginners. Personally, although I do not fully agree to have some programming experience to read this book, but I must recommend to beginners. After all, this book is written for the famous 6.001, MIT's introductory programming course. This book may take a lot of effort (especially when you're doing the exercise, and you should), but it's worth the book.
You're not sure yet. Then 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" This book is simple and easy to read, will teach you three things: C programming language; How to think like a programmer; the underlying computing model. (This is important to understanding "the bottom")--nathan
5. Introduction to Algorithms, Code encyclopedia, teaches you how to program correctly; The myth of People's moon teaches you how to manage properly; Design patterns teach you how to design correctly ... In my opinion, the code is just a tool, not the essence. The main part of developing software is to create new algorithms or to implement existing algorithms again. Other parts are like reassembling Lego bricks or creating a "management" layer. I still dream of this kind of work, most of my time (>50%) is in the write algorithm, other "management" details are left to others ...--ran Biron
6. Refactoring: Improving the design of existing code I think I have to recommend refactoring: improve the design of existing code. --martin
I must confess that my favorite programming quotations are from this book: Any fool can write a computer-understandable program, but a good programmer can write a program that others can read. --martin Fowler
7. Design pattern for my part, I think the design pattern of gang is a very useful book. While this book does not relate to "meta" programming like other suggestions, it emphasizes the encapsulation of excellent programming techniques such as patterns, thus encouraging others to propose new patterns and antipatterns, and apply them to programming dialogs. --chris Jester-young
8. The myth of the human Moon
9. The art of computer programming This is a book that Gartner devotes his heart to writing. --peter Coulton
10. The principle of compiling (Chinese version) | English version (Dragon book) I am surprised that no one mentions the Dragon book. (Perhaps it has been recommended, I do not see). I have never forgotten the cover of the first edition of this book. This book lets me know how wonderful the compiler is. -DB
11. "Simple design Mode" (Chinese version) | Photocopy of the English version
I know that gang's "design pattern" is a standard book, but it's better to look at this tome first, this book is more simple. Once you understand the basic principles, you can go to see the Gang Bible. -Calanus
12. Godel, Aicher, and Bach: A great collection of different
If the next Ang really in-depth reading, I recommend Douglas Houshida (Douglas Hofstadter) of the "Godel, Aicher, Bach book." He has thoroughly studied the problems that programmers face every day: recursion, validation, proof, and Boolean algebra. This is a very good reading, not very difficult, occasional challenges, once you have to fight to the end, it will be very worthwhile. –jonik
13. "Code Neat Way"
While the code neat and code encyclopedia have a lot in common, it has a much simpler and more practical clear example. –craig P. Motlin
14. "Effective C + +" and "more effective C + +"
In the early years of my career, Scott Meyer's "Effective C + +" and subsequent "more effective C + +" all have a direct impact on my programming ability. As one friend 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 last year was the cathedral and marketplace, which taught me a lot about how the open source development process works and how to handle bugs in my code. –john Channing
15. "Programming Zhuji"
Although I have to be ashamed to admit that half of the book I do not understand, but I really recommend the "Programming Zhuji", the book has some amazing things. –matt Warren
16. The art of modifying code by Michael feathers
I don't think any book can affect my programming opinion as much as this one. It explicitly tells you how to deal with other people's Code, implicitly teaches you to avoid which (and why to avoid). -Wolfbyte
Agree. Many developers discuss using clean slate to write software. But I think almost all developers are at some point eating dog food from other developers. –bernard Dy
17. Code: Hidden in 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 taken away from programmers, and this book is an eye-opening one. –hemil
18. Zen and Motorcycle Maintenance Arts/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 try to be perfect, thoroughly understand the tools and tasks in your hand, and, more importantly, have fun (because if you have fun doing things, you will spontaneously lead to better results). –akr
19. "Peopleware/People-part set: humanized software Development"
DeMarco and Lister show that the first problem in software development is people, not technology. Their answer is not simple, but incredibly successful. The second edition adds a new eight-chapter content. –eduardo Molteni
20 "Coders at Work/programming Life"
A very influential book that can learn from the experience of some of the top people in the industry about how they think and work. –jahanzeb Farooq
21. "Surely you" re joking, Mr feynman! /Stop it, Mr. Feynman. 》
Although the book may be a bit off, believe it or not, the book has been on the reading list of computer science majors. An excellent role model, an excellent book on 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/Enterprise Application architecture Model
Oddly enough, no one has recommended Martin Fowler's "Enterprise Application Architecture Model"-Levi Rosol
24 "The road of Interactive Design" English name: "The inmates Are Running the asylum:why high Tech products Drive Us crazy and" to Restore the sanity of the book Alan Cooper, who is called the father of Visual Basic, is a parent of interactive design based on a number of business cases that describe how to create better, more customer-loyalty software products and software-based High-tech products. This book lists a number of real and authentic examples of how "difficult" problems are prevalent in software products and software-based High-tech products. The author thinks that the problem of "difficult to use" is caused by the high level of "cognitive friction" in these products, and the root of this problem lies in the lack of a stage of "interaction design" for the benefit of the users in the process of software development nowadays. "Difficult to use" products not only damage the interests of users, will eventually lead to the failure of enterprises. This book, through some vivid examples, it is convincing that the "goal-oriented" interactive design method advocated by the author is effective in solving the problem of "difficult to use", and confirms that only by changing the existing concept can we effectively introduce interactive design into the development process and lead the product design to success. This book is a book for business people, but it is also suitable for all professionals involved in the development of software products and software based High-tech products, as well as those interested in the status and development of the software industry and High-tech industry.
He also has another Chinese book: About Face 3 the essence of interactive design
25 "UNIX Programming Art"
No matter what operating system you use, this book is very useful. –j.f. Sebastian
26 practices of an Agile Developer/efficient Programmer's 45 habits: The path of agile development and cultivation
45 habits, divided into 7 aspects: work attitude, learning, software delivery, feedback, coding, debugging and collaboration.
In every particular habit, start with a fallacy, then analyze it, and then come up with the right approach and put yourself in the right place to give yourself a personal "feel", and finally list a few caveats to help you revise your approach ("The Art of Balance").
27 "Test-driven Development by Example." /test-driven development "
Many of the books I have mentioned have inspired me and influenced me, but this book should be read by every programmer. It shows me the importance of unit testing and TDD, and it gives me a quick start. –curro
I don't care how good or elegant your code is. If you don't have a test, you might as if you didn't write code. The book should be higher in number of recommendations. People are talking about writing software that users like, or designing good and robust, efficient code, but if your software has a bunch of bugs, talking about those things doesn't make sense. –adam Gent
28 Don t make Me do I-touch: Tips on web design for visitors first
Depends on the goal you are pursuing. I like "Code encyclopedia" because of pure programming, "Midas" is an excellent book on UI design. –justin Standard