My road to programmers: self-learning Java

Preface

Time flies, and has been in the IT industry for more than two years. I started to learn Java by myself in November 2016 and started my self-study. Later, I taught myself big data, python, crawler, etc. during the internship period, and eventually grew into an ordinary programmer. Looking back, the past along the way can be vividly remembered, some are complacent after a beginner learns Java, and some are desperate when they encounter problems that cannot be solved. In the school night, I wrote hundreds of notes eloquently, just to remember one point of knowledge. In the early morning of the internship period, he walked on the dimly lit road at the company's stop sign, singing his favorite Nanshannan and celebrating his growth.

You ask me if I am tired of self-study, and I will tell you that I am not tired, because I have gained a lot from my self-study. You ask me if I teach myself to be lonely, I will tell you not to be lonely, thanks to so many people who have helped me on this road.

A long time ago, I wanted to use my own experience as the subject to record my self-study. In Zhihu and Qiuqiu group, I also encountered many children's shoes who are as eager and confused about computers as I did before. I hope that some people can be helped by simple text.

Whose youth is not lost

I am not a schoolmaster, I was just a gamer. He was not from a prestigious school, but a student who had just upgraded to a bachelor's degree. Although he was a teenager whose teachers had high hopes before university, he eventually became what he once hated the most in college life.

I have studied three years as a junior college and two years as an undergraduate. I failed in the college entrance examination and did not choose to repeat. The freshman year started because of illness and was hospitalized. When I came back, I couldn't keep up with the pace of learning and began to abandon and follow the trend. Game, wasted three years of youth.

Later, in order to avoid leaving school for internship, I applied for a college entrance examination. The first days were perfunctory, but one day you might feel a look down from Xueba's eyes or a word. From then on, I started to study mathematics, data structure, operating system, microcomputer principle, C language junior high school subjects, and finally passed the junior college upgrade.

During the vacation after the junior college upgrade, I tried to find a computer-related job, but returned to no avail and had to go home and wait for the start of school. At that time, I didn't know if I planted a seed of longing for the future.

Life will give you someone you want to protect, and it will also give you the motivation to work hard, perhaps from the attitude of others towards you, or for living.

Java self-study road

The environment really affects a person.

In September 2016, the two-year undergraduate life was officially started. I used to think that my roommate, like me, specializes in playing games and playing games. Later, I learned that roommates from various universities were exempted from the provincial competition. Because they often participate in provincial competitions, they also know each other. Since then, I have felt unprecedented pressure from around me.

I should have been hiding in a corner, feeling the darkness of the weak. But my roommate did not isolate me because of my technical skills. At that time, I was more interested in Java. They found Java videos for me and taught me to take notes. Since then, I started to study Java by myself in the dorm at night. For Java, I have zero foundation. The Java courses of the junior college are basically playing mobile phones, and the knowledge in the book is not enough for work. So self-study is a good choice.

Sometimes they will be hacked together, but most of the time they are rejected. They also joked that I am not gregarious, saying that I secretly learn not to play games with them. I will only reply in a unified way every day: If I had been exempted from the exam, I would have stopped learning. In fact, they have been learning, participating in competitions and verifying, and I have followed their footsteps.

In this way, during the first year of undergraduate, I insisted on watching Java videos, basically for more than two hours, and of course I would occasionally be lazy. At the same time, follow the video and type the code until you understand it. I've been taking notes, and I'll keep track of everything, as long as I can understand it.

Take a look at the Java notes you just made. Insert picture description here
Insert picture description here
Looking back at the footprints left by these self-study roads, they are messy and not very helpful, but the original intention and hard work will always inspire me.

Today, you ask me whether I stopped learning Java? No, I have been learning.

You ask me what self-study has brought me? A good study habit and a decent income job.

Self-study method

Find a systematic learning video + type code + take notes + persistence

The video tutorial I am watching is the Java300 episode. Before taking notes, I used OneNote, and now I use Youdao Cloud Notes. In the process of learning, you should develop the habit of asking why and thinking independently, and form a set of programming ideas that are completely yours.

Keep learning and keep acquiring new knowledge. Computer is an endless road to learn.

Java family

In the process of self-learning Java, I simply divided Java into the following categories.

Java basics

Object-oriented, data type, set (List/Map/Set), I/O, exception, reflection, serialization, design pattern, JDBC database, network programming, design pattern, etc.

JavaWeb

servlet, request, response, cookie, session, Ajax, database connection pool, file upload and download, etc.

At this moment, I have to mention the hand-training project that matches JavaWeb, which is familiar to everyone and is expected: Taotao Mall. The hands-on project of the mall category is a favorite for beginners, and it is an indispensable tool for all major Java beginners to burn their web knowledge.

Spring family bucket

Spring、SpringMVC、MyBatis、SpingBoot。

The first three are the legendary SSM framework. Spring is responsible for bean management, SpringMVC is responsible for processing requests, and Mybatis is responsible for database operations. But there are too many configuration files for the SSM framework. Springboot simplifies a lot of configuration. Since I have Springboot, I no longer use the SSM framework, just like the new and dislike the old.

