What program can Java learn to be mastered?

I personally think that the word "proficient" is a bit too much. Most people don't say that they are proficient in something. They usually use proficiency and mastery to show that you have researched a certain technology. The following is my summary of some of the necessary knowledge for beginner and intermediate Java programmers:

Summary: The knowledge that beginner and intermediate Java programmers must master.

1. Familiar with basic knowledge of data structure, algorithm, operating system, computer network, etc.
2. Familiar with Java programming, familiar with Java high-concurrency development methods, and familiar with JVM virtual machine (Java memory area, virtual machine garbage algorithm, virtual garbage collector, JVM memory management) has certain research
3. Familiar with SOA distributed system development, with practical experience in optimizing system performance, improving system concurrency and system availability
4. Familiar with the use of Struts2, Spring, Hibernate, Mybatis and other frameworks, familiar with Spring Principle
5. Familiar with the use of Dubbo, Zookeeper, and common message queues (such as ActiveMq)
6. Familiar with the use of Linux systems, with actual development experience under Linux systems
7. Familiar with the use of MySQL database, writing of common SQL statements and Common optimization methods
8. Master Spring Boot + Spring Cloud + Docker
9. Understand HDFS, Storm, MapReduce, Hive, Hbase in Hadoop ecological related technologies

So how do we get started with the Java backend?

This question should be the concern of most of the friends who have initially stepped into the door of Java learning. If you are learning Java just to find a job, it's too simple. I think the various learning routes provided on the Internet are all clouds. The most direct way is to watch the videos of the Dark Horse or Shang Silicon Valley series. Below I have posted pictures of the dark horse monk Silicon Valley Java training class video series, which can be said to be very recommended. I also gave these videos to my own elementary school students. Why Amway to others? Because I studied Java in my sophomore year system, I looked at this. I personally think that the whole network may not find something better or more systematic that allows you to get started and have actual development experience.

Java learning route:

Java should learn those things

Many beginners or experienced developers will fall into this quagmire: "Don't know what to learn?".

I think the easiest way is to go to the recruitment website to see what skills the company requires. For example, the recruitment requirements for junior Java engineers must be different from the recruitment requirements for senior Java engineers, and the recruitment requirements for Alibaba's Java engineers must be the same as those of ordinary companies. Engineer recruitment requirements are different.

Essential Books for Java Programmers

I have read most of these books myself, which is very good. If you need the PDF resources of these books, you can add my Java novice learning exchange group: 798844620, get it, there are some learning manuals, interview questions, development tools, PDF document book tutorials that I have compiled during the time I am doing Java technology.

Core basic knowledge

* "Illustrated HTTP" (recommended, Douban score 8.1, 1.6K+ people evaluation): Talking about HTTP like a cartoon is very interesting, and will not feel boring, and probably also covers common knowledge points of HTTP. Due to space issues, the content may not be comprehensive. However, if you are not a small partner who specializes in network research and want to study HTTP-related knowledge, reading this book should be almost the same.

* "Dahua Data Structure" (recommended, Douban score 7.9, 1K+ people evaluation): an introductory type of book, relatively easy to read, suitable for small partners who do not have a foundation in data structure or have not learned data structure to use data structure.

* "Data Structure and Algorithm Analysis: C Language Description" (recommended, Douban score 8.9, 1.6K+ people evaluation): This book is a 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 works in the 20th century. The author Mark Allen Weiss has made outstanding achievements in data structure and algorithm analysis. His works on data structure and algorithm analysis are especially popular and have been widely praised. It has been used as teaching material by more than 500 universities in the world.

* "Algorithm diagram" (recommended, Douban score 8.4, 0.6K + people evaluation): an introductory book, which is relatively simple to read and easy to understand. It is suitable for those who have no algorithm foundation or have not learned the algorithm to get started. The examples are rich, with pictures and texts. The algorithm is explained in an easy-to-understand way. It is faster to read and the content is not boring!

* "Algorithm Fourth Edition" (recommended, Douban score 9.3, 0.4K+ people evaluation): Java language description, a classic reference book in the algorithm field, comprehensively introduces the necessary knowledge about algorithms and data structures, and is especially aimed at sorting and searching , Graph processing and string processing are discussed. The content of the book is very much, it can be said to be one of the essential books for Java programmers.

