Java技術的世界是個無底洞,永遠也學不完,不廢話了,我就簡單的說一下本身的見解(偏重Java方面,什麼html、css、js這些不在此次的討論以內,雖然JavaServer開發有時候也都須要懂點):css
1.Core Java,就是Java基礎、JDK的類庫,不少童鞋都會說,JDK我懂,可是懂還不足夠,知其然還要知其因此然,JDK的源代碼寫的很是好,要常常查看,對使用頻繁的類,好比String,集合類(List,Map,Set)等數據結構要知道它們的實現,不一樣的集合類有什麼區別,而後才能知道在一個具體的場合下使用哪一個集合類更適合、更高效,這些內容直接看源代碼就OK了
2.多線程併發編程,如今併發幾乎是寫服務端程序必須的技術,那對Java中的多線程就要有足夠的熟悉,包括對象鎖機制、synchronized關鍵字,concurrent包都要很是熟悉,這部分推薦你看看《Java併發編程實踐》這本書,講解的很詳細
3.I/O,Socket編程,首先要熟悉Java中Socket編程,以及I/O包,再深刻下去就是Java NIO,再深刻下去是操做系統底層的Socket實現,瞭解Windows和Linux中是怎麼實現socket的
4.JVM的一些知識,不須要熟悉,可是須要了解,這是Java的本質,能夠說是Java的母體, 瞭解以後眼界會更寬闊,好比Java內存模型(會對理解Java鎖、多線程有幫助)、字節碼、JVM的模型、各類垃圾收集器以及選擇、JVM的執行參數(優化JVM)等等,這些知識在《深刻Java虛擬機》這本書中都有詳盡的解釋,或者去oracle網站上查看具體版本的JVM規範.
5.一些經常使用的設計模式,好比單例、模板方法、代理、適配器等等,以及在Core Java和一些Java框架裏的具體場景的實現,這個可能須要慢慢積累,先了解有哪些使用場景,見得多了,本身就天然而然會去用。
6.經常使用數據庫(Oracle、MySQL等)、SQL語句以及通常的優化
7.JavaWeb開發的框架,好比Spring、iBatis等框架,一樣他們的原理纔是最重要的,至少要知道他們的大體原理。
8.其餘一些有名的用的比較多的開源框架和包,Netty網絡框架,Apache common的N多包,Google的Guava等等,也能夠常常去Github上找一些代碼看看。
暫時想到的就這麼多吧,1-4條是Java基礎,所有的這些知識沒有必定的時間積累是很難搞懂的,可是瞭解了以後會對Java有個完全的瞭解,5和6是須要學習的額外技術,7-8是都是基於1-4條的,正所謂萬變不離其宗,前4條就是Java的靈魂所在,但願能對你有所幫助
html
9.(補充)學會使用Git。若是你還在用SVN的話,趕忙投入Git的懷抱吧前端
一、常規增刪改查。神馬ssh之類的。前端HTML,CSS會一點,JS會一點。常規數據庫操做會點。 (程序猿基本功)
二、系統架構師方向,大型網站架構設計, 能適合高併發之類神馬的。神馬memcached,redis緩存,mysql集羣啥的。
三、搜索引擎方向:神馬爬蟲,lucene,線程隊列,即便不熟悉,也要有個大概瞭解。
四、服務器方向:nginx, 服務器集羣,數據庫集羣。
五、前端交互設計,用戶體驗啥的。mysql