Microservices, distributed

springcloud, dubbo. I haven't studied Springcloud and dubbo systematically. I just worked on a project and learned about the registry, gateway, fuse downgrade, swagger, etc.

Deep understanding of JVM

<In-depth understanding of the Java virtual machine> This book has been read many times, don't ask too many times, ask three times.

The first time (just started to learn Java): I feel very NB, just can't understand.

The second time (just started the internship): flowers are not flowers, fog is not fog, seem to understand but not understand!

The third time (working for a year): one day I understand! I will also sort out some of my own understanding and write it out.

Multithreading, NIO

I bought "The Art of Java Concurrent Programming", "Java High Concurrent Programming", and "Java Concurrent Programming Practice" to learn multithreading. I won't talk about these three books until I finish reading them. Everyone should understand.

NIO mainly learned Netty from the video.

Expand

Maven: dependency management; Git: project code version management, etc. According to your own needs, you can learn about big data, Redis and so on.

So set sail

In the first year of undergraduate, I dispelled the fog that had been shrouded in games for three years, and learned Java for a year steadily. I got a Java internship in the second year.

I started my internship after learning Java, JavaWeb and Spring. The internship period is one year. In the early stage of the internship, I learned SSM framework, Springboot, etc. during off-duty time, and learned multithreading and JVM through participating in the project (the internship will be rewritten).

Self-study for four years, working hard on the road of computer, many nights during the four years are only with study. Not any effort can produce immediate results, but there will always be a bright day to persist. Although it didn't follow the track to become a serious Java back-end, it became a big data developer step by step through Java.

Know the problem summary

1. Is it ok to read a book and get started with Java?

In my humble opinion, reading books is really not suitable for Java entry, but for advanced Java. Why do you say that? The book will not write every knowledge point in such detail due to space or layout problems, and the teacher in the video will teach you some unique skills that you can't learn in the book. And reading books can hardly arouse your desire to type code, you must type code to learn Java!

2. Edit Java code using Notepad

Children's shoes who just started learning Java like to use notepad to write code, use java and javac commands to run, which leads to various spelling errors or punctuation problems. It is recommended to use eclipse or IDEA to write code, so as to avoid the most basic mistakes. Thereby reducing the difficulty of learning.

When I was answering similar questions in Zhihu before, a child's shoe said: Just learn Java without writing code in a notepad, but using these editors with prompt functions, what should I do if I let you write code in the future. Duck rest assured, let alone the situation where you don’t encounter handwritten codes, even if you do, you can’t write public static void main(String[] args) codes after typing for so long? Java has more than 50 keywords, no need to remember at all. What really needs to be remembered is the code implementation ideas and logic.

3. To what extent can Java learn to work

Basically, you can work after learning the basics of Java, web, and SSM. But finding a job does not mean stopping learning. In the development of large projects, jvm and multithreading are essential knowledge.

4. Java has no future?

Any programming language will have a future that belongs to him, and the one who really has no future is the person himself. A person who is engaged in Java development, but only stays at the Java knowledge he has previously, does not study in-depth, and does not continuously improve himself with the development of technology, what about the future? Although Java's popularity will be surpassed by other languages, it is currently difficult to replace.

5. No progress in self-study for two months, give up?

Java is a relatively holistic language, and the knowledge of each part is closely connected. So learning Java is a puzzle process. When I first started my self-study, I didn't understand the concept of object-oriented. As I continued to learn later, one day it became clear. Now that you have made the decision to learn Java and passed the hardest part, why don't you stick to it? Learning Java is like practicing peerless martial arts. It is the sublimation of years of accumulation and accumulation.

6. Is it late to learn Java as a senior?

Official answer: It is never too late to learn Java. But to be honest, it's really not too late to learn Java in the senior year. As long as you work hard, find the right method, and persevere, you can study by yourself in the first half of the year and go for an internship in the second half.

7. Java is only suitable for science students or smart people?

In a word: Java is suitable for hardworking people.

8. Education is important

Not necessary, but very necessary. At present, most of the Java development requirements are undergraduate start, and many companies can only enter outsourcing.

9. About Java training

The economy allows + want to be fast + strong ability to withstand pressure can choose, the specific next article will be written.

Looking forward to meeting next time

This article records some experiences and insights of my self-study Java in university. Whether you think it is because of natural intelligence and luck, or a stupid bird who flies first and grows late, I hope to help you.

After graduating in 18 years, I stayed in a small city. Although I am not at the top of the BAT Internet, I still need to work hard to make myself go further. While learning big data and Python, I also insisted on learning Java. I am grateful for Java and keep exploring to grow myself. In the follow-up, I will write articles about training and internships based on my own actual experience, and talk about how to become a big data developer during the internship.

To learn Java programming with zero foundation, you can join my ten-year Java learning field . There are learning routes summarized by me, video tutorials, and some Java learning manuals, interview questions, development tools, PDF document secretary tutorials compiled during this period of Java technology. You can browse and get it yourself if you need it.

Guess you like

Origin blog.csdn.net/weixin_49794051/article/details/112648431