Author: Dark out

Link: Beginner Java Programmer’s path

Source: Zhihu

Beginner Java programmer learning path

Zhihu always suggests me to change the content, saying THAT I cheat fans.

Forget it. Just send the column.

I’ve talked about this a lot. Say it again. Say it again.

The first. Learning Java syntax. 3 days

You need to know:

1. String, Integer, Long, Array, List, Map are sufficient.

2. It is enough to separate the Interface from the Impl, never use inheritance.

3.Model, also a Bean, remember that the only methods in Model are Get and Set. Anemia model.

4.try-catch,Throwable, Error 5. Function, parameter, return value

You must not read these now:

NIO Thread Extend Abstract GUI GC

2. Various JDK source code, the implementation of various algorithms

In the second. Understanding and learning of object oriented concepts for 3 days

You need to know:

Properties and methods


3.static final

4.ArrayList, Set, Map,Array value, length, traversal. StringBuffer

5. Null object, null pointer



8. Generics

You definitely don’t want to read these at this time:


2. Overloading

3. The polymorphism

4. The inner classes



In the third. Commonly used Util 3 days

You need to know:






You must not see these:

In the fourth. Database 9 days

You need to know:




4. Add, delete, change and check a table, sorting, paging, simple table query

5. Index, think about what kind of table to build index, what is an index

Don’t worry, the above three are all the same

The fifth. Unit test for 3 days

You need to know that

1. Junit @ Test, @ Ignore

2.log4j info,warning,error

3.Eclispe debug,Step,Step in ,Step Out,run

You must not learn these things

6. Spring 3 days

You need to know that

1.Spring Bean, Property, Map, List initialization values


3.Annonation& Configuration files

4.Spring Version

5.Spring MVC,@Method @Controller

You must not learn these things

7. Maven 5 days

You need to know that






= = = = = = = = = = = = = = = = = = = = = = = = = = = = over time to update the following content = = = = = = = = = = = = = = = = = =

Eighth Jsp 3 days

Jsp is mainly used in two aspects, one is the traditional way of background programmer set page, one is to directly generate Json format data. Json doesn’t provide SEO, so you still have to provide page-wrapping when SEO is needed. There are several ways to generate Json, but I prefer Json tag-lib.

What you need to know:

1. The label C

2. Customize the Tag


4. Add a version number to static resources

5. Touch the Jsp when the WEB container does not update it

You must not learn these:

1. Write any Java code in Jsp, including but not limited to Mysql

9 WEB 10 days

Madan: What do I mean by WEB here? I forget. SpringMVC, right? Here’s what you need to know anyway:


2. Spring configuration files

3. Set the encoding to UTF8


5. The interceptor


7. The HTTP protocol

8.Http-head content-type application/json x-www-form-urlencoded

9. The file upload

10. Uploading pictures

You must not know this:




Tenth Tomcat/Jetty 5 days

Here’s what you need to know:

1. Configure memory and JDK parameters

2. Specify the configuration file for deployment, docBase

Log configuration Acces.log Stdout.log. Catalina. out Stderr.log

4. Write a script, and find out the slow query, cat | awk

5. Understand how to break down response time and find performance bottlenecks after a request is split

You don’t need to know this:

1. Multiple projects are deployed in one Tomcat or Jetty

2.Jetty’s embedded operation

Eleventh Cookie 3 days

About cookies, there are two most commonly used places, one is statistics, one is login.

So here’s what you need to know:

1. The size of the Cookie

2.Cookie transmission mode

3. How to obtain the Cookie and what will be received if there is a parameter with the same name in the Cookie?

4. Why use cookies instead of Session to mark user login

5.Cookie expiration time

6. Remove cookies

You don’t need to know this:

Twelfth Shell 10 days

Shell is a big concept, so here’s a list of the things you should know best at this stage

Vim encoding mode, command mode, forward lookup, backward lookup, delete line, move to end of line

2. The cat | more this is one of the most sleep see log browsing, cat | grep used to locate the most commonly used when the Bug

