10 classic books that Java programming must read, collect them quickly!

foreword

In this issue, I will talk about Java learning for everyone. Some friends often ask me: "How to learn Java?" I'm so confused, please help me!

In fact, this topic is a bit big. Everyone has different levels at this stage. For example, the understanding of the Java virtual machine:

Junior programmers may be confused: "Why do I learn this?" Isn't this all packaged?
The mid-level programmer was secretly delighted: “Isn’t this what the stereotyped essays in java interviews often examine? I'm clear."
The senior programmer smiled contemptuously: "I have implemented a virtual machine before."

This shows that different people have different perceptions of the same technology.

insert image description here

【----All the following learning materials are free at the end of the article! ----】

The same is true for Java learning. Some people like to watch videos and find them interesting, and follow the teacher to code step by step; but some people find it boring to watch videos. The teacher’s lectures are too tedious and procrastinated, so they should read books by themselves. more exciting.

I’m here to talk about my own views. For entry-level programmers, watching videos and following the teacher’s thinking step by step can really cultivate interest in programming. I remember watching a lot of videos of Mr. Ma Bingbing on the Internet when I first learned Java a few years ago. At that time, I felt that this teacher was not only good at technology, but also super humorous. My interest in programming was suddenly raised, and I am still in the IT industry until today, haha !

But if you watch too many videos, you will find that you can understand what you listen to, but you can’t write anything by turning off the video. The biggest reason for this is actually because I didn't think independently.

Therefore, I suggest that after you get started, you should not rely too much on videos, and learn to think independently. Reading books is a good way.

Regarding whether or not to read books in the IT industry, I have stepped on the pit before. Some "big bosses" told me: The IT industry is changing with each passing day. It usually takes several years to publish a book. When the book comes out, Technology is outdated. I thought at the time: wc, it makes sense. This also laid the root of my dislike for learning in the future.

In fact, looking back now, this statement is not entirely correct. It is true for some junk books, but for those classics, the passage of time cannot cover up its classics. For example, the book "In-depth Understanding of the Java Virtual Machine" was first published in 2011. Has someone said it is outdated in almost 10 years? Do fresh graduates have to memorize before looking for a job? You still have to read classics to read books.

Well, let's start our topic today. Today I want to recommend some classic books to programmers learning Java. These books cover beginners, intermediate and advanced programmers. There are always some suitable for you. In addition, it should be noted that the recommended book list this time only covers the Java SE part, such as Java Web, server-side development, Spring framework family bucket, distributed microservices, middleware, and databases. Slowly recommended.

Language learning

There are many things to learn in the Java language, such as:

- Process Oriented VS Object Oriented

- Object-oriented basic features: encapsulation, inheritance, polymorphism

- Access control characters: private, default, protected, public

- Data type: basic type, reference type

- Control flow: for, while, switch, etc.

- Serialization

- exception handling

- Generics

"Java Core Technology Volume I: Basic Knowledge"

This book is recommended as the first book on the Java journey. It covers a very comprehensive content. Compared with those books such as learning Java in 30 days, this book is more pragmatic.

With the technical speeches, some technologies in the book have been abandoned by the times, and this part of the chapters is actually unnecessary to read.

Like Chapters 10, 11, and 12: Graphical Programming, mainly explaining Swing GUI, writing desktop applications in Java is outdated. Some people will say that Android is another set of things, not Swing.

The thirteenth chapter mainly talks about the deployment of Java programs. The applet technology has been eliminated, and it is a waste of time to learn it again.

We should spend our limited time and energy on more valuable things.

"Java Core Technology Volume II: Advanced Features"

Volume II is an enhanced version of Volume I. It explains in detail some advanced features of Java such as java8, network, database, security, etc.

You can simply take a look at the chapter about the network, because most of the enterprise network programming development will use the netty framework.

You can also take a brief look at the chapter on database programming. JDBC is too troublesome to operate the database. There are a lot of boilerplate codes in the program, which is horribly cumbersome. In order to solve this problem, a series of excellent ORM frameworks such as: Hibernate , MyBatis, etc.

Finally, like Volume I, the Swing chapter can also be skipped directly. The specific reasons have already been mentioned above, so I won’t be too long-winded.

"Java Actual Combat (Java8 Actual Combat)"

On September 14, 2021, Oracle officially released Java17. Some friends can’t help but ask, is it too long to learn Java8 now that 17 is out? No, no, no, according to Xiaoshuai’s understanding, many companies are still stuck in Java8.

Why is everyone a nail household?

This aspect shows that Java8 is really awesome. Java8 is a version that has changed a lot after Java5, adding many useful features such as Stream flow;

On the other hand, switching a Java version is time-consuming and laborious, and the benefits are not obvious. The company is definitely unwilling to move.

Ok, let’s talk about this book again. "Java in Action" is a new version of "Java8 in Action". It not only has the new features of Java8, but also Java9, Java10, etc. If your company only uses Java8 at present, then you can read it directly. "Java8 Actual Combat" is also a must.

