Editor's note: August 4, 2008, StackOverflow user Bert F post questions: Which of the most influential books, is every programmer should read?
"If you can turn back the clock and return to the past, as a developer, you can tell yourself that you should read a book early in your career,
Which book would you choose? I hope this book is rich in content and can cover a lot of things. ”
Many programmers respond by writing their own comments when recommending them.
In the past there have been domestic users to introduce the programmer's book, but are recommended the number of Top 10 books.
In fact, in addition to the first 10, the recommended number of the first 30 or so books are classic, the author compiled this question-and-answer paste, while selected passage some of the recommended people's comments.
The following is the number of recommendations in each book listed.
1, "Code Daquan" Steve Maik Cornell
Recommendations: 1684
"The Encyclopedia of Good Programming practices," Code encyclopedia "focuses on personal technology, where everything adds up,
Is 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
Steve McConnell's original Code Encyclopedia (1th Edition) is recognized as one of the best practice guides on programming,
Over the past more than 10 years, the book has been helping developers write better software.
Now, the author has a new interpretation of this classic, incorporating the most cutting-edge practices and adding hundreds of new code examples
The art and scientificity of software construction are fully demonstrated.
McConnell brings together key knowledge from research institutions, academia, and daily practice in the industry,
Combine the most efficient technology and the most important principles into this clear and practical guide.
Regardless of your level of experience, no matter what kind of development environment you work in, and whether the project is large or small,
This book will inspire your thinking and help you build high-quality code.
"Code Encyclopedia (2nd edition)") has made a comprehensive update, adding a lot of content with the times, including the new language, new development process and methodology discussion and so on.
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 also draw very beautiful,
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
The path of Programmer's cultivation: from the handyman to the expert: The path of Programmer's cultivation consists of a series of independent parts,
Covered topics from personal responsibility, career development, know-how to keep code flexible, and easy to adapt and reuse the various architectural technologies,
Using many entertaining anecdotes, thoughtful examples, and interesting analogies,
A comprehensive explanation of the best practices and major pitfalls of many different aspects of software development.
Whether you are a beginner, an experienced programmer, or a software project manager, the path of programmer discipline: from the handyman to the expert is for you to read.
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, and it will ignite your enthusiasm for writing great programs;
It will also teach you to know and appreciate beauty;
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.
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
"C Programming Language" (2nd edition of the new version) to explain the simple, with typical examples, easy to understand, practical and strong,
Suitable as a college computer professional or non-computer professional C language teaching material, also can be engaged in computer-related hardware and software development of technical personnel reference books.
"C Programming Language" (2nd Edition version) is one of the designers of C language Dennis M.ritchie and the famous computer scientist Brian W.kernighan co-authored
An authoritative classic for the introduction of C language.
We now see a large number of C language programming textbooks and monographs are modelled on this book.
The C language introduced in the original version 1th became the basis for the later widely used version of C-Standard C.
The well-known "Hello,world" program was first introduced in this book, and now it has become the first lesson in all programming languages.
5, "Introduction to Algorithms"
Recommendations: 671
"Code Encyclopedia" teaches you how to properly program;
"People's Month myth" teaches you how to manage correctly;
"Design mode" 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
- The classic algorithm book, by the Amazon Network, "programmer" and so on for 2006 years most readers love one of the top ten it books.
- Standard teaching materials in the field of algorithms, selected by many famous universities around the world
- MIT teachers join forces as "the Bible for computer algorithms"
- The author uses "Five One", which is a chapter to introduce an algorithm, a design technique, an application field and a related topic.
6, "Refactoring: improving the design of existing code"
Recommendations: 617
Refactoring: Improving the design of existing code clearly reveals the process of refactoring, explains the principles of refactoring and best practices,
and gives the time and place to start digging code for improvement.
More than 70 feasible refactorings are presented in the book, and each refactoring introduces a proven motivation and technique for code transformation.
Refactoring: Improving existing code design the refactoring guidelines will help you to modify your code one step at a time, reducing the risk in the development process.
Refactoring: Improving the design of existing code is suitable for software developers, project managers and other reading,
It can also be used as reference material for teachers and students of computer and related majors.
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,
And good programmers can write programs that others can read. --martin Fowler
7, "design mode"
Recommendations: 617
Since its publication in 1995, the book has been ranked at the forefront of Amazon's and major bookstore sales.
Nearly 10 years later, the book remains one of Addison-wesley's best-selling books in 2003.
The Chinese version sells more than 40,000 copies.
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 any other suggestion, it emphasizes the encapsulation of good programming techniques such as patterns,
This encourages others to propose new patterns and anti-patterns (antipatterns) and apply them to programming dialogues. --chris Jester-young
8, "People's Month myth"
Recommendations: 588
In the field of software, there are few books that have far-reaching impact and sell well, like the myth of Man and month.
Dr. Brooks provides the most insightful insight into managing complex projects.
There are a lot of thought-provoking ideas, and a lot of software engineering practice.
This book is from Dr. Brooks's project management experience in IBM's system/360 family and os/360.
The original English version of the book once published, that aroused the strong response of the industry, and then translated into Germany, France, Japan, Russia medium Multi-lingual, global sales of millions of copies.
Established its classic position in the industry.
9. The Art of computer programming
Recommendations: 542
"Computer Programming Art" series of works have a profound impact on the field of computer.
This series of projects, which began in 1962 and is planned to be published in 7 volumes, has now been published in 4 volumes.
The American Scientist magazine used the book with Einstein's theory of relativity as the most important 12 physics books of the 20th century.
Knuth is now devoting his life to the writing of this epic book.
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, "The design mode of"
Recommendations: 445
A strong writing lineup.
- "Head First design Mode" (Chinese version), author Eric Freeman;
- Elelisabeth Freeman is a writer, lecturer and technical consultant.
- Eric holds a PhD in computer science from Yale University, and E1isabath holds a master's degree in computer Science from Yale University.
- Kathy Sierra (javaranch. COM's founder, Fhbert Bates is the creator of the bestselling headfirst series, and the developer of the Sun's Java Developer Certification exam.
The book's product design uses neurobiology, cognitive science, and learning theory, which allows this book to be deeply imprinted in your mind,
Not easy to be forgotten.
This book is written using guided instruction, not directly tell you what to do, but use the story as a primer, leading the reader to think and find ways to solve the problem.
In the process of solving the problem, some new problems will arise, and then we can continue to think and solve the problems, so that we may deepen our experience.
The author takes a lot of life stories when 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 is accompanied by 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's handwritten font to add a "sense of locality".
Carefully design a lot of comedy dialogue, so that the learning process will not be too boring.
There is also a pattern of advertising programs, the design pattern of personification into the program guests, talk about its inner everything.
Each chapter has an unequal number of quizzes.
Each chapter at the end of a page to organize, which is the essence, I use this page to do the review.
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, "Del, Aysil, Bach book: Set different Choi's big into"
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, "Code Clean Road"
Recommendations: 329
The details of their own world, neat achievements Code of Excellence
Even though bad code can run, if the code is untidy, the entire development team gets bogged down,
Poorly written code consumes time and resources that are difficult to count every year.
However, this situation is not unavoidable.
Roberfc.marlin, a well-known software expert, has given you a revolutionary vision in the code of cleanliness.
With colleagues from Objectmetltor, Martin extracted the values of software craftsmanship from their best agile practices for neat code,
Readers, make you a better programmer-as long as you start reading the code of cleanliness.
What do you need to do to read the "code clean" way? You'll read the code--a lot of code.
"Code cleanliness" prompts you to think about what is right and what is wrong in your code.
What's more, the code of cleanliness will prompt you to reassess your professional values and your commitment to your skills.
From the code of cleanliness, you can learn:
- 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 name, good function, good object and good class;
- How to format the code to maximize its readability;
- How to fully implement error handling without interfering with the code logic;
- How to do unit testing and test-driven development.
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
For many years, when programmers chose the most beloved computer books, "Programming Zhu Ji Nanxiong" always ranked the forefront.
Just as the pearls of nature are honed by the sand to the oyster, master Jon Bentley, with its unique insight and creativity,
From sharpening the programmer's practical problems condensed a piece of immortal programming "Zhu Ji Nanxiong",
Became the most popular column in the History of ACM Newsletter, the World's computer industry.
The final compilation of two immortal computer science classics, influence and inspire generation after generation of programmers and computer science workers.
This book is the first volume, which mainly discusses the most essential problems in computer science: How to correctly select and efficiently implement the algorithm.
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. "Art of Code Change" by Michael Feathers
This book is another milestone in the exploration of code technology following the refactoring and refactoring and patterns.
And it's more than the first two classics from the cover and the depth.
The book not only covers the object-oriented languages (Java, C # and C + +) code, but also a special chapter to discuss the C process-like language.
The author will understand, test, and modify the principles, techniques, and latest tools of the code (automated refactoring Tools, unit test frameworks, mock objects, integrated test frameworks, etc.),
Combined with the principles of solution-dependent technology and the extensive development and design of good code, best practices, many of the content is very deep, and is often not issued by predecessors.
The book embodies the author's unique insight, as well as many years of development and guidance software projects accumulated rich experience and deep skill.
Through this synthesis, you can not only master the most advanced code modification techniques, but also greatly improve the understanding of code and software development.
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: hidden in the computer hardware and software behind the language"
This is a book that tells how computers work.
However, you must not arbitrarily think that it is obscure and difficult to understand because of the word "working principle".
The author uses the rich imagination and the clear text to explain the seemingly complex theory to be easy to understand, you do not feel dull and blunt in the slightest.
More importantly, you will get a deeper understanding of how computers work.
This understanding is not at the level of abstraction, but rather in depth, which is even inferior to the understanding of "electrical Engineer" and "programmer".
Whether you're a computer whiz or a rookie with a awe-inspiring heart for this magical machine,
may wish to read the code: hidden in the computer hardware and software behind the language, reading a master's classic works, there will certainly be a harvest.
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 Maintenance 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 to be perfect, thoroughly understand the tools and tasks in your hands, and more importantly,
Have fun (because if you have fun doing things, everything will spontaneously lead to better results). –akr
19, "Peopleware/Human piece set: humanized 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"
This is an interview note documenting the programming career of today's most charismatic 15-bit software pioneers.
The industry legends, including Donaldknuth, Jamie Zawinski, Joshua Bloch, Ken Thompson and others, tell us
How they learn to program, what they find in the programming process, and how they think about the future,
And to talk about how to design software, and so on has long been plagued by a lot of programmers issues of their own views.
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! /Knock it off, 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 "hard-to-use" problem is caused by the high "cognitive friction" that exists in these products,
The root of this problem lies in the lack of a pre-existing "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.
It is proved that only by changing the existing ideas 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,
And people who care about the software industry and the status and development of 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. "Unix Programming Art"
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 efficient programmers: the way 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"
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, "Midas Touch: Visitors first page design Tips"
Usability design is one of the most important and difficult tasks in web design.
"Midas Touch-Visitor first Page Design tips (Original book second edition)" Based on years of experience, the author analyzes the user's psychology,
There are many unique viewpoints in the mode of user use, design for scanning, navigation design, homepage layout, usability testing, etc.
and gives a lot of simple, easy-to-use usability design recommendations.
Short and concise, the book is punctuated with colourful screens, playful cartoon illustrations, and charts with a wealth of information
Makes the boring design principle become approachable.
This book is suitable for web design and Web development technical staff reading, especially for how to retain visitors and distressed website/web designer to read.
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 to reveal important but easily overlooked issues in web design in just a few hours,
You can find the crux of the site design against the design principles taught in the book, and make your site a fresh one.
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
What books a qualified programmer should have read