程序員練級攻略:編程語言
0x1 前言
編程語言
JAVA > C\C++ > Go:Go 語言、Docker 和新技術html
理論學科
程序員的荒謬之言仍是至理名言?java
系統知識
系統知識是理論知識的工程實踐,這裏面有不少不少的細節。好比像 Unix/Linux、TCP/IP、C10K 挑戰等這樣專業的系統知識。這些知識是你能不能把理論應用到實際項目當中,能不能搞定實際問題的重要知識。git
0x2 Java
入門級的書:
進階級別:
- 如何編寫高效的代碼《Effective Java》(注意,這裏我給的引用是第三版的,也是 2017 年底出版的書)Effective 這種書基本上都是各類經驗之談。
- Google Guava 庫 ,這個庫不可是 JDK 的升級庫,其中有如:集合(collections)、緩存(caching)、原生類型支持(primitives support)、併發庫(concurrency libraries)、通用註解(common annotations)、字符串處理(string processing)、I/O 等庫,其仍是 Effective Java 這本書中的那些經驗的實踐表明。
- 《Java 併發編程實戰》,是一本完美的 Java 併發參考手冊。
- 如何優化 Java 的性能,《Java 性能權威指南》。
- 底層細節《深刻理解 Java 虛擬機》。
- 《Java 編程思想》,真是一本透着編程思想的書。上面的書讓你從微觀角度瞭解 Java,而這本書則可讓你從一個宏觀角度瞭解 Java。這本書和 Java 核心技術的厚度差很少,但這本書的信息密度比較大。因此,讀起來是很是耗大腦的,由於它會讓你不斷地思考。對於想學好 Java 的程序員來講,這是一本必讀的書。
- 《精通 Spring 4.x》,一共有 800 多頁,認爲其中最不錯的是在分析原理,不足之處就是內容太多了,因此致使很厚,但這並不影響它是一本不錯的工具書。
面向對象的設計模式程序員
遵照兩個原則:github
- Program to an ‘interface’, not an 'implementation’
- 使用者不須要知道數據類型、結構、算法的細節。
- 使用者不須要知道實現細節,只須要知道提供的接口。
- 利於抽象、封裝,動態綁定,多態。符合面向對象的特質和理念。
- Favor ‘object composition’ over 'class inheritance’
- 繼承須要給子類暴露一些父類的設計和實現細節。
- 父類實現的改變會形成子類也須要改變。
- 咱們覺得繼承主要是爲了代碼重用,但實際上在子類中須要從新實現不少父類的方法。
- 繼承更多的應該是爲了多態。
0x3 C/C++
要了解C語言中的坑golang
C++ 是目前世界上範式最多的語言了,其作得最好的範式就是 " 泛型編程 ",這在靜態語言中,是絕對地劃時代的一個事。算法
0x4 GO
C 語言太原始了,C++ 太複雜了,Go 語言是不二之選。有了 C/C++ 的功底,學習 Go 語言很是簡單。shell