3 months to master the basic knowledge of Java, share the learning process of the landlord.

preface

I decided to learn Java on April 25th and finished the second stage of Learning Java on June 26th last week. I have learned Java for 64 days in total, including the 30 days of learning basic knowledge before, and the total number of days is about 90, which is exactly 3 months. The following is a brief record of my Java learning track, how to master the basic knowledge of the common Java technology stack from Java.

Warm reminder: all articles in this article can enter my public number “Lou Zai Jin Jie Road” to obtain.

JAVA Basics

I was in March this year, the basic knowledge of JAVA overall preliminary study, mainly combined with the book “JAVA crazy handout”, including the basic syntax of JAVA, collection, generics, concurrent programming and other basic knowledge.

Because of the need of the project, I also learned briefly Spring, Spring Boost, Maven and Mybatis, just a very general learning of that, such as @service annotation is used for what, Mybatis how to operate DB, etc. (in fact, mainly because I can’t read the project code, for the purpose of cleaning up.)

Study time: March 1st – March 30th

Design patterns

This doesn’t really have much to do with Java, but I’ll include it anyway because I want to fill in the hole as soon as possible because of all the design patterns that inevitably come into play during Java development.

Study time: April 25th – May 8th

Learning Content:

  • Design Patterns Series 1 – Template Patterns & Strategy Patterns
  • Design Patterns Series 2 – Factory Patterns
  • Design Mode Series 3-Builder Mode
  • Design Patterns series 4 – Combination Patterns
  • Design Patterns Series 5 – Singleton Patterns
  • Design Mode Series 6 – Agent Mode
  • Design Mode Series 7 – Decorator Mode
  • Design Mode Series 8 – Facade Mode

Learning materials: rookie tutorial

Learning experience:

  • It’s not recommended that you get a book and start from the first design pattern to the last design pattern, but if you do, I guarantee you will always remember the last design pattern.
  • Design mode needs to be combined with the actual project, in order to understand more profound;
  • If you don’t have an actual project, review previous projects and learn from specific design patterns.
  • It is not recommended to learn design patterns at one time. I first combined the current and previous projects and summarized the design patterns I encountered in the first six articles. Then I learned the design patterns I encountered in the last two projects.

Summary: It is suggested that you should first summarize and learn the design patterns you used in previous projects, and then learn the design patterns when you encounter relevant design patterns in later projects, so that you can apply what you have learned. Don’t take a book, or a tutorial on the Internet, and chew on design patterns!!

——- real system learning, from the beginning of the following!! ——-

——- real system learning, from the beginning of the following!! ——-

——- real system learning, from the beginning of the following!! ——-

JAVA concurrent programming

This is the very core knowledge of JAVA grammar, learning this premise, is that you first master the basic syntax of JAVA, we suggest that you can spend a week to quickly read a book explaining the basic syntax of JAVA.

Study time: May 9 – May 24

Learning Content:

  • Java Concurrent Programming Series 1 – Basics
  • Java Concurrent Programming Series 2 – Volatile
  • Java Concurrent Programming series 3-Synchronized
  • Java Concurrent Programming Series 4-Final
  • Java Concurrent Programming Series 5 – Sharing Objects
  • Java Concurrent Programming Series 6 – Synchronous Utility Classes
  • Java Concurrent Programming Series 7 – Thread Pool Basics
  • Java Concurrent Programming Series 8 – Multithreading Practice
  • Java Concurrent Programming Series 9 – Lock

Learning Materials:

  • Volatile:blog.csdn.net/u012723673/…
  • Concurrent programming data: redspider. Gitbook. IO/concurrent /…
  • The memory model (so-so) : blog.csdn.net/javazejian/…
  • Chen Xiaoming: ifeve.com/java-memory…
  • Spring is very good article: www.cnblogs.com/szlbm/p/551…
  • The fence: blog.csdn.net/qq_38293564…
  • Thread synchronization tool: blog.csdn.net/yjc0403/art…
  • Thread pool: blog.csdn.net/mu_wind/art…

Learning experience:

  • The learning cycle will be quite long. I learned it in two stages: the memory model part and the concurrent programming part.
  • Best combined with the book “Java Concurrent programming Actual Combat”, can let you have an overall understanding of concurrent programming, in fact, this book is just a supplement, for you need to master concurrent programming related knowledge, which may only cover 30% to 40% of the knowledge;
  • Make sure you write the Demo, don’t just read it, or you’ll forget it;
  • It is better to be able to find similar code to learn from your project after each section. (I ended up reading a concurrent programming framework written by a colleague of mine, which I should be able to write on my own.)

Spring

This need not I say more, I just began to learn Java, feel the most headache is this Spring, there are a bunch of annotations, look at my head are big, no wonder Java learning cost is relatively high.

Study time: May 25th – June 5th

Learning Content:

  • Spring Foundation series 1: Assemble beans based on annotations
  • Full knowledge of Sping IOC basics
  • Spring Basics series 3: Common Spring annotations
  • Transactional annotated @Transactional
  • Spring AOP Basics (PART 1)
  • Spring AOP Basics (part 2)
  • Common annotations for Lombok

