Books that programmers should read

Source: Internet
Author: User

Editor's note: In August 4, 2008, stackoverflow user Bert F posted a question: Which of the most influential books should be read by every programmer?

"If you can go back to the past, as a developer, you can tell yourself which book you should read in the early stages of your career. Which one would you choose? I hope this book list is rich in content and can cover many things ."

Many programmers respond and write their own comments during the recommendation process. In the past, some domestic netizens introduced this programmer's book list, but they all recommended the top 10 books.

In fact, in addition to the first 10 books, the books about the first 30 are considered classic. I compiled this Q & A post and excerpted some comments from recommenders.

The numbers of recommendations for each book are listed below.

1. Code Daquan Steve Mike Cornell

Recommendation: 1684

"An excellent Encyclopedia of programming practices," code Daquan "focuses on personal technologies. All of these are what we say by instinct:" writing clean code ". This book has 50 pages to talk about code layout ." -- Joel Spolsky

For beginners, the concepts in this book are somewhat advanced. By the time you prepare to read this book, you should have known and practiced 99% concepts in the book. -Esac

Steve McConnell's original code book (version 1st) is recognized as one of the best practices for programming. Over the past decade, this book has been helping developers write better software.

Now, the author has integrated this classic book into the cutting-edge practical technology and added hundreds of new code examples, fully demonstrating the artistic and scientific nature of software building. McConnell brings together the main knowledge from research institutions, academia, and the daily practices of the industry, and integrates the most efficient technology with the most important principles into this clear and practical guide.

Regardless of your experience, development environment, or project size, this book will inspire your thinking and help you build high-quality code.

Code Daquan (version 2nd) has been comprehensively updated, adding a lot of content that keeps pace with the times, including discussions on new languages, new development processes and methodologies.

2. programmer Cultivation

Recommendation: 1504

This is an excellent book for programmers who have learned programming mechanisms. Maybe they are still in school, but they do not feel very safe about what they want to do.

Just like the difference between sketch and architecture. Although you learned drawing in school classes, you can also draw beautiful pictures, but if you don't know where to start, if someone wants you to draw a P2P Music Exchange Network Diagram on your own, this book is suitable for you. -- Joel

Introduction to "Programmer cultivation path: from small workers to experts": "Programmer cultivation path" consists of a series of independent parts, covering the subject from personal responsibility, career development, learn about the various architecture technologies used to keep code flexible and easy to adapt and reuse, and use entertaining anecdotes, thoughtful examples, and interesting analogy, it comprehensively explains many different aspects of software development best practices and major traps.

Whether you are a beginner, an experienced programmer, or a software project manager, "Programmer cultivation: from a small worker to an expert" is suitable for you to read.

3. Construction and interpretation of computer programs

Recommendation: 916

Personally, this book has so far become a fascinating programming book for me.

Classic books such as code Daquan, refactoring, and design patterns will teach you efficient work habits and transaction details. Other books such as the collection of pieces, computer programming psychology, and The Mythical man-month will go deep into the psychological layer of software development. Other Books process algorithms. These books have their own locations.

However, the construction and interpretation of computer programs are different from those. This is a book that will inspire you. It will inspire your enthusiasm for writing excellent programs. It will also teach you to know and appreciate the beauty. It will give you a kind of reverence, it makes it hard for you to suppress the desire to learn more.

Other books may make you a better programmer, but this book will surely make you a programmer.

At the same time, you will learn other things, functional programming (Chapter 3), inert computing, metaprogramming, virtual machines, interpreters, and compilers.

Some people think this book is not suitable for beginners. I personally think that although I do not fully agree that I must have some programming experience to read this book, I must recommend it to beginners. After all, this book is written to the famous 6.001 and is an introductory Programming Course at the Massachusetts Institute of Technology. This book may require more effort (especially when you are doing exercises, you should also do so), but the price is worth it.

4. C Programming Language

Recommendation: 774

This book is concise and easy to read. It will teach you three things: C programming language, how to think like a programmer, and the underlying computing model. (This is important for understanding the "bottom layer") -- Nathan

C programming language (new version 2nd) is a simple introduction. It is easy to understand and practical with typical examples. It is suitable for C language teaching materials for computer majors or non-computer majors in colleges and universities, it can also be used as a reference for technical personnel engaged in computer-related software and hardware development.

C programming language (new version 2nd) is one of the designers of C language Dennis M. ritchie and famous computer scientist Brian W. A typical book on C language, co-authored by kernighan. We have seen a lot of textbooks and monographs on C language programming are all modeled on this book. The C language introduced in the original version 1st has become the basis of Standard C, a widely used C language version.

The well-known "Hello, world" Program was introduced for the first time by this book. Now, this program has become the first lesson for getting started with all programming languages.

5. Introduction to Algorithms

Recommendation: 671

