I have also written from zero to learn Java route, here posted, I hope to help you.

Why am I writing this article

1.1 Direct causes:

  • Today (November 4, 2018), a student sent me a message to find me on wechat

  • Classmate: Could you give him a web page to modify? He wants to refer to it for his graduation project.

  • 3Y: Sure. What’s your topic? Do you want to write it in Java?

  • Classmate: yes, I am learning Java now (PS: before chatting with the classmate, “I look at these code dizzy, I really not interested in the computer “…. Delicious!)

  • Then the student sent a small video to say that he is learning Java. I look at the: probably in practice & ^ | these operators.

! As a beginner, how to teach yourself Java and JavaEE development techniques? (https://p3-tt.byteimg.com/origin/pgc-image/062f8ff717304095b6d887695e936653?from=pc)

Finally, I told the student: “You go to the video, you are learning this is not helpful for your graduation project ah.” And sent him to Station B to find the video

Ps: I’m not saying that learn & ^ | these operators are useless, but if just want to use Java to write the graduation design, the knowledge should be without.

1.2 Indirect causes:

Personal Experience:

I learned Java on my own, and I learned it all by myself in college (probably with friends who had mines at home). Even when I was learning, I also went to search a lot of opinions, such as “How to quickly start Java” on Zhihu, “how to learn Java? “> < some advice for young People just learning Java > and so on, but looking back, I still took a lot of” detangles “.

For example, AT that time I spent a lot of energy to learn JSP, finally organized into a blog posted online. Comments from netizens:

  • “Not playing JSP for more than ten years.”
  • “Isn’t JSP an old technology?”
  • “There’s a sense of time travel watching this… The code more than 6W words, look at the heartache…” .
  • “All this technology from 10 years ago has been dug up?”
  • “I wrote several custom tags when I was just out of school. I felt so fulfilled at that time, but now, JSP for View seems a bit outdated. View is usually [template] or [completely static + Ajax + JSON].”
! As a beginner, how to teach yourself Java and JavaEE development techniques? (https://p3-tt.byteimg.com/origin/pgc-image/1d14b6ccead54e29a5ec17d333bde997?from=pc)

B: well… I published that article on February 07, 2018. I learned JSP at the beginning of 2017. In fact, JSP was already a backward technology in 2017, but I still spent a lot of time learning the various uses of JSP (custom tags, JSTL, EL expressions, etc.).

There is nothing wrong with what the Internet users say. For me, it took a lot of time in 2017 to learn how to use JSP(outdated technology), which I consider ****” detour “****.

Reply to some of my readers with this post:

Since writing blog, there are still some readers who learn Java based on zero basis, there are career changers, there are also young students. Generally they also asked me how to learn Java is better, learning Java route should be what.

Emmmm, I usually reply simply: tell them to take more notes, what they should spend their time studying and not studying next… Just finished..

So, after writing this article, when you ask me how to learn Java again, I will just send you a link (lazy person must).

1.3 purpose

If you are:

  • I want to use Java to write my graduation design in just a few months.
  • Want to use Java experience how to build a website from scratch.

Take a look at my half-baked advice below.

How to learn Java quickly

I speak from my experience with Java EE(Jakarta EE)/Java Web. (I’m thinking of you as a beginner)

Learning Java EE(Jakarta EE) generally consists of the following three modules:

  • Java
  • The database
  • Web front end
! As a beginner, how to teach yourself Java and JavaEE development techniques? (https://p6-tt.byteimg.com/origin/pgc-image/e57429f496e8458bb4c73139e93ad2a7?from=pc)

In my opinion, it is good to learn any technology before learning the details of the technology: what is the technology, why I want to learn the technology, what are the benefits of learning the technology.

  • It may seem like I’m being redundant, but if you can’t answer the above three questions while learning a particular technology. In a few days, you will have largely forgotten the technique you “learned”.
  • For example, how you can’t even explain “why multithreading” in layman’s terms. Even though you learned at the time that multithreading can be created in the XXX way, the XXX API for multithreading. Then two months later, people ask you, “What’s the use of Java multithreading?” . If you think about what else you can answer, I don’t think you can remember “multithreading can be created in XXX way, multithreaded XXX API”.
  • For example, if I don’t know the difference between IOC and new objects when learning Spring, why don’t I just go to new objects instead of going to the trouble of learning Spring?

Simply put: If you don’t know what it is you’re learning, don’t learn it.

If you are learning Java from zero and your comprehension is not overwhelming, I recommend video learning.

You might see something like this:

  • “Watching videos takes too long to learn”
  • “Look at the source code, the source code is the best explanation.”
  • “If you have a problem, just Google it. What baidu do you use?”
  • “The best information is the official website documentation”
  • .

But that’s for experienced people or people with high IQs.

If it is zero-based ordinary people, watching video learning/do not understand the source code/baidu/see Chinese blog to learn is not a disgrace.

Ps: If the video lecturer is not speaking very fast, it is recommended to watch it at 1.5 or 1.75 times speed.

2.1 About Video Resources

When I was learning Java, I also collected a lot of video resources, not all of which I watched. It’s just that when I found someone in the group, I copied it and sorted it out.

Follow me and reply “Video” to receive all resources for free!

! As a beginner, how to teach yourself Java and JavaEE development techniques? (https://p6-tt.byteimg.com/origin/pgc-image/37951cb901b34079b416d0184cca36bf?from=pc)

Other video resources:

  • B site :(bilibili.com) an amazing site. If you want to watch any videos, check station B first.
  • Moocs :(imooc.com) also has a lot of video resources.
  • Public number/mixed QQ group/wechat group: many people have a few t resources in their hands, if the relationship with group friends is good, generally will give you free hair
  • .

2.1 Learn Java basics

The path of learning Java with zero foundation is summarized as follows:

  • First go to the official website next JDK, according to the now commonly used version JDK1.8 is enough to learn

  • Download address: JDK1.8 download: www.oracle.com/technetwork…

  • Then go to download the popular Java editor IDEA(you can also use Eclipse, but IDEA does work now)..

  • Download address: IDEA download: www.jetbrains.com/idea/

  • Watch basic Java videos at 1.5/1.75 times speed (take Liu Yi as an example)

While learning the basics of Java, LET me briefly say what to avoid:

  • & ^ | operator, + + I and i++ like this around the syntax of the dead
  • The inner class
  • AWT and SWING programming
  • annotations

Points to understand in depth:

  • Process control

  • Object oriented concepts

  • Java syntax

  • The this pointer, overrides and overloads, final, static, and so on

  • Collections (including generics)

  • Common collection classes

  • IO stream

  • IO stream code preparation

  • (Understand these points and be able to code when prompted, but don’t get bogged down in details.)

Just to recap:

  • abnormal
  • multithreading
  • Network programming
  • Reflection mechanism
  • (You need to know what it’s for, why you’re learning it, and understand the code!)

For the in-depth understanding mentioned above, I personally strongly recommend writing notes (blogs) during study. If you want to write notes, it is better to write them directly in Markdown syntax rather than word/ simple notepad.

Markdown syntax is easy to learn and can be learned in just a few minutes. Almost all IT blogs support Markdown:

  • Markdown study: www.jianshu.com/p/q81RER

If you like to draw mind maps, I recommend processOn. Don’t bother downloading Xmind:

  • ProcessOn to draw a mind map: www.processon.com/i/5815483ce…

If you don’t need IDEA to open a.java or.xml file, you can use notepad++ :

  • NotePad++ notepad: notepad-plus-plus.org/

Learn to surf the Internet scientifically and use Chrome browser, such as downloading adblocking plug-ins, English translation plug-ins

  • For Chrome: www.google.com/chrome/
  • Intercept advertising plug-in: chrome.google.com/webstore/se…
  • English translation plug-in: chrome.google.com/webstore/se…

Although it is a fast learning Java, but learn the above estimate of a month (:..

A month of discovery is console oriented programming (console), input and output some data to play.

! As a beginner, how to teach yourself Java and JavaEE development techniques? (https://p3-tt.byteimg.com/origin/pgc-image/3568036f94384978a346efafba387bb9?from=pc)

During the learning IO may be able to copy the file, modify the file name a bit interesting. But better days are coming!

2.2 Learning Java Web basics

First we can learn the knowledge of the Web front end (this part will be brief)

  • HTML/CSS/JavaScript/jQuery

  • CSS framework (all have Chinese manual, soon start to use, choose your favorite good) :

  • BootStrap:www.bootcss.com/

  • Materialize: www.materializecss.cn/

So far, after learning the above can build “can see” static web page. Have read a paragraph to sum up the above technology:

  • “HTML is a noun, CSS is an adjective, JavaScript is a verb”

The next route to learning JavaWeb is as follows:

  • Tomcat(briefly)
  • XML/ Annotations (briefly)
  • Servlets (key understanding)
  • HTTP protocol (key understanding)
  • Filter (key understanding)
  • Listener监听器(简单过一下)
  • JSP(briefly)
  • AJAX, JSON(briefly)

Based on the above learning, at least we can use the Request object to receive the data sent from the front end, use the Response object to return the data from the Java back end to the front end, and use the Filter interceptor to deal with the Chinese garble problem (the default Tomcat code is ISO-88591). In general, it is already possible to achieve the front and back end interaction!

2.3 Learning the Database

Database here refers to the relational database, generally we start with MySQL is enough.

During the study period, a lot of time was spent in the configuration of the environment. For example, it took me a lot of time to install JDK, MySQL and Oracle. I later wrote it as a blog as well, and when I need to reinstall it, I just need to check the blog.

  • Such as MySQL installation tutorial: segmentfault.com/a/119000001…

Learn the basic use of SQL:

  • Create table create table
  • Add and delete, insert, delete, update, select)
  • Learn about stored procedures, triggers, and so on
  • For indexes and locks, learn later (this part is important, but can be skipped for a quick start)

2.4 Learning Java Database Connection (JDBC)

At this point, we have learned the basics of the Java Web, the database, and the Web front end, but Java and the database are independent of each other. If we want to programmatically manipulate data in a database, we need to learn about Java Connecting to a database (JDBC).

JDBC is not a difficult technique, it is template code, come and go in a few steps:

  • Import the MySQL or Oracle driver package
  • Load the database driver
  • Get the connection to the database
  • Gets an object that can execute SQL statements
  • Execute SQL statement
  • Close the connection

Since this code is likely to be repeated, we can take a look at the DbUtils component: it helps us write less JDBC template code.

2.6 Study of project management and framework

After learning above, it is now possible to write a Web project locally.

  • The page frame is constructed using the BootStrap/Materialize framework
  • Request processing is handled by servlets, the data returned can be AJAX or using JSPS, and the DAO layer can use DbUtils.
  • The data is stored in MySQL

To make writing code more enjoyable, I recommend learning Maven for half a day and SpringBoot for a few days.

  • Jumping directly from Servlet to SpringBoot may be a little hard to understand, but after a few days I’m sure it will work…

The 2.7 Linux learning

Finally, the projects we write locally that we want to make visible to others are usually deployed on Linux. (Learn this part until you have written the project and want to deploy the project.)

I do not recommend using a virtual machine to do Linux, directly buy a much more convenient

If you want to buy Ali cloud service, you might as well buy it through this link (you can get coupons).

  • Promotion.aliyun.com/ntms/yunpar…

Third, summary

To summarize what I think is the way to learn Java:

  • Java basis — — — — > > process control object oriented (including Java syntax) – > Java collection — — — — > > Java IO flow anomalies — — > multithreaded > network programming — > reflection
  • JavaWeb basis – > HTML/CSS/JavaScript/jQuery – > Tomcat – > XML/annotations – > Servlet — — — — > > HTTP Filter filters and listeners – > JSP — — > AJAX/JSON database (MySQL) – > – > JDBC and DbUtils
  • Project Management and Framework –>Maven–>SpringBoot
  • Linux Basic Commands

Our final project looked like this:

  • Manage our project with Maven
  • The front end uses BootStrap to build the page framework
  • SpringBoot sets up the Java backend environment, SpringMVC handles the front-end requests (SpringBoot is integrated)
  • The DAO layer uses the DbUtils component to accomplish this, with MySQL as the database

Of course, my Java path is not necessarily the right one; I’m just giving you a path here.

Again, this is a “fast” way to learn Java, and it’s not enough if you want to get a good job!

! As a beginner, how to teach yourself Java and JavaEE development techniques? (https://p1-tt.byteimg.com/origin/pgc-image/e3512e17a4394b35ab862cd0482c2036?from=pc)

Learning path

See below for claim!!

Novice Java projects and Java mind maps created by college teachers are all taken away!

1. Like + comment

2, pay attention to xiaobian. And private message reply keyword [learning] (must be private message oh ~ click my avatar can see the private message button)

“Java learning, interview; Documents, video resources for free”