preface
One of the worst things about being a Java programmer is that you have too much to choose from and too many books to read. I’d like to pick out some of the technical books I’ve read and, in order of importance, recommend them to you, especially Java programmers who want to keep improving their skills. In addition, feel free to add your favorite Java oriented books or computer basic must-see books in the comments section!
Here are some must-see books for advanced Java P8 architects that the Lebyte leaders spent 3 hours recommending
First, Java programming into the class
For programmers who have no Java programming experience to get started, just read any introductory books are the same, this stage requires you to quickly master the basic syntax and basic usage of Java, the purpose is “swallowed without understanding”, first get familiar with Java again. Go through Java syntax quickly in a short amount of time, write as much code as you can, and “know what’s going on.” After you have some Java programming experience, you need to “know how”. This time “Java programming ideas” is a good book to let you know why, it has a more clear explanation of the basic object-oriented knowledge, basic Java syntax, basic class libraries have a more clear explanation, can help you play a good Foundation of Java programming. The disadvantage of this book is really too thick, also more wordy, not suitable for modern fast pace of learning, so read this book to know how to choose, not every chapter and every section is worth a look, pick the key in-depth look can be.
2. The Chinese version of Agile Java was given to me by the publishing house. As soon as I got it, I put it on the shelf and did not turn a page in the bookcase. One of the features of this book is unit testing and TDD throughout the book. In the process of teaching Java various important basic knowledge, it will subtly influence your programming thinking to become agile and TDD. In addition, this book is a new book, based on JDK5.0 syntax explained, to learn JDK5.0 new syntax is also good. Also have choices for the book is very proper, Java language libraries, after all, large, what can say too much, choose the amount of the content and content of this book are all very well, can let you with the least amount of time to master the most important knowledge, Java and good programming ideas, by the way, it’s a rare book. Although the author himself has positioned this book as an introductory level, I am not sure whether this book is a little too deep to be used as an introductory level. I also plan to read this book and learn more when I have time.
3. Head First Java
Can be said to be my Java enlightenment book, especially suitable for beginners to read, of course, also suitable for us to warm up the old Java knowledge points.
4. Java Core Technology Volume 1+ Volume 2
Great two books, suggest a little Java foundation after reading, introduction or more in-depth, very recommended. These two books, which I usually use to consolidate knowledge, are two good books that are suitable for my side.
5. JAVA Network Programming Edition 4
You can systematically learn some concepts of network and network programming in Java.
6. Ideas for Java Programming (4th Edition)
Most people call it the Bible of Java, but I don’t recommend it for beginners. It’s a little discouraging. A little basic reading is better.
Second, Java programming advanced class
To lay a good Java foundation, but also need more practical experience accumulation, I think there is no shortcut. There are two books worth reading at this stage of your programming career to develop good programming habits and improve the quality of your code. 1. “Refactoring and Improving the Design of existing code” is a famous book, which needs no more introduction. You can read it more at your leisure and verify it with your own practice. The book had a subtle influence. One of the biggest features of this book is that it is very thin and seemingly unburdened. Take a weekend afternoon, read it, do it, and finish the book in one afternoon, all the examples of the book. The purpose of this book is to develop TDD thinking in action.
3. “Deep Understanding of Java Virtual Machine (2nd Edition) by Zhiming Zhou”
It is recommended to read the book several times. All the knowledge points in the book can be fully listed through the JAVA runtime area and the JAVA memory model and threads.
4. Real JAVA Virtual Machine
(Recommended, 8.0, 1.0K+ review) : As a starting point to understand the Knowledge of Java virtual machine is not bad.
5. Java 8 In Action
(Recommended, Douban score 9.2) : Java 8-oriented skill upgrades, including Lambdas, streams, and functional programming features. The consistent style of actual combat series lets oneself get started quickly and apply. Lambdas are syntactically supported by compact expressions in Java 8. Java 8 provides Streams, and learning and using them can build awareness of streaming programming.
6. Java 8 Programming Reference Official Tutorial
(Recommended, 9.2 points on Douban) : Not bad.
7. Refactoring _ Improving the Design of Existing Code
(Recommendation) : douban 9.1 points, the originator of reconstructing books.
8. Effective Java
This book introduces 78 practical rules of thumb for Java programming, covering solutions to problems that most developers face every day. A comprehensive description of the techniques used by Java platform design experts reveals what do’s and don ‘ts do to produce clear, robust, and efficient code. Each rule in this book is presented as a short, self-contained article, and is further illustrated with example code. The book is comprehensive in content, clear in structure and detailed in explanation. It can be used as a reference book for technicians.
9. The Code Clean Way
Although this is an example of the Java language, the whole point is to illustrate Java object-oriented ideas, most of the content can be applied to other languages.
10. Illustrated HTTP
(recommend, beans score 8.1, 1.6k + people comment) : talk about the same HTTP comics, very interesting, will not feel boring, probably also covers also HTTP common knowledge points. Because of the length problem, the content may not be very comprehensive. However, if you are not a web researcher who wants to learn more about HTTP, this book should do the job.
11. The Definitive GUIDE to HTTP
(Recommended, douban score 8.6) : If you want to fully understand HTTP is not this book!
12. Big Talk Data Structures
Introduction type of books, read relatively easy to understand, suitable for no data structure foundation or data structure did not learn partners used to start data structure.
13. Data Structure and Algorithm Analysis: DESCRIPTION in C Language
This book is the simplified Chinese translation of the second edition of Data Structures and Algorithm Analysis in C. The original book has been rated as one of the top 30 computer books of the 20th century. The author, Mark Allen Weiss, is famous for his work on data structure and algorithm analysis. His books on data structure and algorithm analysis are particularly popular and widely acclaimed. It has been used in more than 500 universities around the world.
14. Diagram of Algorithms
Introduction type of books, read relatively easy to understand, suitable for no algorithm foundation or algorithm did not learn the small partners used for entry. Examples are rich and illustrated to illustrate the algorithm in an easy-to-understand way. Read faster, the content is not boring!
15. Algorithms Fourth Edition
Java language description, a classic reference book in the field of algorithms, a comprehensive introduction to the necessary knowledge about algorithms and data structures, and especially for sorting, search, graph processing and string processing are discussed. The book is so extensive that it is one of the must-have books for Java programmers.
16. High Performance MySQL
(Recommended, Douban score 9.3, 0.4K+ people evaluation) : the classic work of mysql field, has a wide range of influence. It is not only suitable for database administrators (DBAs) to read, but also for developers to reference learning. No matter database novice or expert, I believe all can gain from this book.
17. Redis In Action
If you want to understand the concept of Redis, this book is really good.
18. Redis Design and Implementation
(Recommended, douban score 8.5, 0.5K+ people evaluation) : Also ok!
19. MySQL Tech Insider -InnoDB Storage Engine
InnoDB storage engine basic principles of a necessary book, more in-depth.
The Path of Java Architects
At this stage, you should be very skilled in Java programming, and have a good programming ideas and habits, but may not have a grasp of the overall architecture of the application software, now is the first step towards the architect. 1. Expert one-to-one J2EE Design and Development is Rod Johnson’s famous and classic book, from which code was born the springframework. But it seems there is no Chinese translation of the book. 2. The book, Expert one-on-one J2EE Development without EJB, was translated by gigix with the help of several industry experts and, although signed by JavaEye, is certainly a disciple of his own. Both of these books are Rod Johnson’s classics and must read for Java architects. Of all these books recommended by, is the most carefully read, the most serious books, then this book is almost forget all about eating and sleeping in reading, wiil have a childhood of jin yong’s martial arts novels, the book of content and their experience knowledge one by one, was extremely insightful summary, after reading this book, there is a break through the meridians, The sensation of a burst of skill. However, after reading some other people’s comments, it seems that the reading experience is not so high, perhaps because everyone has different knowledge accumulation and experience. At that time, the accumulation of experiential knowledge was rich enough, but there was no systematic arrangement, so that the book could form a complete knowledge system immediately after sorting out. 3. Enterprise Application Architecture Patterns another great book by Martin, but this book is only skimmed over rather than read in detail. This book seems to be a better read for those who are working on frameworks, for example, if they are planning to write an ORM themselves. But people who do applications, it does not seem to matter, but if you have time, or recommended to take a look, will let you know why the framework is designed in this way, this level can be promoted to the perspective of the framework designer to think about the problem. Martin’s books have always been admired, but never read with as much care as Rod Johnson’s. Agile Software Development Principles, Patterns and Practices is Uncle Bob’s classic work. This book is more about software architecture than software development process. It covers a large part of the various modes of object-oriented software development. You don’t have to watch GoF’s Design Patterns.
5. The Beauty of Concurrent Programming in Java
I published a book in October 2018. I feel very good about it. I explained every knowledge point very well.
6. The Art of Concurrent Programming in Java
This book is not a good introduction to Java concurrency and requires some JVM foundation. I feel some things about or quite in-depth, recommended reading.
7. Practical Java High Concurrency Programming
(Recommended, 8.3 points on Douban) : The book has excellent quality. I recommend you to have a good look.
8. Java High Concurrent Programming in Detail
A book published in June 2018. It’s very detailed and maybe a little too long-winded, but that’s just my feeling.
9. Birdman’s Linux Dish
This book is the most well-known Linux introduction book “Bird brother Linux private dishes basic learning chapter” of the latest edition, a comprehensive and detailed introduction to the Linux operating system. The book is divided into five parts: the first part focuses on the origin and function of Linux, how to plan and install Linux host; The second part introduces Linux file system, file, directory and disk management. The third part introduces the text mode interface shell and the good helper shell script of the management system, and also introduces the use method of the text editor VI and VIm. The fourth part introduces the Linux account management which is very important for system security, as well as the host system and program management, such as viewing process, task assignment and job management. The fifth part introduces the system administrator (root) management matters, such as understanding the system running status, system services, for the login file parsing, system backup and core management.
10. Design Patterns: The Foundation of Reusable Object-oriented Software
(Recommended, douban score 9.1) : Classic design mode!
11. Head First Design Mode (Chinese Version)
(Recommended, 9.2 points on Douban) : An excellent introduction to design patterns. Use practical programming examples to explain various problems and requirements changes encountered in algorithm design (yes, even requirements changes are taken into account!). And then a good design pattern solution can be derived step by step.
12. An Inside Look at Java Web Technology
It feels ok. It involves a lot of things.
13. Netty Wars
The content is very fine, if you want to learn Netty, recommend reading this book!
14. From Paxos to Zookeeper
(Recommended, 7.8 points, 0.3 points) : This paper briefly introduces several typical distributed consistency protocols and their solutions, especially Paxos and ZAB protocols. At the same time, this book deeply introduces the industrial solution of distributed consistency problem — ZooKeeper, and focuses on showing readers the use method, internal implementation and operation and maintenance skills of this distributed coordination framework, aiming to help readers fully understand ZooKeeper and better use, operation and maintenance of ZooKeeper.
15. Spring In Action (4th Edition)
(Recommended, douban score 8.3, 0.3K+ reviews) : It is not recommended to read as a primer, the primer can find some Chinese books or videos to watch. This positioning is like a Xinhua dictionary of Spring, with a few introductions and examples of basic concepts that cover all aspects of Spring, but they don’t go far enough. As the author writes on the last page: “Learn Spring, this is just the beginning”.
16. RabbitMQ Field Guide
Starting from the concept of messaging middleware and the history of RabbitMQ, RabbitMQ Combat Guide mainly describes RabbitMQ installation, use, configuration, management, operation and maintenance, principle, and extension. If you want to dabble in RabbitMQ, this book is your best bet. If you want to get into the mechanics of RabbitMQ, this book is also your best bet; All in all, this is one of the best books to read if you want to play RabbitMQ
17. Spring Cloud Micro-Service Field
Based on the popular concept of microservice architecture, this paper introduces Spring Cloud’s solutions and basic components for several core elements of microservice architecture in detail. For the introduction of each component, “Spring Cloud Micro-service Field” mainly combines examples with source code to help readers better understand the use of these components and operating principles. At the same time, in the process of introduction, also includes the author encountered in the practice of some problems and solutions for readers in practice as a reference.
18. The First Docker Book
Docker Primer!
19. Technical Architecture of Large Websites: Core Principles and Case Analysis + Li Zhihui
(Recommended) : I have read this book, you do not need to have any basic knowledge ~ it is very easy to read, but you can learn a lot, highly recommended. In addition, I have written the mind map of this book. Follow my wechat official account: “Java Interview Clearance Manual” and reply to “Technical architecture of large websites” to receive the mind map.
20. Core Technology of Website Architecture with 100 million Traffic
(Recommendation) : The book summarizes and combs the principles of high availability and high concurrency of websites with hundreds of millions of traffic, and introduces in detail how to implement these principles through examples. This book is divided into four parts: overview, high availability principle, high concurrency principle, case study. From load balancing, traffic limiting, degradation, isolation, timeout and retry, rollback mechanism, pressure measurement and pre-plan, cache, pooling, asynchronization, capacity expansion, queue and other aspects of a detailed introduction of the hundred-million-level traffic website architecture core technology, so that readers can quickly apply to the practice of the project.
Software development process
Understanding the software development process is not only about improving good programming habits among individual programmers, but also about enhancing teamwork. In fact, UML has nothing to do with the software development process, but it is a tool that software teams need to communicate and write software documents. But there aren’t many diagrams in UML that are actually useful, and reading this book is enough. There’s no need to read the UML User Guide or anything like that. To remind you, the Chinese translation of this book is very bad, I suggest conditionally read the Original English. This is the second edition of Kent Beck’s classic, both in English and Chinese. There’s nothing to tell. Must-read books. In fact, UP and Agile do not necessarily conflict. UP also emphasizes iteration and testing, but the emphasis on documentation and process driving is not taken by Agile. Anyway, UP is worth reading. After all, few enterprises in China really accept agile, so they still need to arm themselves with UP, even if they wear UP XP. Agile Modeling is the classic book by AM Scott Ambler. This book is very Progmatic. It tells how to be both Agile and UP, integrates agile and UP, and puts forward many progmatic suggestions and practices. You can read these three books together: Analyzing Extreme Programming to Embrace change, Unifying the Software Development Process and Agile Modeling to see the differences between XP and UP, and then see how AM unified XP and UP. You can also write a book by integrating these three theories into one and forming your own theoretical system.
5. Inside Out Tomcat
This book provides an in-depth look at each of the components in Tomcat 4 and Tomcat 5 and reveals the inner workings of them. Through this book, you will be able to develop your own Tomcat components or extend existing ones. After reading this book, you can get rid of the embarrassment of reciting interview questions.
6. Understanding Nginx in Depth (2nd Edition)
The author is very detailed, notes are written very neat, very helpful for Nginx developers. The advantage is subtlety, the disadvantage is too subtlety, code snippets everywhere, and a lack of abstraction.
Software project management
If suddenly promoted by the leadership as a project manager, and have no experience in project management, will certainly have no bottom in mind; If you feel that you are not good at project management and want to improve your project management ability, you will definitely not be able to take the PMP exam. Rapid Software Development is also a classic. With a book in hand, so to speak, you have a senior project management advisor to advise you and no longer have to worry about being incompetent. This book is not about management theory, in the actual project management, these theories are not solve problems, the book is a little similar to the idea of “software project”, lists the various problem facing a variety of software project, and how should the ideas to solve the problem, only need a little flexibility, find their line.
Sixth, other
1. The Hacker and the Painter
The book is a collection of essays by Paul Graham, founder of Y Combinator and the founding father of Silicon Valley startups. The name comes from the author’s view that hackers (not in a negative sense) are very similar to painters in that they create rather than perform a task. Feel free to add your favorite Java oriented books or computer basic must-see books in the comments section!
Seven,
There are no popular software framework learning books on Struts, Hibernate, Spring, or AJAX on this list of recommended reading books. This is because they tend to go out of fashion, and most of these books have a long enough life cycle to be worth buying and collecting.
Finally, I would like to recommend a complete set of Java self-study courses at B station: from Java zero foundation to project actual combat
This article turns to music bytes