Java related

* "Effective java" (recommended, Douban score 9.0, 1.4K+ people evaluation): This book introduces 78 practical and valuable experience rules in Java programming. These rules of experience cover the problems most developers face every day s solution. Through a comprehensive description of the technology used by the Java platform design experts, it reveals what should and should not be done to produce clear, robust and efficient code. Each rule in this book appears in the form of a short, independent essay, and is further illustrated by example code. This book is comprehensive in content, clear in structure and detailed in explanation. Can be used as a reference book for technical personnel.

* "Head First Java. Second Edition" (recommended, Douban score 8.7, 1.0K+ people evaluation): It can be said to be my Java enlightenment book, especially suitable for novices to read. Of course, it is also suitable for us to review the old Java knowledge points.

* "Java Multithreaded Programming Core Technology": Java multithreading entry-level books are not bad, but to be honest, the quality is not very high, you can read it soon.

*"Java Network Programming Fourth Edition": You can systematically learn some concepts of network and the use of network programming in Java.

* "Java Core Technology Volume 1+Volume 2" (recommended): Two great books, it is recommended to read after a little Java foundation, the introduction is quite in-depth, very recommended. I usually use these two books to consolidate my knowledge, and they are two good books that are suitable for me.

*"Java Programming Thoughts (4th Edition)" (recommended, Douban score 9.1, 3.2K+ people evaluation): This book should be read frequently, beginners can get a quick overview, intermediate programmers can take a deep look at java, and veterans can also Use it to review the java system. The reason why this book is powerful is that it integrates design patterns invisibly. The reason why this book is difficult to read is precisely that his integration of design patterns is invisible.

* "The Art of Java Concurrent Programming" (recommended, Douban score 7.2, 0.2K+ people evaluation): This book is not very suitable as a Java concurrency introductory book, it needs to have a certain JVM foundation. I feel that some things are quite in-depth, and I recommend reading.

* "Practical Java High Concurrency Programming" (recommended): Douban scored 8.3, the quality of the book is not said, I recommend everyone to take a look.

*"Java Programmer's Practice": It's very complicated. I only read the first few chapters and I don't recommend reading it.

* "In-depth understanding of the Java Virtual Machine (2nd Edition) Zhou Zhiming" (recommended, Douban score 8.9, 1.0K + people evaluation): It is recommended to brush a few times, all the knowledge points in the book can pass the JAVA runtime area and JAVA memory model Two large modules with threads are listed completely.

* "Netty Actual Combat" (recommended, Douban score 7.8, 92 people evaluation): The content is very detailed, if you want to learn Netty, I recommend reading this book!

*"From Paxos to Zookeeper" (recommended, Douban score 7.8, 0.3K people evaluation): Briefly introduce several typical distributed consistency protocols, as well as the ideas for solving distributed consistency problems, including the Paxos and ZAB protocols . At the same time, this book provides an in-depth introduction to the industrial solution of distributed consistency problems-ZooKeeper, and focuses on showing readers the use of this distributed coordination framework, internal implementation, and operation and maintenance skills, aiming to help readers fully understand ZooKeeper, And better use and operate ZooKeeper.

JavaWeb related

* "In-Depth Analysis of Java Web Technology Insider": It feels okay, and there are many things involved.

* "Spring Combat (4th Edition)" (recommended, Douban score 8.3, 0.3K+ people evaluation): It is not recommended to read it as an introductory book. If you get started, you can find some Chinese books or videos to watch. This positioning is equivalent to a Xinhua dictionary about Spring. It only has some introductions and examples of basic concepts, covering all aspects of Spring, but they are not deep enough. As the author wrote on the last page: "Learning Spring, this is just the beginning".

* "The Return of the King of Java Web Integration Development" (obsolete): I opened this book when I first started learning it, and I basically read it completely. However, I do not recommend it to everyone. This book is relatively old, and many things in it are already out of date. However, one of the great advantages of this book is that the basic knowledge points are comprehensive.

* "Redis in Action": If you want to understand some conceptual knowledge of Redis, this book is really good.

*"Redis Design and Implementation" (recommended, Douban score 8.5, 0.5K+ people evaluation)