Code Daquan teaches you how to program correctly; man-month myth teaches you how to manage correctly; Design Pattern teaches you how to design correctly ......

In my opinion, code is just a tool, not the essence. The main part of software development is to create new algorithms or re-implement existing algorithms. Other parts are like re-assembling Lego bricks or creating "management" layers.

I still dream of such a job. Most of my time (> 50%) is writing algorithms, while other "management" details are left to others ...... -- Ran biron

  • The classic algorithm book was named one of the top ten it books most popular by readers in 2006 by Amazon and programmer.
  • Standard teaching materials in the algorithm field, which are selected by many world-renowned universities
  • Created by MIT experts, he is hailed as "the bible of computer algorithms"
  • This article introduces an algorithm, a design technology, an application field, and a related topic.
6. refactoring: improving the design of existing code

Recommendation: 617

Refactoring: improving the design of existing code clearly reveals the refactoring process, explains the refactoring principles and best practices, and provides the time and place to start mining code for improvement. The book provides more than 70 feasible refactoring methods, each of which introduces motivation and technology for a verified code transformation technique.

Refactoring: improving the design of existing code the refactoring guidelines will help you modify your code in a small step at a time, thus reducing the risks in the development process.

Reconstruction: improving the design of existing code is suitable for software developers and project management personnel to read, and can also be used as a reference for teachers and students of computer science and related majors in colleges and universities.

I think I have to recommend refactoring: improving the design of existing code. -- Martin

I must admit that my favorite programming quotes come from this book: Any fool can write programs that computers can understand, while excellent programmers can write programs that others can understand. -- Martin Fowler

7. Design Patterns

Recommendation: 617

Since its publication in 1995, this book has ranked first in the sales rankings of Amazon and major bookstores. Nearly 10 years later, this book is still one of Addison-Wesley's best-selling books in 2003. The Chinese Version sells more than 40 thousand million books.

As far as I am concerned, I think the design pattern compiled by four people is a very useful book. Although this book is not about "meta" programming like other recommendations, it emphasizes encapsulating excellent programming technologies such as patterns and encourages others to propose new and antipatterns ), and used in programming dialogs. -- Chris jester-young

8. Mythical man-month

Recommendation: 588

In the software field, there are very few books that have far-reaching influence and are selling well like The Mythical man-month.

Dr. Brooks provides the most insightful insight into managing complex projects. There are both a lot of thought-provoking ideas and a lot of software engineering practices. This book is based on Dr. Brooks's project management experience in the IBM System/360 family and OS/360.

The original English version of the book has aroused strong repercussions in the industry. It was then translated into Germany, France, Japan, and Russia in multiple languages and sold millions of books worldwide. Has established its classic position in the industry.

9. Computer Programming Art

Recommendation: 542

The works of the art of computer programming have had a profound impact on the computer field. This series is a huge project. It has been written since 1962 and is planned to be published in 7 volumes. At present, it has published 4 volumes.

The American Scientist magazine used this set of books together with Einstein's theory of relativity and other books as the most important 12 books of physics in the 20th century. At present, knuth is devoted his life to writing this epic book.

This is a book written by Gartner. -- Peter coulton

10. compilation principles (longshu)

Recommendation: 462

I was surprised that no one mentioned longshu. (I have not seen any recommendations ). I have never forgotten the cover of the first version of this book. This book shows me how amazing the compiler is. -DB

11. Exploring Design Patterns

Recommendation: 445

