[轉載]初級Java程式設計師的學習路線

駱駝丶發表於2018-01-03

作者:暗滅

連結:初級Java程式設計師的學習路線

來源:知乎

[轉載]初級Java程式設計師的學習路線
初級Java程式設計師的學習路線

知乎總是建議我修改內容,說我騙贊。

算了,直接發專欄好了。

說過很多遍這個話題了。重複一遍,再說一次。

第一。 Java語法的學習。 3天

你需要會這些:

1. String,Integer,Long,Array,List,Map會用就夠了。

2. Interface和Impl能分得清就夠了,永遠不要去用繼承。

3.Model,也是Bean,記著Model裡只有Get和Set方法。貧血模型。

4.try-catch,Throwable, Error 5.函式,引數,返回值

你一定不要現在去看這些:

1.NIO,Thread,Extend,Abstract,GUI,GC

2.各種JDK的原始碼,各種演算法的實現

第二。物件導向概念的理解和學習 3天

你需要會這些:

1.屬性和方法

2.private/public

3.static final

4.ArrayList,Set,Map,Array的取值,長度,遍歷。StringBuffer

5.null物件,Null指標

6.建構函式

7.this

8.泛型

你一定不要這個時候去看這些:

1.protect

2.過載

3.多型

4.內部類

5.socket

6.file

7.stream

第三。常用的Util 3天

你需要會這些:

1.StringUtils

2.CollectionUtils

3.log4j

4.httpClient

5.calendar

你一定不要去看這些:

第四。資料庫 9天

你需要會這些:

1.JDBC

2.Mybatis

3.Hibernate

4.增刪改查一個表,排序,分頁,簡單的聯表查詢

5.索引,思考一下什麼樣的表建索引,什麼是索引

別擔心,以上三種都是一理通而百理融

第五。 單元測試 3天

你需要會這些

1.Junit @Test,@Ignore

2.log4j info,warning,error

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

你一定不要學這些

第六。 Spring 3天

你需要會這些

1.Spring Bean,Property,Map,List初始化值

2.Autowired

3.Annonation&配置檔案

4.Spring Version

5.Spring MVC,@Method @Controller

你一定不要學這些

第七。Maven 5天

你需要會這些

1.clean,install,deploy,assembly

2.snapshot/release

3.module

4.subeclipse

5.jetty:run

============================過段時間更新以下內容==================

第八 Jsp 3天

用到Jsp主要有兩個方面,一種是傳統的後臺程式設計師套頁面的方式,一種是直接生成Json格式的資料。 受限於Json無法提供SEO,所以在需要SEO的時候還是得提供套頁面的方式。 生成Json的方式有很多種,我還是喜歡用Json tag-lib.

你需要了解的是:

1.C標籤

2.自定義Tag

3.include

4.給靜態資源加版本號

5.WEB容器未更新Jsp的時候,Touch一下

你一定不要去學這些:

1.在Jsp裡寫任何Java程式碼,包括但不限於是Mysql

第九 WEB 10天

馬丹這裡的WEB我寫的是什麼意思,我忘記了。 大概是SpringMVC的意思? 反正 你需要了解這些:

1.web.xml

2.spring的配置檔案

3.統一設定成utf8的編碼

4.filter

5.攔截器

6.Controller

7.http協議

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

9.file的上傳

10.圖片的上傳

你一定不要去了解這些:

1.Struts

22.play

3.webService

4.servlet

第十 Tomcat/Jetty 5天

你需要了解這些:

1.記憶體和JDK引數的配置

2.指定配置檔案的方式部署,docBase

3.日誌的配置 acces.log stdout.log.catalina.out之類的 stderr.log

4.寫指令碼,找出慢查詢,cat|awk

5.理解一個請求分過來之後,怎麼分解響應時間,怎麼去查詢效能瓶頸

你不需要了解這些:

1.一個Tomcat或者是Jetty下部署多個專案

2.Jetty的嵌入執行方式

第十一 Cookie 3天

關於Cookie啊,最常用的有兩個地方,一個是統計,一個是登入。

所以你需要了解的是這些:

1.Cookie的大小

2.Cookie的傳輸方式

3.如何獲取到Cookie,如果Cookie中有同名的引數,會接收到什麼。

4.為什麼要用Cookie來代替Session做使用者的登入標記

5.Cookie的失效時間

6.清除Cookie

你不需要了解這些:

第十二 Shell 10天

Shell的概念很大,所以這裡只列出來現階段你最應該會的東西

你需要了解的是: 1.vim 編碼模式,命令模式,正查,倒查,刪除一行,移至行尾

2.cat| more 這種是最覺見的日誌瀏覽方式,cat|grep 用來定位Bug的時候最常用的

