Top 10 'Programmer Must Read' Books Most Quoted in Over 40 Million Questions & Answers in the IT Technology Q & A Community 'Stack Overflow'


WOCinTech Chat

Analyzing more than 40 million questions and answers on the programmer's Q & A site ' Stack Overflow ', the book most often cited in the question, that is, 'most trusted by programmers' 'Books that are available' are published in ranking format on the following sites.

Top mentioned books on

At the top of the page, tags can be selected as shown below, and programming languages such as 'JavaScript' and 'C' and programming-related words are displayed. Click on these to see the books that are often cited on the topic of the specified word. Also, there is a search box under the tag, so you can enter your own search word.

So, the top 10 most cited books among the questions and answers in Stack Overflow are:

◆ 01:

Legacy Code Improvement Guide (Object Oriented SELECTION) : 309 citations

Are you writing legacy code in Java or .net?

This book explains analysis methods and coping methods for code that has a complicated structure and cannot be understood, which is often the case in the field of system maintenance. In short, it introduces techniques that allow you to understand, test, refactor, and add functionality to your code. Legacy code is not a mainframe application, but code that is difficult to modify. In this book, the author says, 'For me, code without tests is legacy code.' 'If you have test code, you can change and confirm the behavior quickly even if you change the behavior. If you don't have the test code, change the behavior. But I can't tell if it's right or wrong. '' Is it enough if the source code is clean and well-structured? No. It's incredible if you make major modifications without test code. Requires skill and a clear understanding. ' Although this book describes samples in Java, C, and C ++, the techniques described are language-independent and can be used in other languages (Delphi, Visual Basic, COBOL, FORTRAN).

◆ 02:

Design pattern for object-oriented reuse : 277 citations

Design patterns for object-oriented reuse
Bring in architectural ideas

Object-oriented was born as a method of software development, but it is spreading to other fields. One of the things that should be noted is the appearance of 'design patterns'.

A design pattern is a collection of catalogs used when designing software in an object-oriented manner. For example, an experienced programmer can apply the previously used solution if he finds that the problem he has solved before is similar to the problem he is trying to solve. A design pattern can be thought of as a collection of generalized (patterned) solutions so that anyone can reuse them.

This idea and implementation method became famous in this book, which is generally called the GoF (Gang of Four: 4-member) book. The GoF book is strongly influenced by the city planning catalog 'The Road to Timeless Construction' (Kajima Institute Publishing) compiled by architect Christopher Alexander. This point is very interesting. This is because the introduction of object-oriented programming shows that structures can be patterned in the world of software as well as in architecture.

◆ 03: Clean Code Agile software master's skill : 256 citations

To understand the contents of the book, the review '

Books to read to further refine the code ' is helpful.

Making full use of object-oriented principles and design patterns
What decisions should be made when actually writing line-by-line code?
It is a good book where you can learn the technique that can be called the craftsmanship.

Of object-oriented principles (SRP, OCP, etc.) and design patterns
It is premised on some knowledge.
As the author wrote, 'The mystery of agile software development'
It is good to think of it as a sequel to.

From the author's experience, to write code that is easy to understand, maintain, and extend
We explain the know-how one by one while refactoring the code.
It will be very helpful.

The good thing about this book is that while learning the ideas based on the author's extensive experience
I agree, disagree, and make me think deeply ...
Repeat that to hone your philosophy of code quality.

To be honest, it's hard because the code swells and becomes more difficult as you move on.
However, if you believe and read it, you will get a lot of money.
That point is the same as the above-mentioned 'Mystery of Agile Software Development'.

Here are some of the ideas that impressed me.
-Whether the function does some processing or returns some response
You should do either, not both.
-Programmers are basically incapable of maintaining comments.
Comments are a lie over a long period of time, so rather than spending time commenting
Spend your time writing descriptive code.
-Make the first rule of the function small. The second rule is to make it even smaller.
Few functions should have more than 20 lines.

◆ 04: Java Concurrent Programming-Exploring its 'foundation' and 'latest API'-: Number of citations 201

The review '

To avoid failure in multithreading ' is helpful.

I've been on the server side for a long time, but asynchronous processing was left to the container, and I didn't have to worry about multithreading. Recently, I've been running a normal client program, but processing such as 'execute multiple tasks at the same time and wait until all the results are obtained' and 'execute in the background and display the processing process on the GUI component'. I had a lot of bones. After that, I came across this book, but I strongly thought that I should have read it first.

It's a must-see for anyone writing a multithreaded program, from what to look out for in a multithreaded program to how to use the Concurrent API. This book may be a little difficult, so beginners may read it from 'Introduction to Design Patterns Learned in Java Language, Multithreaded Edition' (also recommended).