Powerful writing lineup.

  • Eric Freeman, author of head first design patterns (Chinese version;
  • Elelisabeth Freeman is a writer, lecturer, and technical consultant.
  • Eric has a doctorate degree in computer science from Yale University, and e1isabath has a master's degree in computer science from Yale University.
  • Kathy sield (founder of javaranch.com) fhbert Bates is the founder of the best-selling headfirst series books and developer of Sun Java developer certification exams.

The product design of this book is applied to neurobiology, cognitive science, and learning theory, which makes it hard to print this knowledge into your mind.

This book is written in a guided way. Instead of directly telling you how to do it, you can use stories as an example to guide readers to think about and solve problems. There will be some new problems in the process of solving the problem, and we will continue to think about and solve the problem, so that we can deepen our understanding.

The author uses a large number of living stories as the background. For example, Chapter 1st is duck, Chapter 2nd is a weather station, and Chapter 3rd is a coffee shop. The book is accompanied by a large number of illustrations (almost every page has a picture ), therefore, reading is lively and interesting, so you don't feel sleepy.

The author also uses the oblique handwriting font to increase the "sense of presence ". Carefully designed a lot of hilarious dialogs, so that the learning process is not too boring. There is also a model of Advertising programs, the design model is anthropomorphic program guests, talk about its internal everything. Each chapter has a variety of test questions. At the end of each chapter, there are some key points, which are also the essence. I will use this page for review.

I know that the design pattern of the four-person group is a standard book, but it is easier to look at it first. Once you understand the basic principles, you can read the Bible of the four-person gang. -Calanus

12. Godel, Esher, and Bach: A great achievement of different cultures

Recommendation: 437

If I really want to go deep, I recommend Douglas Hofstadter's book Godel, Esher, and Bach. He has thoroughly studied the daily problems that programmers face: recursion, verification, proof, and Boolean algebra. This is an excellent book, which is difficult and occasionally challenging. Once you have to fight the battle, it will be very worthwhile. -Jonik

13. Clean code

Recommendation: 329

The detail has its own world, and is neat and tidy to achieve superior code

Even though bad code can run, if the code is not neat, the entire development team will be stuck in it, and poorly written code will consume a lot of time and resources every year. However, this situation is not unavoidable.

The famous software expert, Robert FC. Marlin, presented a revolutionary vision for you in the "clean code. Martin, along with colleagues at objectmetltor, extracted the value of software skills from their best agile practices on clean code to Serve Readers, make you a better programmer-as long as you start to study the "clean code".

What do you need to do to read "clean code? You will read the code-a lot of code. The "clean code" prompts you to think about what is correct and wrong in the code. More importantly, the "clean code" will prompt you to reevaluate your professional values and your commitment to your skills.

You can learn from "clean code:

  • The difference between good code and bad code;
  • How to write the code and convert the bad code into good code;
  • How to create names, functions, objects, and classes;
  • How to format the code to maximize readability;
  • How to fully handle errors without interfering with the code logic;
  • How to conduct unit testing and test-driven development.

Although there are many similarities between the "clean code" and "code Daquan", there are clear and concise examples. -Craig P. motlin

14. Effective C ++ and more effective C ++

Recommendation: 297

In the early stages of my career, Scott Meyer's "effective C ++" and later "more effective C ++" both have a direct impact on my programming capabilities. As a friend said at the time, these books shorten the process of developing programming skills, and others may spend years.

The most influential book last year was the cathedral and market, which taught me how to operate the open source development process and how to handle bugs in my code. -John Channing

15. Programming Pearl River

Recommendation: 282

For many years, when programmers have chosen the most beloved computer book, programming Pearl River is always at the forefront. Just as pearls in the natural world are honed by fine sand on oysters, Jon Bentley, a computer science master, has developed an immortal programming "Pearl" from the practical problems of programmers with his unique insights and creativity ", became the most popular column in the history of ACM, the world's computer science journal. The final collection is two immortal classics of computer science, it influences and inspires generations of programmers and computer science workers.

This book is the first to discuss the most essential question in Computer Science: how to correctly select and efficiently implement algorithms.

Although I have to be ashamed to admit that I do not understand half of the content in the book, I really recommend programming Pearl, which is somewhat surprising. -Matt Warren

16. Art of code modification by Michael feathers

This book is another milestone after "Reconstruction" and "Reconstruction and mode" to discuss the modification of code technology. It also exceeded the first two classics in terms of both coverage and depth. The book not only describes the object-oriented language (Java, C #, and C ++) code, but also has a special chapter on a procedural language such as C.

The author will understand, test, and modify the code principles, technologies, and the latest tools (Automated refactoring tools, unit testing frameworks, imitation objects, and integrated testing frameworks ), it is combined with the dependency solution technology and the principles and best practices of a large number of development and design of excellent code. Many contents are very deep and are often not released by our predecessors.

The book shows the author's unique insights, as well as the rich experience and profound skill accumulated in developing and guiding software projects over the years. Through this collective achievement, you can not only master the top-notch code modification technologies, but also greatly improve your understanding of code and software development.

I don't think any book can affect my programming point of view like this one. It clearly tells you how to deal with other people's code and implicitly teaches you what to avoid (and why ). -Wolfbyte

Agree. Many developers discuss writing software with clean slate. But I think almost all developers sometimes eat dog food from other developers. -Bernard DY

17. coding: Language hiding behind computer software and hardware

This is a book about how computers work.

However, you must never think that it is obscure because of a word like "Working Principle. The author uses rich imagination and clear pen and ink to explain seemingly complicated theories easily, so you will not feel bored or hard at all. More importantly, you will gain a deep understanding of how computers work. This understanding is not at the abstract level, but at a certain depth, which is not inferior to the understanding of "Electrical Engineers" and "programmers.

Whether you are a computer expert or a newbie who is full of reverence for this magical machine, you may wish to read code: Language hiding behind computer software and hardware. reading the classic works of a master will surely reap the harvest.

I recommend Charles Petzold's coding. In this age of tools and IDE, a lot of complexity has been extracted from programmers. This book is an open book. -Hemil

18. Zen and motorcycle repair art/Zen and the art of Motorcycle Maintenance

The book that has the greatest impact on me is Robert pirsig's Zen and motorcycle repair art. 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 ). -AKR

19. eagleware/Collection: User-friendly software development

DeMarco and Lister indicate that the primary issue in software development is human, not technology. Their answer is not simple, but an incredible success. The second version adds eight new chapters. -Eduardo molteni

20. coders at work/programming life

This is an interview transcript that records the programming career of the 15 most attractive software pioneers today. Industry legends including donaldknuth, Jamie zawinski, Joshua Bloch, and Ken Thompson told us how they learned programming, what have been found during programming and their views on the future, as well as their views on issues that have long plagued many programmers, such as how to design software.

A very influential book can learn the experience of some top-level people in the industry and learn how they think and work. -Jahanzeb Farooq

21. Surely you're joking, mr. Feynman! /Come on, Mr. Feynman!

Although this book may be a bit biased, believe it or not, it was written on the reading list of computer science courses. An excellent role model and an excellent book on curiosity. -Mike511

22. Simplified Java Chinese edition

This second edition teaches you how to write beautiful and efficient code. Although this is a Java book, there are many cross-language ideas. -Marcio Aguiar

23. Patterns of enterprise application architecture/enterprise application architecture model

It's strange that no one recommends Martin Fowler's enterprise application architecture model-Levi rosol

24. The little schemer and the seasoned schemer nmiranda

These two are letters from lisp, and there is no Chinese version. The website of Northeastern University also has an electronic version.

25. The inmates are running the asylum: Why high tech products drive us crazy and how to restore the sanity book Alan Cooper, known as the father of Visual Basic and the father of interactive design.

This book describes how to create better and more loyal software products and software-based high-tech products based on numerous business cases. This book lists a lot of real and credible examples, indicating that there is a common problem of "difficult to use" in software products and software-based high-tech products.

The author believes that the "difficult to use" problem is caused by the high "cognitive friction" in these products, the root cause of this problem lies in the lack of an early stage of "Interactive Design" for the interests of users in the software development process. "Difficult to use" products not only damage the interests of users, but also lead to enterprise failure.

This book uses some vivid examples to explain the effectiveness of the "objective-oriented" Interactive Design method proposed by the author in solving the "difficult to use" problem, it is confirmed that only by changing existing ideas can we effectively introduce interactive design in the development process and lead the product design to success.

Although this book is written for business personnel, it is also suitable for all professionals involved in software products and software-based high-tech product development, and those who care about the current situation and development of the software and high-tech industries.

He also has another Chinese version: the essence of about face 3 Interactive Design

26. Why's (Poignant) Guide to Ruby

Reading this book may be interesting if you are not a programmer, but it may be boring if you are already a programmer.

27. Unix programming Art

It is useful regardless operating system you use.-j.f. Sebastian

This book is useful no matter what operating system you use. -J.f. Sebastian

28. 45 habits of efficient programmers: practices of agile development

45 habits are divided into seven aspects: work attitude, learning, Software Delivery, feedback, coding, debugging and collaboration.

In each specific habit, a paradox is first put forward, then an analysis is carried out, and then a correct approach is put forward in a positive team, put yourself in the correct way to give you personal "personal feelings", and finally list several precautions to help you correct your practices ("balanced art ").

29. Test-driven development

Many of the books mentioned above have inspired me and influenced me, but every programmer should read this book. It showed me the importance of unit testing and tdd and gave me a quick start. -Curro

I don't care how nice or elegant your code is. If you do not perform the test, you may not have written the code. This book should have a higher number of recommendations. People discuss writing your favorite software or designing robust and efficient code, but if your software has a bunch of bugs, it makes no sense to talk about those things. -Adam gent

30. dianshi gold: visitor-oriented webpage design secret

Availability design is the most important and difficult task in web design. The author of dianshi chengjin-visitor-oriented webpage design secret (Second edition of the original book) analyzes users' psychology based on years of experience, in terms of the user's use mode, scan design, navigation design, homepage layout, and availability testing, many unique points of view are put forward, A large number of simple and easy-to-use usability design suggestions are provided.

This book is short, concise, and humorous. It is interspersed with a large number of colorful screens, interesting cartoon illustrations, and charts containing a large amount of information, making the boring design principle approachable.

This book is suitable for technical staff engaged in web design and web development. It is especially suitable for website/Webpage designers who are worried about how to retain visitors. This is a book on web design principles rather than web design technologies.

The author of this book is a web design expert with rich practical experience. He uses humorous language to reveal important but easily overlooked problems in web design. In just a few hours, you can find the crux of website design based on the design principles presented in the book, make your website look new.

Depends on your goals. I like code Daquan because of pure programming, and dianshi chengjin is an excellent book on uidesign. -Justin Standard

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.