"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 top 30 books are considered classic. Compile the Q & A post and extract comments from some 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
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
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.
Are you not sure? Then read the preface or preface of the first edition. A free electronic version is available online. -Antti sykäri
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
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
6. refactoring: improving the design of existing code
Recommendation: 617
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
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
9. Computer Programming Art
Recommendation: 542
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
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. Gödel, Esher, and Bach: a collection of great achievements
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
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
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
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
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
(Editor's note: for this book, you can also take a look at Ruan Yifeng's post-reading experience .)
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
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 English name: 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 practices of an agile developer/efficient programmer: 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 by example./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. Don't make me think/dianshi chengjin: visitor-oriented Webpage Design tips
Depends on your goals. I like code Daquan because of pure programming, and dianshi chengjin is an excellent book on uidesign. -Justin Standard
At last, I cannot mention the technical books, graphic explanations, self-built exercises, and easy language comprehension in the head first series. It is suitable for beginners to read.
How many books have you read?