何為精通Java?本來Java僅僅是一門語言,但從應用技術的角度來看,精通Java是可以無邊無際的。很可能你可以對James說:我精通J2EE、JVM、Java服務器、大數據等等一些和Java相關的應用;況且這些應用是隨着時間的發展而擴散的。那James就單純從語言角度出發,整合網絡上所看到的資料說一說。
怎么才算是精通Java呢?針對這一點,可從兩個方面解讀:縱向(從語言角度),在於深度;橫向(從應用角度),在於廣度。
從語言角度來說,也從一般人能夠做到的程度,講述James自己的體會:
1. 掌握Java語言語法,能夠區別Java和其他語言的語法,並能快速且准確地定位、修正程序中出現的Errors和Warnings語法錯誤;
2. 熟悉某一版本的JDK(如1.8版本)自帶的常用命令及其選項,如:java、javac、javadoc等等;
3. 熟練到精通某一款Java開發的IDE工具,包括進行工程管理、常用選項設置、配置插件等等;常用IDE如:Eclipse、JBuilder等等;
4. 熟練到精通常用Java API,以及和API相關的底層計算機原理知識,如:java.lang、java.util、java.io、java.math、java.net、java.text、java.security等等;(如何才算精通?能夠模擬常見的Java抽象類,以及相關情況;或者可以嘗試着理解OpenJDK的源代碼)
5. 熟練使用Java下的代碼測試工具,完成代碼自動測試;熟練使用相關實現工程代碼(如Git、SVN、Gerrit等等)管理,如:工程編譯、生成doc文檔、生成jar、版本控制等等;精通編程代碼規范,如何編寫易維護、可讀性更高的代碼;
6. 精通OOP思想,以及相關的設計模式;
7. 精通JVM,或者說:能夠實現JVM(當然,很少人能夠做到這點);
8. 掌握J2EE、Oracle以及其他流行開發技術,掌握軟件架構設計思想,性能調優手段等等;
9. 能對比Java和其他語言的優缺點;
10. 熟知Java語言的發展歷史,掌握Java語言的應用歷史,並展望Java的發展;
James比較喜歡系統得掌握技術,那書籍自然是比較理想的手段。
《Java編程規范》(James Gosling)、《Java核心技術·卷I 基礎知識》、《Java編程思想》(主要是:面向對象思想)、《Effective Java》(James Gosling鼎力推薦)、《Java與模式》、《Java數據結構和算法》、《Junit Recipes中文版:程序員實用測試技巧》、《Java I/O》、《Java Network Programming》、《Java Thread Programming》、《Java與模式》、《The Java Virtual Machine Specification》。
每本書都有側重點,服務於不同技術層次。
James本人是Android開發從業人員,其就業路程比較崎嶇;在校學習期間,接觸過嵌入式、圖像處理、運動控制相關方面專業知識,但都沒能堅持下來。
James認為只有在實踐中才能發現自我,才能找到自己真正想要去從事的工作和事情。但也懂知道自己是一個技術人士,工作方面唯一需要做的事情是:對工作負責;提升自我,進行技術沉淀,更好地為工作負責。
走了很多彎路,最后才發現:平平淡淡才是真!
精通Java,不敢說;技術不斷精進,才是真。