Android 学习路线图
整理自[[https://www.diycode.cc/jerrysher][jerrysher]]的[[https://www.diycode.cc/topics/122][一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本]]。
程序设计
java
基本语法(如继承、异常、引用、泛型等) Java 核心技术 卷 I(适合入门)
- 进阶 Effective Java 中文版(如何写好的 Java 代码) Java 解惑 (介绍烂 Java 代码是什么样的)
多线程、并发 Java 并发编程实战 (系统全面的介绍了 Java 的并发,如何设计支持并发的数据结构)
Java 7 Java 程序员修炼之道 (详细的介绍 Java 7 的新特性)
Java 8 写给大忙人看的 Java SE 8 函数式编程思维
Java 虚拟机 深入理解 Java 虚拟机 (并不是那么难,Java 程序员都该看看)
性能优化 Java 性能优化权威指南 (后面的章节好像用处不大,前面有些部分还是值得看)
算法与数据结构
- 算法时间复杂度、空间复杂度的基本认知
- 熟悉常用数据结构:链表、队列、散列表、树等;
- 递归、分支等基本思想;
- 常用算法应用:排序、查找、比较等
数据结构与算法分析 (涵盖面比较全、示例是 Java 语言) 算法设计与分析基础 (实用主义的典型、偏算法设计) 编程珠玑 (实践型算法数据)
操作系统
- 对 Linux/OS 的基本认知
- Linux 的常用命令
鸟哥的 Linux 私房菜 Linux 内核设计与实现(原书第 3 版) (很精炼的语言描述清楚了内核算法)
网络
- Http/Https
- TCP/IP
图解 HTTP 图解 TCP/IP TCP/IP 详解 (进阶)
Android
- 四大组件(服务、广播、ContentProvider、页面容器)
- 基础 UI 组件(ListView、ViewPager)
- 异步任务机制(AsyncTask、Handler、线程池)
- 布局优化(层级、绘制、碎片化处理)
- 图片加载(Bitmap、缓冲区)
UniversalMusicePlayer (通过学习一个音乐播放器的代码能很快了解四大组件) Android Training官方课程 Android 一些重要知识点解析整理 Android UI/UX 库(各类常用组件及扩展组件的集合) Picasso、Glide (两个图片加载库) The Google I/O 2015 Android App (Google 大会官方的 App,适合学习各类实现) Android 开发技术前线 (定期翻译、发布国内外 Android 优质的技术、开源库、软件架构设计、测试等文章) 第三方库集合 (列举了常见的各方向第三方库)(进阶)
软件工程
基础工具
- IDE
- Git
- Maven
软件质量
- 代码整洁
- 码质量
- 码重构
编写可读代码的艺术 (来自 Google 工程师,专注于代码可读性) 代码整洁之道(使用面向对象+敏捷开发原则编写清晰可维护的代码) 重构-改善既有代码的设计 (学习改善已有代码) 重构手册 (改善代码的实际操作)
设计模式
- 23 种常见设计模式
大话设计模式 Head First 设计模式(两本入门级的设计模式书籍) 设计模式-可复用面向对象软件的基础(设计模式在实际中的应用)
敏捷开发
解析极限编程 敏捷开发的艺术 敏捷软件开发-原则、模式与实践(进阶)
专业开发
- 序员职业素养
- 更高效、更实效
思考人生
黑客与画家 (硅谷创业之父 Paul Craham 的文集,主要介绍黑客及优秀程序员的爱好和动机)