◆ 05: Eric Evans's domain-driven design (IT Architects' Archive software development practice) : 190 citations

It is widely accepted in the software development community that domain modeling is central to software design. Through the domain model, software developers can express rich features and translate them into software implementations that truly meet the needs of users. However, despite its apparent importance, there were few practical resources to explain how to incorporate effective domain modeling into the software development process. Domain Driven Design meets this demand. It's not a book about concrete technology, but a systematic approach to Domain Driven Design for the reader. This book introduces an applied set of design best practices, empirical techniques, and basic principles that facilitate development in software projects facing complex domains.

◆ 06:

JavaScript: The Good Parts-Best practice with 'good parts' : 178 citations

'JavaScript is, so to speak, a bunch of marble, and I'll remove unattractive features from it until the wonderful essence of the language emerges. The beautiful subset I'll eventually carve out is more reliable and It's easy to read, easy to maintain, and I believe it will be a very good language in everything. '(From' Chapter 1 Good Parts ')-This book focuses on the' good parts 'of the JavaScript language and is of good quality. Suggest points for writing code. By re-evaluating JavaScript through 'good parts', we can see the essence of the JavaScript language that was overlooked.

◆ 07:

Enterprise application architecture pattern : 173 citations

Engineers with experience in object development often make common mistakes in enterprise application development because they do not understand the architecture. This book provides a direct answer to the daunting challenges faced by enterprise application developers. As technology changes (from Smalltalk to Java, .NET, CORBA), the same basic design ideas can be applied to solve common problems. This book introduces more than 40 patterns. These are solutions applicable to enterprise application platforms. The first half is a short tutorial on developing enterprise applications. The second half explains each pattern in detail. Each pattern details a code example in Java or C # and describes its usage and implementation. The concept is also illustrated with a wealth of UML diagrams.

However, the customer review says, 'No

matter how bad you are at English, you should get the original book .' 'It is one star because of the translation business, but the original is a five star without complaint. ' The splendor of the original book seems to be endorsed.

◆ 08: Code Complete 2nd Edition Aiming for complete programming : 154 citations

This book is a hands-on programming guide that gathers knowledge about effective construction practices. Software development practices have made remarkable progress, but have been slow to penetrate the average programmer. This book bridges the knowledge of industry leaders with general commercial practices. The concept is the same as the first edition 10 years ago, but the second edition reflects the object-oriented mindset throughout. We've also added a 'Refactoring' chapter and updated the sample code to C ++, C #, Java, Visual Basic, and more. This book is for experienced programmers seeking a comprehensive guide to software development, technical instructors to educate inexperienced programmers, self-taught programmers who have not received formal training, students and new programmers who are about to enter society. Especially targeted. The research findings and past experience described in this book will help you create high-quality software, minimize problems, and get the job done in less time. It also helps you control large projects and properly maintain and modify software as your requirements change.

The ebook version costs 10,800 yen, and the book version is divided into

upper and second volumes , each for 6588 yen.

◆ 09: New version refactoring-Safely improve existing code- (OBJECT TECHNOLOGY SERIES) : Number of citations 148 times

New editions are on sale in Japan, and it is recommended that there is a review that '

Java programmers who have not read the old edition are a must-read. We recommend that you use it as a subject for reading and reading sessions within the development team. ' It has been.

The basic content is almost the same as 'Refactoring-Program Constitution Improvement Techniques', but
A careful review by the original translator is also reflected in the new edition.
I haven't read it all yet ...
(I'm not reading it while making a strict comparison with the old version ...)

The old version is no longer sold, so it seems that the new version was released with the idea that many people would have the opportunity to purchase it.
The highlight of the new edition is the appendix 'Changes in the environment surrounding refactoring due to Java version upgrades'.
There is a description of advances in Java and its testing framework since the publication of the previous edition.
The target Java is up to 7.

After describing the progress of Java and its testing framework, reflecting that progress,
I'm refactoring the code contained in this book again. Actually, generics etc. are handled.
I think this part is the most notable part of the new edition.

I'm complaining that this book isn't fully Java 7 compliant,
In the future, it seems that Oracle will focus on strengthening the Java language specification unlike before.
Even though there have already been significant changes in Java 8, I think the refactoring of the appendix is sufficient for the new edition.

◆ 10: Head First Design Patterns-Basics of design patterns that you can learn with your head and body : 140 citations

The design pattern edition of the popular Head First series, which is easy and fun to explain using illustrations and photographs for those who are learning for the first time, those who have frustrated in the past, and those who want to solidify their knowledge. You'll never get bored with exciting layouts, stunning knee-slap parables, immersive anecdotes, fun quizzes and puzzles. This is an epoch-making book of scales that gives you an interesting understanding of the concept of complicated and esoteric design patterns.

in Note, Posted by logu_ii