怎么快速提高自己的java技術?
之前在網上看到過一篇文章,一個程序員因為公司倒閉去面試,結果因為只會CRUD被刷了下來,整個面試過程持續不到10分鐘,面試官還在網上吐槽:
他這番言論雖有好意,但其他程序員卻并不認同:
其中有一條評論特別精辟“面試造火箭,工作擰螺絲”
其實,除了你所問的這個問題外,從學習Java之初我們就一直面臨這許許多多的問題和選擇,例如:
我已經學完JDBC了,那樣參加工作夠用了嗎?Java SE學到什么樣的程度算是OK了呢?東西好多,我該怎么學啊?我想做項目,不想學原理!…………下面的內容將會帶你理清這些甚至更多疑問。
1.1 Java學習總體方向
對于剛學習Java的同學,應該了解Java學習的大致結構。當然你能在Oracle Java的主頁上看到還有如Java FX、Java DB這樣的技術。但是既然要和市場接軌,必然要有所取舍。
對于Java SE是我們Java入門的開端,這塊內容也就是大家所熟悉的坦克大戰、聊天軟件、五子棋這些桌面級項目所組成的。學完了Java SE部分,接下來就該選擇方向了。
這里有兩點需要提出:1) 往分布式方向并不是一定要經過Java EE階段,但是,學習Java EE對后續分布式的開發有莫大的好處。
2) Java ME雖然還在Oracle官網上屹立,但就市場來看,它的地位已經明顯不如android高了。所以從目前來看,沒有必要學習Java ME。
1.2 Java SE中應該關注的內容
現在我們列出Java SE的學習中應該關注的方面,以及這些方面里主要涉及哪些核心內容。大家可以根據自己的學習情況,對照這些條目,看看有沒有缺漏的內容。在之前提到過如坦克大戰這樣的項目,這些確實能很好的涵蓋了大部分Java SE的內容,所以必要的項目是很關鍵的。 Java SE大致可分為以下幾塊內容:
對象導論:如何用面向對象的思路來開發深入JVM:Java運行機制以及JVM原理面向對象的特征:封裝、繼承、抽象、多態n 數組和容器:容器的線程安全問題I/O和NIO:NIO工作原理和應用并發編程:concurrent包網絡編程:TCP/IP+BIO/NIO UDP/IP+BIO/NIOn JDBC框架和反射:JNDI、連接池、annotation等其他:正則表達式、字符串等在這里多提一點,關于Java SE學到什么深度才合適。其實對于后續學習Java EE或者是Android來說,Java SE你只要學會皮毛就足夠應付了,當然這里的皮毛是要求你熟練Java語法結構和基本CRUD操作。
1.3 Java EE中該學點什么
Java EE很雜,但是也很容易學,因為你做幾個網站大概就能把所有知識點串聯起來。所以Java EE方向說好聽點兒的叫企業級應用開發,說難聽點兒的其實就是做網站。當然并不局限于做網站。
對于Java EE方向的學習,重點在于能夠熟練的運用各種框架,以及掌握各種框架構成的核心思想。至于學什么框架,用什么應用服務器,在學習的時候可以采用容易配置的,所有的同類服務都是類似的,精通了一個,相似的學習就很快了。 Java EE方向學習內容
下面來具體的看各個模塊應該學點兒什么:
序列化:XML、JSON與Java之間的序列化和反序列化
ORM:推薦學習Hibernaten JSP/Servlet:可以順帶著把JS學習了
Spring:IOC、AOP、Spring MVC
MVC:推薦學習Strutsn Web Service:JDK自帶web service、CXF等框架
SOA:了解ESB、MQ等企業級應用架構。
EJB:主要了解思路。可順帶著學習JBOSS
其他:會使用JMS。了解JTA。
還是一點,Java EE方向的學習主要是會熟練運用即可。大點兒的企業都會有自己的框架,技術含量大同小異。會用即可。當然到了這個階段設計模式的學習也必不可少,設計模式可以穿插于各個框架中進行學習。
1.4 關于Java EE之后應該學點兒什么
對于大多數企業來說,如果你能掌握上面提到的相關技術,并且熟悉SQL和Linux,那找個Java相關工作應該是沒有問題的了。如果你想更深入的去應用上面所學的知識,分布式、搜索引擎、大數據處理等互聯網熱門技術都是你擴寬技能的方向。
開源的Lucene是搜索引擎技術最好的入門,簡單易學,而且很多企業對搜索引擎的需求越來越大。諸如MINA、Kafka這樣的開源框架,是你步入分布式方向很好的基石。如果你能了解HBase、Mongo這樣的非關系型數據庫,那就更有利于你思考大數據的問題。
技術是學不完的,而且更新的速度一定比你學習的速度還要快。所以了解市場需求,了解技術的核心理念尤為重要。至于這一階段可以看什么書,有如下推薦:《分布式Java應用 基礎與實踐》、《Hadoop權威指南》等。
上述,主要是關于零基礎的Java學習路線一個小小的總結,而從基礎項目的學習與實踐,了解學習那些技術才能胸有成竹的去面試、拿高薪你更需要一個完整的、系統的學習路線來輔佐:
第一:工程協作專題
工欲善其事必先利其器,磨刀不誤砍柴工,掌握高效的開發工具能讓開發事半功倍
MavenNexusIDEAGitJenkins專題特色:最快速、最直接、最清晰的課程設計可以讓你輕松搞定開發必備工具;
學習人群:有工作經驗,希望快速和系統地提升自我的人群;
學習目的:明明白白掌握開發必備工具,解除你的工具煩惱;
第二:源碼分析專題
讓思想頓悟,提高自身編程思維
SpringSpring 5新特性Spring MVCMybatis專題特色:俯下身子、抽絲剝繭、層層深入、領悟開源作者的設計思維;
學習人群:有工作經驗,希望快速和系統地提升自我的人群;
學習目的:通過學習、閱讀一線技術大咖代碼,掌握開源代碼的閱讀方式,建立獨立的源碼閱讀能力;
第三:分布式專題
高并發大流量,互聯網高薪必備,互聯網架構師必備技術
分布式框架Dubbo分布式協調Zookeeper分布式緩存Redis分布式消息ActiveMQ分布式消息RabbitMQ數據存儲MongoDB分布式數據擴容MyCat分布式Spring Session專題特色:來自一線的實戰經驗,全面、系統、深入,求職高薪必備技術;
學習人群:有工作經驗,希望快速和系統地提升自我的人群;
學習收獲:深入系統掌握分布式高薪必備技術,提升自我核心競爭力;
第四:微服務專題
拒絕模擬兩可,深入詳解微服務開發
Spring BootSpring CloudDocker專題特色:最透徹的微服務架構講解、源碼級的分析;
學習人群:有工作經驗,希望快速和系統地提升自我的人群;
學習收獲:深入全面掌握微服務技術;
第五:性能優化專題
深入內核,直擊一線故障現場,知其然亦知其所以然
JVM優化MySQL優化Tomcat優化專題特色:濃縮一線實戰經驗之精華,全面揭秘優化的那些事;
面向人群:有工作經驗,希望快速和系統地提升自我的人群;
學習收獲:深入理解優化的本質,建立獨立的性能優化能力;
第六:并發編程專題
深入理解多線程本質,剖析底層原理,而不滿足于基礎使用
并發編程Executors線程池并發編程locks鎖并發編程工具類并發編程aotmic原子操作并發編程容器collections容器并發編程Fork/Join框架內存模型專題特色:深入底層、源碼剖析,揭開并發編程的內部奧秘;
面向人群:有工作經驗,希望快速和系統地提升自我的人群;
學習收獲:明明白白、清清楚楚掌握Java并發編程的奧秘;
第七:電商項目實戰
大型分布式電商項目實戰,各類技術綜合運用,多種設計思路、解決方案、架構理念融為一體,全方位提升項目實戰能力
項目介紹用戶認證商品中心訂單中心支付中心數據分析后臺管理專題特色:來自一線的架構與設計、直擊電商系統痛點、全程手擼代碼;
面向人群:有工作經驗,希望快速和系統地提升自我的人群;
學習收獲:掌握一線項目實戰經驗,復雜場景的駕馭能力,綜合技術的應用能力;
綜上,這七個專題包含了當下熱門的剛需技術,也是通往架構師的一個必經橋梁。
架構師目前有公開課:
基本上每周都會有新的課程可以學習
關于公開課、完整路線圖學習大綱,有需要或者有什么疑問的,各位可以評論留言,或者私信我,有任何關于學習上的問題,也可以留言,諸多經驗豐富的老師都在等待著解答你的疑惑:知無不言、言無不盡……