Books and websites that programmers should read

Source: Internet
Author: User
Document directory
  • The most common computer books that programmers lie to have read

Recommended for foreign programmers: books that every programmer should read:

1. Code DaquanSteve Mike Cornell

Recommendation: 1684

"An excellent Encyclopedia of programming practices ,《Code Overview"Focuses on personal technology. All of these are what we say by instinct:" Writing neat 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.

Code Overview"," Restructuring "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 modificationBy 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 schemerNmiranda

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

 

25. The road to Interactive DesignEnglish name: the inmates are running the asylum: Why high tech products drive us crazy and how to restore the sanity by Alan Cooper, known as the father of Visual Basic and 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

 

The following are examples:

Modern C ++ design by Andrei Alexandrescu

Best software writing I by Joel Spolsky

The practice of programming | programming practices by kernighan and pike

Pragmatic thinking and learning: refactor your wetware by Andy hunt

Software estimation: Demystifying the black art by Steve McCONNEL

The passionate programmer | my programming, my pleasure: The Path to career planning for programmers by Chad Fowler

Hackers: Heroes of the computer revolution | hacker: Hero of the computer revolution

Algorithms + data structures = programs

Writing solid code

Javescript: the good parts | the essence of JavaScript

Getting real by 37 Signals

Foundations of programming by Karl Seguin

Computer Graphics: Principles and Practice in C (2nd edition) | principles and practices of computer graphics: C language description

Thinking in Java | Java programming ideology by Bruce Eckel

The elements of Computing Systems

Refactoring to patterns | reconstruction and mode by Joshua kerievsky

Modern Operating Systems | modern operating systems by Andrew S. Tanenbaum

The annotated Turing

Things that make us smart by Donald Norman

The timeless way of building | the eternal path of a building by Christopher Alexander

The deadline: a novel about project management by Tom Demarco

The C ++ programming language | C ++ programming language by stroustrup

Patterns of enterprise application architecture | enterprise application architecture model

Computer systems-a programmer's perspective | an in-depth understanding of computer systems

Agile principles, patterns, and practices in C # by Robert C. Martin

Growing object-oriented software, guided by tests

Framework Design Guidelines |. Net Design Specifications: Conventions, idioms, and patterns by Brad Abrams

Object thinking by dr. David West

Advanced Programming in the Unix environment | advanced programming in UNIX environment

Hackers and painters: big ideas from the computer age | hacker and painter

The soul of a new machine | soul of a new machine by Tracy Kidder

CLR via C # | Framework Design by Jeffrey Richter

Design Patterns in C # by Steve metsker

Alice in Wonderland | Alice in Wonderland by Lewis Carol

Zen and the art of Motorcycle Maintenance | Zen and motorcycle repair art by Robert M. pirsig

About face-the essentials of interaction design | about face3 interaction design Essence

Here comes everybody: The power of organizing without organizations | the future is wet: unorganized organizational forces by Clay Shirky

The Tao of Programming

Computational beauty of nature

Philip and Alex's Guide to Web Publishing

Object-oriented analysis and design with applications | Object-Oriented Analysis and Design by Grady booch

Tive Java | simplified tive Java Chinese edition by Joshua Bloch

Computability: An Introduction to recursive function theory by N. J. cutland

Masterminds of programming | the wisdom of programmers/the soul of Programming

Tao Te Ching | Tao Te Ching

The productive programmer | effective programmer

The art of deception by Kevin Mitnick

The Career programmer: guerilla tactics for an imperfect world by Christopher Duncan

Paradigms of Artificial Intelligence programming: Case Studies in Common LISP

Masters of doom | revelation of doom

Pragmatic unit testing in C # With nunit by Andy hunt and Dave Thomas with Matt hargett

How to solve it: a new aspect of mathematical method | how to solve the problem: a new method of mathematical thinking by George polyA

The Alchemist | Shepherd's fantastic journey by Paulo Coelho

Smalltalk-80: The Language and Its Implementation

Writing Secure Code (2nd edition) by Michael Howard

Introduction to functional programming by Philip wadler and Richard bird

No bugs! : Delivering error free code in C and C ++ by David thielen

Rework | REPLAY: simpler and more effective business thinking by Jason Freid and DHH

JUnit in action | JUnit practice

 

Supplement:

The most common computer books that programmers lie to have read
  1. Introduction to algorithms (CLRS)The name of this book is the least misunderstood of all published computer books. It is widely used in many universities and is usually used as an algorithm course required by graduates. As a result, almost all students who have taken computer courses in a university have such books. However, unless you have a master's degree in computer science (and in the field of Algorithm Research), I suspect that you have read at most a few chapters from introduction to algorithms (Introduction to algorithms. This title is misleading because the word "Introduction" makes people think it is suitable for junior programmers. Actually not. This book gives a comprehensive introduction to algorithms as much as possible, just like other similar books that are everywhere. Please do not recommend this book to beginners.
  2. Compilation principles (compilers: Principles, techniques, and tools) (the dragon book)This book on the cover of dinosaurs covers all the knowledge you need to develop a compiler. Its content includes vocabulary analysis, syntax analysis, type check, code optimization, and many other advanced questions. Please do not recommend this book to junior programmers. All they need is to analyze simple strings that contain mathematical formulas or HTML. Unless you really need to implement a practical Compiler (or interpreter), you don't need to grasp all the power of this dinosaur book. Recommend it to a person who encounters a simple text analysis problem, which proves that you have never read it.
  3. The art of computer programming (taocp)I often hear people describe this book as a series of computer books that every programmer must read. I think this is obviously not true. Let me explain this before I say this disrespectful word and you beat it to death. This is not a book that allows you to read one page at a time. This is a reference book. It looks good to put it on your shelf (and it actually works well), but if you want to read it all over again, it will take several years and you will not remember anything at last. This does not mean that such a book has no value at hand. It is a reference book. I have found a solution in this book many times when I encounter difficulties and have no way to go. However, this book is eventually used as a reference book. It is complex and difficult to understand. It is very theoretical. The examples in it are assembly languages. On the other hand, if you want to find a solution to a specific problem in this book, if you cannot find it, it means that this problem has no solution. It is the most detailed introduction to the fields it involves.
  4. Design Patterns: Elements of reusable object-oriented software (Gang of Four)This book is the only one I have read from the beginning to the end in this list. The result is that I don't know which category to classify this book. It appears in this list, not because I think only a few people actually read it. Many people have read it. It is because more people who have recommended this book have not read it. The problem with the design patterns book is that you can see the information provided in many books in many other places. This allows a beginner to read several articles about design patterns on Wikipedia, and then dare to claim that he has read this book during the interview. This is why Singleton becomes a new global variable. If more people spend time reading the original book, also called Gang of Four, there won't be so many people in the world who will put 17 design patterns into a logging framework. The most exciting part of this book is how to correctly use a pattern section in each chapter. Unfortunately, these are missing from many other design patterns.
  5. The C ++ Programming Language)This book is not like a programming textbook, but also a reference for a programming language. There are a lot of indications that someone has read this book, otherwise we cannot have so many c ++ compilers to choose from. Programming beginners (or even experts in other languages), if they want to learn C ++, they should not simply chew on the C ++ programming language (the C ++ Programming Language) book. Tell them to read the Chinese version of C ++ primer.

Websites that should be accessed frequently:

Chinam.com:

1. http://www.csdn.net/

2. http://www.iteye.com/

3. http://www.cnblogs.com/blog

4. http://www.aqee.net/Additional it reviews

5. http://webservices.ctocio.com.cn/IT expert network

6. http://www.oschina.net/open source Chinese community

1. http://www.theserverside.com/

This is a well-established it information website. You can see from its name that it focuses on server-side programming and focuses on Java and Java peripheral information, however, it has also showed a tendency to expand to clients and Microsoft products recently. This website was originally known for its free distribution of the "Mastering Enterprise JavaBeans" e-book. Now this book has been updated to ELB 3.0, and you can still download it from the website for free. The content of this website includes it news consultation, expert comments, expert interview videos, and conference videos.

2. infoq

The previous focus of infoq was agile development with a wide range of content. This website also provides Chinese versions, but it may be because of the time-consuming translation. Chinese content is always several days behind the English content.

3. Digg technology Channel

Digg was originally a website dedicated to providing scientific and technological information by several technical personnel. Due to the increasing number of fans and the increasing traffic, Digg's content has also been extended to non-technical aspects, however, this has led to a decline in the quality of IT technology information content, which has led to dissatisfaction among many veterans, in particular, last year, this website's revision operation completely hurt the hearts of fans, resulting in the evacuation of a large number of loyal fans. The total access volume of the Website almost fell by half. This is a living example of a catastrophic accident caused by a revision.

4. Reddit programming and technology channels

Reddit and D

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.