Learning Materials:

  • Novice tutorial
  • Principle: article zhuanlan.zhihu.com/p/29344811
  • The principle of very detailed article: www.jianshu.com/p/b60c30fdc…
  • The Configuration comments: www.cnblogs.com/cxuanBlog/p…
  • Transactional:blog.csdn.net/jiangyu1013…
  • Blog.csdn.net/mingyundezu…
  • www.cnblogs.com/clwydjgs/p/…
  • Spring IOC: juejin.cn/post/684490…

Learning experience:

  • Learn annotations first. Remove all common annotations encountered in the project, including Sprin G annotations and Lombok annotations.
  • I mainly have IOC and AOP knowledge, so this can be studied in two parts;
  • Must write their own Demo run, otherwise it is useless learning!!
  • During the learning process, such as learning a particular annotation, or AOP, after looking at the basics, look for areas to use in your project and see how to use them.

MyBatis

If you use MySQL, or any other DB, you can’t get away with this. Alas, the Java framework is TM.

Study time: June 6 – June 12

Learning Content:

  • 【MyBatis series 1】 Basic Knowledge (I)
  • 【MyBatis series 1】 Basic Knowledge (2)
  • 【MyBatis series 2】MyBatis with Spring integration
  • 【MyBatis series 3】MyBatis SQL execution process
  • MyBatis integrated with Spring Boost

Learning materials: the main novice tutorial

Learning experience:

  • This light see rookie tutorial, in fact can only learn some fur, it is best to combine rookie tutorial, and then go to the network to improve your knowledge, such as digging gold, zhihu, etc.;
  • The eight-part part still needs to be mastered, which can let you know more about MyBatis.
  • Do not recommend that you come up to see the source code, you can be a little preliminary about the blog written by others;
  • Be sure to write Demo! Be sure to write Demo! Be sure to write Demo! Important things say three times! Integrate MyBatis with Spring and subsequent Spring Boost yourself.
  • The best way to learn, of course, or the project, I learned the basic part, began to party the project code, as long as it is part of MyBatis, I do not let go. (There is a place where MyBatis is used in The middle platform of Xiaomi, which involves sophisticated operation of various interfaces. I haven’t understood it after watching it for a whole day. After improving my skills, I will go back to see it again.)

Spring Boost

TM Java framework again, who will tell me that the technology stack impact is not big, I want to fight with him.

Study time: June 13 – June 20

Learning Content:

  • 【Spring Boot series 1】 Introduction to Spring Boot
  • 【Spring Boot series 1】 Introduction to Spring Boot
  • Struggling with configuration file annotations? I’ll take you all in!
  • 【Spring Boot series 3】 Automatic configuration details
  • MyBatis integrated with Spring Boost

Learning Materials:

  • Tutorial: c.biancheng.net/spring_boot…
  • juejin.cn/post/684490…
  • Very good article: juejin.cn/post/684490…
  • Interview question: juejin.cn/post/684490…
  • Principle analysis: juejin.cn/post/685457…
  • A good principle analysis: blog.csdn.net/mnicsm/arti…
  • Very full process analytic: blog.csdn.net/hfmbook/art…

Learning experience:

  • First, master the eight-part essay knowledge of the framework, mainly the loading process of the framework;
  • The field section focuses on the configuration section of Spring Boost, followed by common notes.
  • You still need to write the Demo by yourself. MyBatis is integrated with Spring Boost, which has been arranged for you.
  • This is a more abstract version of the framework, it is recommended to master the above knowledge first, later encountered in the project related knowledge, and then in-depth study.

Maven

This part is not much, mainly project management part, one week is definitely enough.

Study time: June 20th to June 26th

  • Novice tutorial
  • Tutorial: www.runoob.com/maven/maven…
  • juejin.cn/post/684490…
  • Getting started: juejin.cn/post/684490…
  • Hydrology a: juejin.cn/post/684490…

Learning experience:

  • Master the basic knowledge part first, rookie tutorial is enough;
  • Find a few Java projects, see how pom.xml is written, and then study it yourself.
  • Grow with the project.

The follow-up study

  • Microservices framework: Dubbo + SpringCloud
  • WEB programming: SpringMVC + Servlert/JSP + Tomcat
  • Advanced learning: “JAVA Programming Ideas” + “In-depth Understanding of JAVA Virtual Machine”

Learned these, should be to enter the intermediate level of Java, the second half of the estimated volume need to continue in Java, but should be in accordance with the current intensity of this learning, more time will be into the company’s projects, although the back line, but I still hope to have a long-term development in the company, these actually are not enough alone, I have to move on to management.

Study Schedule

This is very important, a lot of people to own a lot of plans, is hard to real-time, summary sentence is “code are written not over, every day to change bug, which have time to study”, you can refer to the hair a hydrology, do a summary “for their learning, if you can get up at 6 o ‘clock every day, learning about two hours each day, no matter which door technology, I’m sure you can do the same.

Afterword.

Distance from the last hydrology “send a hydrology, to make a summary of their own learning”, just a month time, this is the second hydrology, and so I need to learn the knowledge of the follow-up almost, is my third hydrology.

I am not motivated enough to study this week. On the one hand, I have some private affairs, and on the other hand, I am thinking about some problems. I hope I can adjust my attitude and start a new round of study this weekend.

Welcome everyone to like a lot, more articles, please pay attention to the wechat public number “Lou Zai advanced road”, point attention, do not get lost ~~