Many programmers respond and write their own comments when recommending them. There used to be a domestic user to introduce the programmer book list, but are recommended several top 10 books.
In fact, in addition to the top 10, the recommended number of the top 30 books are classic, the author compiled this question and answer paste, while selected passage some of the recommendations of the comments.
The following are arranged according to the recommended number of each book.
1, "Code Encyclopedia" Steve Maik Cornell
Recommended Number: 1684
"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
Steve McConnell's original Code Encyclopedia (1th Edition) is recognized as one of the best practice guides for programming, and this book has been helping developers write better software over the past more than 10 years.
Now, the author of this classic novel deduction, into the forefront of practical technology, joined hundreds of new code examples, fully demonstrated the art and science of software construction. McConnell brings together the main knowledge from research institutions, academia, and the industry's day-to-day practices, combining the most efficient technology with the most important principles as a clear and practical guide.
Regardless of your level of experience, and no matter what development environment you work in, and whether the project is large or small, this book will inspire you to think and help you build high-quality code.
The Code Encyclopedia (2nd edition)) has made a comprehensive update, adding a lot of content to keep pace with the times, including the new language, the new development process and methodology of the discussion and so on.
2, "The programmer's Way of cultivation"
Recommended Number: 1504
This is an excellent book for programmers who have already learned the programming mechanism. 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
The programmer's Way of cultivating: from a handyman to an expert: "The programmer's Way of cultivation" consists of a series of independent components covering topics ranging from personal responsibility, career development, to the various architectural techniques used to keep code flexible and easy to adapt and reuse, using many entertaining anecdotes, Thoughtful examples and interesting analogies comprehensively illustrate the best practices and major pitfalls of many different aspects of software development.
Whether you're a beginner, an experienced programmer, or a software project manager, the programmer's Way of doing it: from a handyman to an expert is all right for you to read.
3. Construction and interpretation of computer programs
Recommended Number: 916
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.
4, "C programming Language"
Recommended Number: 774
This book is simple and easy to read, and 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
"C Programming Language" (version 2nd edition) about simple, with typical examples, easy to understand, practical, suitable for the University of Computer science or non-computer professional C language textbooks, can also be engaged in computer-related software and hardware development of the reference books of technical personnel.
"C Programming Language" (2nd edition) The original is one of the designers of C language Dennis M.ritchie and the famous computer scientist Brian W.kernighan co-authored a book about the authoritative classics of C language. We now see a large number of C language programming teaching materials and monographs are modelled on this book. The C language, introduced in the 1th edition of the original version, became the basis of standard C, later widely used in C language.
The familiar "Hello,world" program was first introduced in this book and is now the first lesson in all programming languages.
5, "Introduction to Algorithms"
Recommended Number: 671
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
• The classic algorithm book, by Amazon, "Programmer" and other 2006 years of the most popular readers favorite it books one.
• Standard teaching materials in the field of algorithms, selected by many famous universities worldwide
mit, known as "The Bible of Computer Algorithms"
• Written on the "Five One", which is a chapter to introduce an algorithm, a design technology, an application area and a related topic.
6, "Refactoring: Improve the existing code design"
Recommended Number: 617
Refactoring: Improving the design of existing code clearly reveals the process of refactoring, explains the principles and best practices of refactoring, and shows when and where to start digging code to improve. The book gives more than 70 possible refactorings, each of which introduces the motivations and techniques of a validated code-switching approach.
Refactoring: Improving the design of existing code will help you to change your code one step at a time, reducing the risk in the development process.
Refactoring: To improve the design of existing code is suitable for software developers, project managers and other reading, but also as the computer and related professional teachers and students reference books.
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 mode"
Recommended Number: 617
Since its publication in 1995, the book has been ranked in the forefront of Amazon and the major bookstore sales list. Nearly 10 years later, this book is still one of the best-selling books of the Addison-wesley company in the 2003. The Chinese version sells more than 40,000 copies.
As far as I am concerned, I think gang's "design pattern" 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 Human Moon
Recommended Number: 588
In software, there are few books that have far-reaching effects like the human moon myth and sell well.
Dr. Brooks provides the most insightful insights for managing complex projects. There are many thought-provoking viewpoints, and a lot of software engineering practice. This book is from Dr. Brooks ' project management experience in the IBM system/360 family and os/360.
Once the original English version of the book, which caused the industry's strong response, and then translated to Germany, France, Japan, Russia medium and many languages, the global sales volume of millions of. Established its classic position in the industry.
9. The Art of computer programming
Recommended Number: 542
"Computer Programming Art" series of works on the computer field has a far-reaching impact. The series, which is a mammoth project, has been in production since 1962 and plans to publish 7 volumes, and 4 volumes have been published.
The American Scientist magazine used the book as the most important 12 physics of the 20th century, alongside Einstein's theory of relativity. Knuth is now devoting his life to the writing of this epic book.
This is a book that Gartner has devoted his heart to writing. --peter Coulton
10, "The Principle of Compiling" (Dragon book)
Recommended Number: 462
I was surprised that no one mentioned 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, "The Simple design pattern"
Recommended Number: 445
Strong writing lineup.
• "Head of the design mode" (Chinese version) of the author Eric Freeman;
Elelisabeth Freeman is a writer, lecturer and technical advisor.
Eric has a Ph. D. In computer Science from Yale University and E1isabath has a master's degree in computer Science from Yale University.
Kathy Sierra (Javaranch. COM's founder) Fhbert Bates is the founder of the best-selling headfirst series of books and the developer of the Sun's Java Developer Certification exam.
This book's product design uses neurobiology, cognitive science, and learning theory, which allows the book to be deeply imprinted in your mind and not easily forgotten.
The way this book is written is guided instruction, not directly telling you what to do, but using the story as a primer, leading the reader to think and solve the problem. The problem-solving process will create some new problems, and then continue to think, and continue to solve problems, so as to deepen the experience.
The author takes a large number of life stories as the background, such as the 1th chapter is the duck, the 2nd chapter is the weather station, the 3rd chapter is the coffee shop, the book with a large number of illustrations (almost every page has a picture), so the reading is lively and interesting, do not feel sleepy.
The author also uses crooked handwriting to add a "live sense". Carefully designed a lot of comedy dialogue, so that the learning process will not be too boring. Also has the Pattern advertisement program, will the design pattern personification into the program guest, talks about its inside all. Each chapter has an unequal number of quizzes. At the end of each chapter there is a page to finish, this is the essence, I use this page to do review.
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, Bach Book: The Great into a different"
Recommended Number: 437
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"
Recommended Number: 329
The details of the own world, neat achievement Excellence Code
Even bad code can run, but if the code is untidy, the entire development team gets bogged down, and poorly written code consumes countless hours and resources each year. However, this situation is not inevitable.
The famous software expert Roberfc.marlin a revolutionary vision for you in the "Code neat Way". Martin, with colleagues from Objectmetltor, refines the values of software craftsmanship from their best agile practices about neat code, readers, and makes you a better programmer--as long as you start reading the code neat.
What do you need to do to read the code neat way? You'll read the code--a lot of code. The code neat way prompts you to think about what is right and what is wrong in your code. More importantly, the code neat way will prompt you to re-evaluate your professional values and commitment to your skills.
You can learn from the "code Neat Way":
• The difference between good code and bad code;
• How to write good code, how to turn bad code into good code;
• How to create good names, good functions, good objects and good classes;
• How to format your code to maximize its readability;
• How to fully implement error handling without interfering with the logic of the Code;
• How to conduct unit testing and test-driven development.
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 + +"
Recommended Number: 297
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"
Recommended Number: 282
For many years, when programmers chose the most beloved computer books, the programming Zhuji was always at the forefront of the rankings. Just as nature's pearls are tempered by the sands of the oyster, the master of Computer science, Jon Bentley, with its unique insight and creativity, condensed an immortal programming "Zhuji" from the practical problems of sharpening programmers to become the most popular column in the History of ACM Newsletter, the World's computer industry. The final two monumental classics of computer science have influenced and inspired generations of programmers and computer scientists.
This book is the first volume, mainly discusses the most essential question in the computer science: how to choose correctly and efficiently realizes the algorithm.
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
This book is another milestone in the revision of code technology after refactoring and refactoring and mode, and surpasses the first two classics from both coverage and depth. The book contains not only object-oriented language (Java, C # and C + +) code, but also a procedural language such as C.
The author will understand, test and modify the principles of the Code, technology and the latest tools (automated refactoring Tools, unit test frameworks, mock objects, integrated test frameworks, etc.), combined with the principles and best practices of solution dependency technology and extensive development and design of good code, many of the content is very in-depth and often not sent by previous generations.
The book reflects the author's unique insights, as well as the years of development and guidance of software projects accumulated rich experience and deep skill. By doing this, you will not only be able to master the most cutting-edge code modification techniques, but also greatly improve your understanding of code and software development.
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 computer software and hardware behind the language"
This is a book about the working principle of the computer.
However, you must not arbitrarily think of the words "working principle", it is obscure and difficult to understand. The author uses the rich imagination and the clear pen and ink to elaborate the seemingly complex theory to be easy to understand, you do not feel the slightest dull and blunt. More importantly, you will gain a deeper understanding of the workings of the computer. This kind of understanding is not at the abstract level, but has a certain depth, this depth is even inferior to "electrical engineer" and "programmer" understanding.
Whether you are a computer whiz, or the magic of the machine full of awe of the Rookie, you may wish to read the code: hidden in the computer software and hardware behind the language, reading a master's classic works, there will be a harvest.
I recommend the "code" of Charles Petzold. 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/Human parts 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"
This is an interview transcript documenting the most charismatic 15-bit software pioneer of today's programming career. Industry legends, including Donaldknuth, Jamie Zawinski, Joshua Bloch, Ken Thompson, tell us how they learn to program, what they discover in programming and what they think about the future, It also talks about how to design software that has plagued many programmers for a long time.
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 Little schemer" and "The Seasoned schemer" Nmiranda
These two are Lisp's English books, there is no Chinese version. The website of Northeastern University also has an electronic version.
25, "Interactive Design Road" English Name: "The inmates Are Running the asylum:why high Tech products Drive Us crazy Sanity, author of the book: Alan Cooper, who is the father of Visual Basic, 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 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
26, "Why ' s (poignant) Guide to Ruby"
Reading this book can be fun if you're not a programmer, but it might be a bit tedious if you're already a programmer.
27, "Unix Programming Art"
It is useful regardless operating system for use. –j.f. Sebastian
No matter what operating system you use, this book is very useful. –j.f. Sebastian
28, "Efficient Programmer's 45 habits: agile Development of the road of 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").
29, "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
30, "The Midas Touch: The visitors first web design Tips"
Usability design is one of the most important and difficult tasks in web design. The author of the "Midas-touch" web Design Tips (second edition of original book), based on years of experience, analysis of user's psychology, in the user's mode, for scanning design, navigation design, home page layout, usability testing and other aspects put forward a lot of unique views, and gave a lot of simple, Recommendations for easy usability design.
The book is short refined, language is easy to humor, the book interspersed with a large number of colorful screen shots, interesting cartoon illustrations and a large number of information charts, so that the boring design principles become approachable.
This book is suitable for the technical staff of web design and web development, especially for Web site/web designers who are distressed about how to retain visitors. This is a book about web design principles rather than web design techniques.
The author of this book is a Web design expert with a wealth of practical experience. He uses humorous language for you to uncover important but easily overlooked issues in web design, and in just a few hours you can find the crux of the Web site design by comparing the design principles taught in the book to make your site look fresh.
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