程序設計
一、java
(a)基本語法(如繼承、異常、引用、泛型等)
- Java核心技術 卷I(適合入門)
進階 - Effective Java中文版(如何寫好的Java代碼)
- Java解惑 (介紹爛Java代碼是什麼樣的)
(b)多線程、併發
- Java併發編程實戰 (系統全面的介紹了Java的併發,如何設計支持併發的數據結構)
- java多線程編程核心技術
- Java高併發編程詳解
(c)Java 7
- Java程序員修煉之道 (詳細的介紹Java 7 的新特性)
(d)Java 8
- 寫給大忙人看的Java SE 8
- 函數式編程思維
(e)Java虛擬機
- 深入理解Java虛擬機 (並不是那麼難,Java程序員都該看看)
(f)性能優化
- Java性能優化權威指南 (後面的章節好像用處不大,前面有些部分還是值得看)
二、算法與數據結構
- 算法時間複雜度、空間複雜度的基本認知
- 熟悉常用數據結構:鏈表、隊列、散列表、樹等;
- 遞歸、分支等基本思想;
- 常用算法應用:排序、查找、比較等
- 數據結構與算法分析 (涵蓋面比較全、示例是Java語言)
- 算法設計與分析基礎 (實用主義的典型、偏算法設計)
- 算法導論
- 編程珠璣 (實踐型算法數據)
- 算法(第四版)
三、操作系統
對Linux/OS的基本認知
Linux的常用命令
- 鳥哥的Linux私房菜
- Linux內核設計與實現(原書第3版) (很精煉的語言描述清楚了內核算法)
- 《深入理解Linux內核》
- 編碼隱匿在計算機軟硬件背後的語言
四、網絡
- Http/Https
- TCP/IP
- 圖解HTTP
- 圖解TCP/IP
進階
- TCP/IP詳解
五、Android
- 四大組件(服務、廣播、ContentProvider、頁面容器)
- 基礎UI組件(ListView、ViewPager)
- 異步任務機制(AsyncTask、Handler、線程池)
- 佈局優化(層級、繪製、碎片化處理)
- 圖片加載(Bitmap、緩衝區)
- 《android羣英傳》
- 《Android系統源代碼情景分析》
- 《android開發藝術探索》
- UniversalMusicePlayer (通過學習一個音樂播放器的代碼能很快了解四大組件)
- Android Training官方課程
- Android一些重要知識點解析整理
- Android UI/UX庫(各類常用組件及擴展組件的集合)
- Picasso 、 Glide (兩個圖片加載庫)
- The Google I/O 2015 Android App (Google大會官方的App,適合學習各類實現)
- Android開發技術前線 (定期翻譯、發佈國內外Android優質的技術、開源庫、軟件架構設計、測試等文章)
進階
- 第三方庫集合 (列舉了常見的各方向第三方庫)
- 軟件工程
一、基礎工具
-
IDE、Git、Maven
-
AndroidStudio
-
Git權威指南中文手冊
二、軟件質量
- 代碼整潔
- 碼質量
- 碼重構
- 改善代碼的三部曲(《設計模式》-> 《重構》-> 《重構與模式》)
- 編寫可讀代碼的藝術 (來自Google工程師,專注於代碼可讀性)
- 代碼整潔之道(使用面向對象+敏捷開發原則編寫清晰可維護的代碼)
- 重構-改善既有代碼的設計 (學習改善已有代碼)
- 重構手冊 (改善代碼的實際操作)
三、設計模式
- 23種常見設計模式
- 大話設計模式
- Head First設計模式(兩本入門級的設計模式書籍)
- 設計模式之禪
進階
- 設計模式-可複用面向對象軟件的基礎(設計模式在實際中的應用)
四、敏捷開發
- 解析極限編程
- 敏捷開發的藝術
- 進階
- 敏捷軟件開發-原則、模式與實踐
五、專業開發
- 程序員職業素養
- 更高效、更實效
- 程序員的是職業素養
- 程序員修煉之道-從小工到專家
六、思考人生
- 黑客與畫家 (硅谷創業之父Paul Craham 的文集,主要介紹黑客及優秀程序員的愛好和動機)