*"In-depth analysis of Tomcat" (recommended, Douban score 8.4, 0.2K+ people evaluation): This book deeply analyzes each component in Tomcat 4 and Tomcat 5, and reveals its internal working principles. By studying this book, you will be able to develop Tomcat components on your own or extend existing components. After reading this book, you can basically get rid of the embarrassment of reciting interview questions.

* "High-performance MySQL" (recommended, Douban score 9.3, 0.4K+ people evaluation): a classic in the mysql field, with a wide range of influence. It is not only suitable for database administrators (dba) to read, but also suitable for developers to learn from. Whether you are a database novice or an expert, I believe you can benefit from this book.

*In-depth understanding of Nginx (2nd edition): The author's speech is very detailed, and the comments are all neatly written, which is very helpful to Nginx developers. The advantage is meticulous, the disadvantage is too meticulous, there are code fragments everywhere, lacking some abstraction.

* "RabbitMQ Practical Guide": "RabbitMQ Practical Guide" cuts in from the concept of message middleware and the history of RabbitMQ, and mainly elaborates on the details of RabbitMQ installation, use, configuration, management, operation and maintenance, principles, and extensions. If you want to taste the use of RabbitMQ, this book is your best choice; if you want to go deep into the principles of RabbitMQ, this book is also your best choice; in short, if you want to play RabbitMQ, this book must be One of the most worth reading books

* "Spring Cloud Microservices in Action": Starting from the popular concept of microservice architecture, Spring Cloud's solutions and basic components for several core elements in the microservice architecture are introduced in detail. For the introduction of each component, "Spring Cloud Microservices in Action" mainly combines examples and source code to help readers better understand the usage and operating principles of these components. At the same time, in the process of introduction, some problems and solutions encountered by the author in practice are also included, which can be used as a reference for readers in practice.

* "The First Docker Book": Docker introductory book!

operating system

"Niaoge's Linux Private Kitchen" (recommended, Douban score 9.1, 0.3K+ people evaluation): This book is the latest version of the most well-known Linux introductory book "Niaoge's Linux Private Kitchen Basic Learning", comprehensive and detailed Introduced the Linux operating system. The book is divided into 5 parts: The first part focuses on the origin and function of Linux, how to plan and install the Linux host; the second part introduces the management of Linux file systems, files, directories and disks; the third part introduces the text mode interface shell and A good helper shell script for the management system, and also introduces the use of the text editor vi and vim; the fourth part introduces the management of Linux accounts that are very important for system security, as well as the management of the host system and programs, such as viewing processes, Task distribution and job management; The fifth part introduces the management items of the system administrator (root), such as understanding the system operation status, system services, analyzing login files, backing up the system, and core management.

Architecture related

*"Technical Architecture of Large Websites: Core Principles and Case Studies + Li Zhihui" (recommended): I have read this book, and you basically don’t need any foundation~ It’s very easy to read, but you can learn a lot, it is highly recommended Up.

*"The Core Technology of 100 Million Traffic Website Architecture" (recommended): This book summarizes and sorts out the principles of high availability and high concurrency of 100 million traffic websites, and introduces how to implement these principles in detail through examples. This book is divided into four parts: Overview, High Availability Principle, High Concurrency Principle, Case Practice. Detailed introduction to the core technologies of the architecture of billion-level traffic websites from the aspects of load balancing, current limiting, downgrading, isolation, timeout and retry, rollback mechanism, stress testing and plan, caching, pooling, asynchronization, capacity expansion, queue, etc. , So that readers can quickly apply it to practical projects after reading it.

* "Architecture decryption from distributed to microservices (Leaderus)": Very general books, I read them as after-school books.

Code optimization

* "Refactoring_Improve the Design of Existing Code" (recommended): Douban scores 9.1, the originator of refactoring books.

Finally, in the process of getting started learning Java, if you encounter any questions about learning methods, learning routes, learning efficiency, etc., you can apply to join my Java novice learning exchange group: 798844620. Anything you don’t understand can be in it at any time Q, there are also the latest Java basics and intensive video tutorials, and the group file contains some learning manuals, interview questions, development tools, PDF documents, books and tutorials that I compiled during the time I was doing Java technology. You can get them if you need them. download.

Guess you like

Origin blog.csdn.net/weixin_46898270/article/details/107998604