3.grep -A -B 等,以及如果Cat+Grep定位多個檔案,怎麼去查詢他們是在哪個資料夾下。4.ls,cd,mkdir,mv,cp,scp,chown,chmod

5.top,free,vmstat,ps,iostat,netstat

你不需要了解的是:

1.馬丹,不知道哪些不該瞭解,Shell的東西只要跟實用的都可以多瞭解

第十三 SVN/Git 5天

對於後端程式設計師來講,我還是喜歡SVN。 Git使用與否,完全看個人喜好。有很多原因,這裡不說。

你需要了解這些:

1.SVN的標準目錄:trunk/tags/branches

2.commit,update,revert,history

3.Maven的Release外掛 release:prepare release:perform, release:rollback

4.Tag的管理 always tag/always trunk的開發方式

5.Bug出現後,如果和當前開發的專案有衝突,該如何去打Tag,怎麼合併程式碼

6.釋出失敗後怎麼回滾。

7.svn版本號怎麼生成的

8.clean

你一定不要去了解這些:

1.不知道哪些不該瞭解,不過clock這種操作我建議永遠不要用

2.還有合併程式碼這種事,我也覺得永遠不要用,儘量保證你的程式碼結構很好,而不是想辦法讓合併程式碼更簡單。

第十四 Json/Gson/JsonTag-lib 5天

終於到了Json,過了300贊更新的內容就完工了~~ Json是一個神器,現在是有yaml? 無所謂了,不太影響。Json統治網際網路已經快7年了。

你應該瞭解這些:

1.json的 string,number,object,array

2.json的轉義

3.怎麼樣定義出來一個合理的結構,是用array裡包含一個Object,還是用一個大的Object,裡面的Key是ID,Value是一個Object?是直接用 sex:male 還是用 name:sex, value:male?

4.Gson在Java和Json中的基本型別轉換 fromjson和tojson

5. Gson怎麼轉換自定義的物件,和巢狀的物件(這就是Java最煩人的地方,如果是Groovy或者是Python哪用得著這麼麻煩)

6.Json-taglib裡的常用標籤,怎麼將一個ID轉換成Number,怎麼轉換成String

7.編碼

你不應該去了解:

1.fastjson?我忘記了。用Gson就很好了

2.JSONObject還是什麼來著?不記得了。 其實這段有點扯,因為你愛用什麼我管不著,我也分不清具體哪個好,哪個壞,但是我自己的偏好就是這樣的。所以跟著我的必須只能用Gson來寫。除非哪天能夠說服我說,老大,有一個XXX比Gson更好學。

這個其實是工程師的天性,完全不必覺得你的領導在打壓你的積極性。我見過的優秀的工程師,從來都是主動要求在專案中嘗試各種新的激進的技術,而Leader往往都是要權衡N多內容。

好了~~~300贊還算好,很容易突破了。我們看看能不能3000贊見~

============================過段時間更新以下內容==================

第十五 REST

第十六 Jenkins

第十七 nexus

第十八 Tiles

第十九 Nginx

第二十 Memcache/Redis

第二十一 Refact

============================過段時間更新以下內容================== 第二十二 響應時間分析

第二十三 記憶體,CPU,硬碟,IO,網路 佔用,Zabbix

第二十四 Top,Vmstat,Free,iostat

第二十五 慢Sql

第二十六 快取命中率/失效策略

第二十七 TPS,Jmeter/load runner

第二十八 敏捷開發

第二十九 bug修復流程

第三十 上線釋出流程

第三十一 釋出中心/ansible

======================過段時間更新以下內容==================

第三十二 RMI,RPC,Thrift 第三十三 GC 第三十四 JMS 第三十五 Groovy 第三十六 一致性雜湊,BigTable,Cassandra 第三十七 MongoDB 第三十八 NIO 第三十九 Socket/WEBSocket 第四十 Tuscany/Dubbo

======================過段時間更新以下內容==================

第四十一 馬丹我編不下去了。

開玩笑啦,然而還是少了不少的內容,特別是一些業務上的知識。

比如說:分類的DB怎麼設計,什麼時候應該拆表,什麼時候要分庫,支付怎麼做,微信的開發流程怎麼樣,第三方登入的Auth是什麼鬼,手機簡訊驗證碼如何防攻擊,高併發讀怎麼設計快取,高併發寫怎麼合併寫入次數,

以及怎麼重構,什麼時候重構,怎麼預判斷需求的變化。

還有更多的演算法相關的內容,zookeeper,paxos,md5,https等等等等。

以上的步驟不算完全精準,分類也不算完全仔細,嗯。更多的內容我還在整理中。


相關文章