Java Backend Bookshelf
I prefer those thin books that can use short and smooth words to make up for the foundation needed by young and hard-working programmers, and some textbooks may be famous, but they are dry and boring, and the chattering brings you back to the university class. Drowsy, do not record.
1. Books on Operating Systems and Networks
"Linux Kernel Design and Implementation, 3rd Edition"
Robert Love explained the main algorithms of the Linux kernel clearly with the thinnest space and smooth words, "In-depth Understanding of the Linux Kernel", "In-depth Linux Kernel Architecture" and other thick ones are all codes, not for special kernel programmers This book is enough.
"Linux System Programming 2nd Edition"
Continue to Robert Love, who is also known for his thinness compared to APUE, and specifically explains important system calls.
"Peak of Performance"
For performance tuning, monitoring, tools and methodologies of the operating system, it is enough to read this book. It is thick enough and may be the thickest book in the book list.
"TCP/IP Detailed Explanation Volume 1: Protocol"
After so many years, it seems that there is only this book on TCP, which is a bit old, and I still don't understand it after reading it. Later generations wrote the second edition in 2011.
"WireShark Network Analysis Is So Simple" and "The Art of WireShark Network Analysis"
How many people really understand the details of TCP after reading these two easy and practical books.
PS: "Advanced Programming in UNIX Environment" and "UNIX Network Programming", APUE and UNP exist more as an ultra-thick reference book. "The Art of Unix Programming" is full of idle articles, and a thick book can actually be read briefly. "Modern Operating System 3rd Edition" If you don't enjoy reading LKD, you can look back at this basic concept. It feels more comfortable to read than the boring "Operating System Concept" (dinosaur book).
"TCP/IP Guide" Recommended by the author of the previous wireshark book, there is an English free version on the Internet, and then there are Chinese versions of Volume 1 and Volume 2, but there may be so many chapters and so thick that you only care about TCP and HTTP. "The Authoritative Guide to HTTP" also selects interesting chapters from the thick table of contents to read.
In addition, I don't like "Illustrated XXX" written by Japanese and Koreans.
2. Algorithms book
"Data Structure and Algorithm Analysis - Java Language Description 3rd Edition"
It is thin enough, and basically covers all the points of data structure and algorithm analysis, and the sample code that I like it is written in Java, and the third edition is newly released.
Algorithms 4th Edition
It can be read in comparison with the previous one. It is thicker and has more pictures, but the knowledge points are not as complete as the above, and it is also Java.
PS: "The Beauty of Mathematics" and "Pearls of Programming" are column articles, and they are not systematic. They can be read as interesting readings.
The Department of Mathematics prefers "Introduction to Algorithms", which is extremely boring and has many formulas. The Department of Computer Science likes this pragmatic "Fundamentals of Algorithm Design and Analysis, 3rd Edition".
3. Architecture design book
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives 2nd Edition
It is also a textbook. The most rare thing is that this old book was upgraded to the second edition last year ten years later, so it feels much more lively, and it may be the most vivid architecture book.
Just Right Software Architecture - A Risk-Driven Design Approach
Due to the inherent inertia of human beings, it is difficult to maintain the original scientific and precise design method of computers after they have an agile excuse. It is against this background that this book proposes that risks determine the degree of design. Except for the risk-driven part at the beginning, the rest is a standard architect textbook.
"SRE: Google Operation and Maintenance Decryption"
The slogan of the ad is "There is such a team on the earth that pushes the operation and maintenance to the extreme height", which is a bit of a headline, but there are many things worth looking at.
"release! Software Design and Deployment》
Regarding the part of high-reliability software, which is not taught in schools but has to be faced in society, the original title in English is clearer.
"Large Website Technical Architecture: Core Principles and Case Analysis"
Produced by Taobao, an introductory book for popular science on large Internet sites.
"50 Principles of Highly Scalable Websites"
It is also an entry-level book, if there are 50 principles of high availability, then it will be complete.
There are so many books on microservices, but this one is not like making quick money.
"Daily Knowledge of Big Data"
In the past few years, I participated in various technical conferences, CAP, final consistency, RWN, vector clock, Paxos, consistent hashing, Gossip and so on can fill your ears. But now, you only need to read a book quietly at home. However, this field is developing too fast, and another year has passed, and it is expected that it will continue to publish new editions.
PS: Regarding design patterns, I have had many books before, GOF23, Enterprise Application Architecture Patterns, EIP, POSA 5 volumes, anti-patterns, JavaEE/SOA/Restful patterns. But now I feel that for newcomers, a "Head First Design Pattern" written in Java is enough to know what a design pattern is.
The author of "Software Architecture for Programmers" maintains codingthearchitecture.com. However, the title of the Chinese book "Must Read" is a bit too much.
4. Java Language Books
"Java Concurrent Programming Practice"
Java concurrency classics, needless to say if everyone has one.
"Practical Java High Concurrency Programming"
This is a new Chinese work, fluent and easy to read, and the content is newer than the previous one.
"Java8 in Action"
The new features of Java8 are the most comprehensive and detailed.
"In-depth understanding of Java virtual machine 2nd edition"
Understanding virtual machines is not that difficult. For Java programmers, a lot of knowledge is actually necessary. In addition, there are several other books with similar themes, and they all came out all of a sudden.
The Definitive Guide to Java Performance
Compared with the tuning bible many years ago, it is more in-depth and closer to the current JDK. You can pick some knowledge points from it and do Java tuning interview questions.
"Effective Unit Testing"
Different from those advanced books that frequently use BDD, focusing on how to write "good" and maintainable unit tests, and showing them to the team can save a lot of saliva.
PS: "Effective Java" is unanimously praised by the outside world, but it is a bit too praised. In addition, "Thinking in Java" is a bit old, and the author's ideas are random, and the translator's language is obscure. New programmers are recommended to read two volumes of "Java Core Technology-Core Java" at the same time.
5. Self-cultivation of programmers
PS. I haven't bought any new books recently, just talk about some old books:
"The Way of Programmers' Practice - from Small Workers to Experts", Pragmatic Programmer - the pioneering work of programmers who pay attention to practical results, and the translation of Maddavi's writing style is as good as that of Xiong Jie.
"The Way of Clean Code" and "Professionalism of Programmers", the English names are very similar "Clean Code" and "Clean Coder", should replace "Code Encyclopedia 2" as a must-see series, because the latter is too thick , and there are also many outdated things that need to be filtered by yourself.
"Refactoring" is very thick, but the most valuable is the brainwashing chapters in the first few chapters. The specific implementation is not as good as the thin "Refactoring Manual".
Regarding agile books, the first "Analyzing Extreme Programming-Embracing Change" is very good, and it is enough to find a Scrum process at random, and "The Art of Agile Development" is also good.
"The Way of Evangelism", students who often promote new technologies in their organizations can read the seven skeptical models and familiar faces in their minds.
PS. Weinberg's books are highly praised on the Internet, such as "Becoming a Technology Leader", but I think the age is too far away, and it is not very interesting to read. One or two chicken soup ideas have to be slowly searched from the book. It's better to watch something else if you have that kung fu.
Knowledge Base Team
Knowledge Base Team
Knowledge Base Team
Knowledge Base Team
Explore More Special Offers
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00