3. Grep -a -B, etc., and if Cat+ grep locates multiple files, how to find which folder they are in.,cd,mkdir,mv,cp,scp,chown,chmod,free,vmstat,ps,iostat,netstat

What you don’t need to know:

1. Madan, I don’t know what not to know, Shell as long as you can learn more about practical things

SVN/Git 5 days

For back-end programmers, I still like SVN. Whether Git is used or not is a matter of personal preference. There are many reasons I won’t mention here.

Here’s what you need to know:

1.SVN standard directories: Trunk/Tags/Branches


3.Maven的Release插件 release:prepare release:perform, release:rollback

4.Tag management always Tag /always Trunk development mode

5. How to Tag and merge the code if the Bug is in conflict with the current project

6. How to roll back a release failure?

7. How is the SVN version generated


You must not know this:

1. I don’t know what not to know, but I recommend never using clock

2. Merging code is something I don’t think you should ever do. Try to keep your code well structured, not make merging code easier.

Json/Gson/ jsontag-lib 5 days

Json is a marvel, now yamL? It doesn’t matter. It doesn’t matter. Json has ruled the web for almost seven years.

Here’s what you should know:

1. The json string, number, object, array

2. The json escape

3. How to define a reasonable structure? Should we use an array containing an Object, or a large Object where the Key is ID and the Value is an Object? Sex :male or name:sex, value:male?

4.Gson’s basic type conversion fromJSON and tojson in Java and Json

5. Gson how to convert custom objects and nested objects (this is the most annoying part of Java, if it is Groovy or Python would not need such trouble)

6.Json-taglib: how to convert an ID to a Number, how to convert a String

7. The coding

You’re not supposed to know:

1.fastjson? I forgot. Gson is good

2.JSONObject or something? I don’t remember. It’s kind of crazy, because I don’t care what you use, and I don’t know which one is good or which one is bad, but that’s my preference. So what follows me must only be written in Gson. Unless one day I can convince me, boss, there is a XXX better than Gson.

It’s in the nature of engineers to feel that your boss is suppressing your motivation. The excellent engineers I have seen always take the initiative to try all kinds of new and radical technologies in the project, while the Leader often has to weigh N contents.

Ok ~~~300 likes is good, easy to break. Let’s see if we can get 3000 upvotes

= = = = = = = = = = = = = = = = = = = = = = = = = = = = over time to update the following content = = = = = = = = = = = = = = = = = =

The REST 15

The sixteenth Jenkins

17 the nexus

The 18th Tiles

19 Nginx

Memcache 20 / Redis

Refact 21

= = = = = = = = = = = = = = = = = = = = = = = = = = = = over time to update the following content = = = = = = = = = = = = = = = = = = 22 response time analysis

23 memory, CPU, hard disk, IO, network occupancy, Zabbix

Vmstat, Free, iostat

Slow Sql

Cache hit ratio/invalidation policy

Twenty-seventh TPS,Jmeter/ Load Runner

Agile development

The 29th Bug repair process

30 online release process

31 Publishing Center/Ansible

= = = = = = = = = = = = = = = = = = = = = = over time to update the following content = = = = = = = = = = = = = = = = = =

Thirty-two RMI RPC Thrift thirty-three GC thirty-four JMS thirty-five Groovy thirty-six Consistent Hash BigTable, Cassandra 37 MongoDB 38 NIO 39 Socket/WEBSocket 40 Tuscany/Dubbo

= = = = = = = = = = = = = = = = = = = = = = over time to update the following content = = = = = = = = = = = = = = = = = =

Forty-one Madan I can’t go on.

I’m joking, but there is still a lot missing, especially some business knowledge.

For example: classification DB how to design, when should disassemble the table, when to divide the library, how to pay, wechat development process, what is the third party login Auth ghost, mobile phone message verification code how to attack, high concurrent read how to design cache, high concurrent write how to merge write times,

How and when to refactor, and how to anticipate changes in requirements.

More algorithms related content, zookeeper, paxos, md5, HTTPS, and so on and so on.

The steps above are not entirely precise, nor are the classifications entirely careful, HMM. I’m still sorting out more.