"Java8 in Action" will not explain some basic Java language. The focus of this book is to explain the new features and syntactic sugar of Java8, so that your Java code can be written more coolly and elegantly.

"Java programming thinking (thinking in java)"

This is a very, very classic book. If you have to ask someone who is engaged in Java, if you haven’t heard of this book, it’s useless, haha.

In fact, to be honest, I tried to read this book several times, but I didn’t finish it in the end. One reason is that it is too thick. In addition, I think it’s too long-winded. Maybe it’s because the translation is not very good, so I’m bringing it now It is a good height for the table.

Therefore, it is recommended that newcomers do not read this book at the beginning, otherwise you will doubt life and give up before you get started. Just use it as a programming dictionary, and pick it up when you encounter problems later and then look it up.

advanced learning

"In-depth understanding of Java virtual machine"

I finally arrived at this book, first allow me to say awesome three times: awesome, awesome, awesome, if you think so, please hit awesome on the screen.

The book "In-depth Understanding of the Java Virtual Machine" was actually published in 2011. After publication, it was actually tepid, so why did it become popular later?

In addition to the good writing, the most important reason is that the domestic IT industry is too cumbersome, too cumbersome, too cumbersome!

To what extent? I take the interview question as an example:

In the Java programmer interviews a few years ago, the interviewer liked to ask: "Which is thread-safe, HashMap or HashTable?" It is enough for the candidate to answer and say a few reasons.

It didn’t work later, brothers, everyone is familiar with it, the interviewer can only upgrade: “Have you seen the source code of HashMap? Is it thread-safe?”

Candidate: "I have read the source code, the Synchronized keyword is not added to the HashMap method, and the HashMap 1.8 version also adds a red-black tree"

In a few years, programmers have evolved again, and the interviewer can only increase the code: "Have you seen the source code of HashMap? Please write down the implementation of red-black tree on paper."

The candidate was stunned, and ended the interview with a mouthful of old blood...

The same is true for the Java virtual machine. A few years ago, a small group of people studied this. Later, because the industry was too busy, in order to better distinguish the interviewers, they slowly began to ask about virtual machine-related knowledge.

In the past, you had to say that you knew a little about the java virtual machine, which might be a bonus item, but today this can only be regarded as a basic ability.

Well, let’s talk about this book, written by Zhou Zhiming, it is very, very classic, and it has been updated to the third edition. Master Zhou Zhiming wrote the book with very rigorous words and a lot of technical terms. Friends who read it for the first time may be a little confused, but it doesn’t matter. Read it several times. I have read it many times myself. Every time I read it, I have new gains. , Wall Crack recommends that you read it.

"The Art of Java Concurrent Programming"

When writing code, have you ever encountered such a scene: I tested it locally, but why did something go wrong online?

Exclude the problem of inconsistency between the local environment and the production environment. In fact, the biggest possibility is the concurrency problem.

You are testing locally alone, but in the production environment, a large number of users click and a large number of requests flood in. Will your program have problems during concurrent access?

Concurrency problems are generally difficult to locate, and it is especially critical to write concurrent programming well.

Let's go back to the book "The Art of Java Concurrent Programming", which is a book dedicated to explaining Java concurrency. It involves various locks and common safe collection classes. It basically refers to JUC (java.util.concurrent package for short). ) has covered all the content once, and you must gain something after reading it. highly recommended!

JUC is a set of class libraries developed by the Java master Doug Lea. The master developed this code to help you simplify concurrent programming. Now a large number of people in China are studying his code. Should he be happy or sad?

Write "good code"

Learning Java requires practice in the end. As a coder, our result is a line of code.

I believe that everyone has taken over the code written by the predecessors. When I saw those codes, I couldn’t help but say: Which Shabi wrote this shit, whats up!

These codes are called "shit mountains". I believe that they were originally good, but they rotted step by step as requirements changed and added.

If you don't want to leave a "shit mountain" for future generations, then you have to learn to write "good code" from now on, so as not to be hit by your colleagues, haha~

Here are a few recommended books that will help you write "good code".

"Alibaba Java Development Manual"

This book is produced by the big factory Alibaba, and its vision is to code for efficiency and code for quality. The author condenses his years of development experience and architectural history into three-dimensional programming specifications and best practices.

The main content of the book is to standardize Java coding. Coding habits are very important and should be cultivated from the very beginning.

If you are in a small factory and you don’t have any programming standards in your group, then I suggest you recommend this book to your technical manager. Maybe you can get a chance to get promoted and raise your salary. Done, remember to go back and type it out on the public screen.

Maintaining a consistent coding style within the group will help everyone quickly understand the code and reduce tearing~

"Effective Java Chinese Edition"

There are two types of programmers circulating on the Internet, one has read "Effective Java" and the other has not read it. It can be seen that everyone has a very high evaluation of this book.

The Effective series is very classic and covers many languages: Effective Java, Effective C, Effective C#, etc. Effective Java is just a small branch.

The knowledge density of this book is very high. The author has summarized many best practices based on his years of programming experience, each of which is the pitfalls stepped on and tears shed by the predecessors.

It is recommended to read it after you have written a certain amount of code, otherwise you will not feel it.

"Clean Code"

The way to clean code, the English name of this book is clean code.

There are two reasons to read this book:

First, you are a programmer;

Second, you want to become a better programmer.

If you have a pursuit of code, this book can teach you to write clean code.

"Refactoring to improve the design of existing code"

Everyone should be familiar with the word refactoring, but let's calm down and think about it, why do we want to refactor? Which ones need to be refactored? How to refactor?

These are the ultimate three questions of life!

The refactoring of a project must be because the previous code was written too badly, and the previous architecture did not satisfy the current stage of development. Everyone is saying that the code is bad and the structure is bad? But it seems that I can't tell exactly where it is bad. You might as well read this "Refactoring to Improve the Design of Existing Code".

This book defines 24 bad code smells, and you can combine your own projects to find out the cause and prescribe the right medicine.

One more thing to add: refactoring is not a one-shot deal, refactoring runs through the entire life cycle of the project!

conclusion

After reading these books, I can't guarantee that you can become a Java master, but at least you can say with confidence: I know Java, isn't that enough?

Finally, I would like to thank everyone who has read my article carefully. Reciprocity is always necessary. Although it is not a very valuable thing, you can take it away if you need it:

1. Introduction to Python

The following content is the basic knowledge necessary for all application directions of Python. If you want to do crawlers, data analysis or artificial intelligence, you must learn them first. Anything tall is built on primitive foundations. With a solid foundation, the road ahead will be more stable.All materials are free at the end of the article!!!

Include:

Computer Basics

insert image description here

python basics

insert image description here

Python introductory video 600 episodes:

Watching the zero-based learning video is the fastest and most effective way to learn. Following the teacher's ideas in the video, it is still very easy to get started from the basics to the in-depth.

2. Python crawler

As a popular direction, reptiles are a good choice whether it is a part-time job or as an auxiliary skill to improve work efficiency.

Relevant content can be collected through crawler technology, analyzed and deleted to get the information we really need.

This information collection, analysis and integration work can be applied in a wide range of fields. Whether it is life services, travel, financial investment, product market demand of various manufacturing industries, etc., crawler technology can be used to obtain more accurate and effective information. use.

insert image description here

Python crawler video material

insert image description here

3. Data analysis

According to the report "Digital Transformation of China's Economy: Talents and Employment" released by the School of Economics and Management of Tsinghua University, the gap in data analysis talents is expected to reach 2.3 million in 2025.

With such a big talent gap, data analysis is like a vast blue ocean! A starting salary of 10K is really commonplace.

insert image description here

4. Database and ETL data warehouse

Enterprises need to regularly transfer cold data from the business database and store it in a warehouse dedicated to storing historical data. Each department can provide unified data services based on its own business characteristics. This warehouse is a data warehouse.

The traditional data warehouse integration processing architecture is ETL, using the capabilities of the ETL platform, E = extract data from the source database, L = clean the data (data that does not conform to the rules), transform (different dimension and different granularity of the table according to business needs) calculation of different business rules), T = load the processed tables to the data warehouse incrementally, in full, and at different times.

insert image description here

5. Machine Learning

Machine learning is to learn part of the computer data, and then predict and judge other data.

At its core, machine learning is "using algorithms to parse data, learn from it, and then make decisions or predictions about new data." That is to say, a computer uses the obtained data to obtain a certain model, and then uses this model to make predictions. This process is somewhat similar to the human learning process. For example, people can predict new problems after obtaining certain experience.

insert image description here

Machine Learning Materials:

insert image description here

6. Advanced Python

From basic grammatical content, to a lot of in-depth advanced knowledge points, to understand programming language design, after learning here, you basically understand all the knowledge points from python entry to advanced.

insert image description here

At this point, you can basically meet the employment requirements of the company. If you still don’t know where to find interview materials and resume templates, I have also compiled a copy for you. It can really be said to be a systematic learning route for nanny and .

insert image description here
But learning programming is not achieved overnight, but requires long-term persistence and training. In organizing this learning route, I hope to make progress together with everyone, and I can review some technical points myself. Whether you are a novice in programming or an experienced programmer who needs to be advanced, I believe that everyone can gain something from it.

It can be achieved overnight, but requires long-term persistence and training. In organizing this learning route, I hope to make progress together with everyone, and I can review some technical points myself. Whether you are a novice in programming or an experienced programmer who needs to be advanced, I believe that everyone can gain something from it.

Data collection

This full version of the full set of Python learning materials has been uploaded to the official CSDN. If you need it, you can click the CSDN official certification WeChat card below to get it for free ↓↓↓ [Guaranteed 100% free]

insert image description here

Good article recommendation

Understand the prospect of python: https://blog.csdn.net/SpringJavaMyBatis/article/details/127194835

Learn about python's part-time sideline: https://blog.csdn.net/SpringJavaMyBatis/article/details/127196603

Guess you like

Origin blog.csdn.net/weixin_49895216/article/details/132334602