Android读书计划

人最怕的是,没有方向!

1.楔子:

本人接触Andrjoid开发也有一年多了,期间在一家外包公司独立开发了五六个项目。虽谈不上大牛,但自认小有所成。平时没什么爱好,就喜欢看看技术博客,试验各种开源代码,写写学习笔记。

最近感觉有点陷入瓶颈了,进步甚慢,却又不知该如何进一步提升自己。对于开发中遇到的很多问题,虽有所领悟,然不够系统,一些小知识点,也常有遗漏。觉得是时候系统的反思一下自己的知识体系了,于是决定制定一个回顾计划,综合自己看的博客、书籍,以及自己的开发实践,对一些常用的知识点进行整理。

其实以前也常写点笔记,分享到技术交流群,不过,觉得博客比笔记,更能激起自己的写作兴趣一些。拥有一个好的技术博客,我想,对于自己以后换工作啥的,也可以加点分吧。有时翻看自己以前的笔记,看着那一两百篇的笔记,真是满满的成就感。不过当时写笔记太随意了些,这次回顾,就是在过去笔记的基础上,查漏补缺,去粗取精,合并同类,以臻完美!

看博客多了,就会发现,博客太碎片了。零敲碎打,只能缝缝补补,却难以做为建立个人知识体系的主要渠道,于是回顾计划以看书为主,博客为辅,同时,对每个知识点,都必须在代码中测试一边,因为之前的阅读经验告诉我:如果只是泛泛而看,不去实践感受一下,也不及时做下笔记,很快就忘了,到时候真要用了,还得回过头来再重新看一遍。

2.书单:

第一阶段:
疯狂Java讲义、疯狂Android讲义 目标:查漏补缺,温故知新 期限:2月
第二阶段:
Android群英传、Andrjoid开发艺术探索 目标:把握Android重难点技术,深挖吃透 期限:2月
第三阶段:
Think in Java、Effective Java 目标:健壮高效,提升Java功力 期限:2月
第四阶段:
设计模式之禅、Android源码设计模式解析与实战 目标:拥抱变化,理解设计模式 期限:2月
第五阶段:
Git权威指南、Gradle User Guide 目标:学会版本管理,提升编译效率 期限:2月
第六阶段:
算法导论、数据库系统基础教程、计算机网络、鸟哥的Linux私房菜、计算机组成原理 目标:全方位补基础 期限:5月

整理要求:每回顾/学习完一个知识点,就写一个Demo,并写一篇博文,源码托管到Git@Osc,博文发布到博客园
整体期限:1年3月
Git@Osc地址:http://git.oschina.net/yutianran
博客园地址:http://www.cnblogs.com/yutianran

3.第一阶段规划:基础

《疯狂Java讲义 》
第1章 Java概述
第2章 理解面向对象
第3章 数据类型和运算符
第4章 流程控制和数组
第5章 面向对象(上)
第6章 面向对象(下)
第7章 Java集合
第8章 泛型
第9章 与运行环境交互
第10章 异常处理
第11章 AWT编程
第12章 Swing编程
第13章 JDBC编程
第14章 Annotation(注释)
第15章 输入/输出
第16章 多线程
第17章 网络编程
第18章 类加载和反射
《疯狂Android讲义》
第1章 Android应用与开发环境
第2章 Android应用的界面编程
第3章 事件处理
第4章 深入理解Activity
第6章 Android应用的资源
第7章 图形与图像处理
第8章 Android的数据存储和IO
第9章 使用ContentProvider实现数据共享
第10章 Service与BroadcastReceiver
第11章 多媒体应用开发
第12章 OpenGL与3D应用开发
第13章 Android的网络应用
第14章 管理Android手机桌面
第15章 传感器应用开发
第16章 GPS应用开发
第17章 使用Google Map服务
第18章 疯狂连连看
第19章 电子拍卖系统

4.第二阶段规划:进阶

《Android群英传》
第1章 Android体系与系统架构
第2章 Android开发工具新接触
第3章 Android控件架构与自定义控件详解
第4章 ListView使用技巧
第5章 Android Scroll分析
第6章 Android绘图机制与处理技巧
第7章 Android动画机制与使用技巧
第8章 Activity与Activity调用栈分析
第9章 Android系统信息与安全机制
第10章 Android性能优化
第12章 Android 5.X新特性详解
第13章 Android实例提高
《Android开发艺术探索》
第1章 Activity的生命周期和启动模式
第2章 IPC机制
第3章 View的事件体系
第4章 View的工作原理
第5章 理解RemoteViews
第6章 Android的Drawable
第7章 Android动画深入分析
第8章 理解Window和WindowManager
第9章 四大组件的工作过程
第10章 Android的消息机制
第11章 Android的线程和线程池
第12章 Bitmap的加载和Cache
第13章 综合技术
第14章 JNI和NDK编程
第15章 Android性能优化

5.第三阶段规划:思想

《Think in Java》
第1章 对象导论
第2章 一切都是对象
第3章 操作符
第4章 控制执行流程
第5章 初始化与清理
第6章 访问权限控制
第7章 复用类
第8章 多态
第9章 接口
第10章 内部类
第11章 持有对象
第12章 通过异常处理错误
第13章 字符串
第14章 类型信息
第15章 泛型
第16章 数组
第17章 容器深入研究
第18章 Java I/O系统
第19章 枚举类型
第20章 注解
第21章 并发
第22章 图形化用户界面
《Effective Java》
第1章 引言
第2章 创建和销毁对象
第3章 对于所有对象都通用的方法
第4章 类和接口
第5章 泛型
第6章 枚举和注解
第7章 方法
第8章 通用程序设计
第9章 异常
第10章 并发
第11章 序列化

6.第四阶段规划:模式

《设计模式之禅》
第1章 单一职责原则
第2章 里氏替换原则
第3章 依赖倒置原则
第4章 接口隔离原则
第5章 迪米特法则
第6章 开闭原则
第7章 单例模式
第8章 工厂方法模式
第9章 抽象工厂模式
第10章 模板方法模式
第11章 建造者模式
第12章 代理模式
第13章 原型模式
第14章 中介者模式
第15章 命令模式
第16章 责任链模式
第17章 装饰模式
第18章 策略模式
第19章 适配器模式
第20章 迭代器模式
第21章 组合模式
第22章 观察者模式
第23章 门面模式
第24章 备忘录模式
第25章 访问者模式
第26章 状态模式
第27章 解释器模式
第28章 享元模式
第29章 桥梁模式
第30章 创建类模式大PK
第31章 结构类模式大PK
第32章 行为类模式大PK
第33章 跨战区PK
第34章 命令模式+责任链模式
第35章 工厂方法模式+策略模式
第36章 观察者模式+中介者模式
第37章 MVC框架
第38章 新模式(规格+对象池+雇工+黑板+空对象)
《Android源码设计模式解析与实战》
第1章 走向灵活软件之路——面向对象的六大原则
第2章 应用最广的模式——单例模式
第3章 自由扩展你的项目——Builder模式
第4章 使程序运行更高效——原型模式
第5章 应用最广泛的模式——工厂方法模式
第6章 创建型设计模式——抽象工厂模式
第7章 时势造英雄——策略模式
第8章 随遇而安——状态模式
第9章 使编程更有灵活性——责任链模式
第10章 化繁为简的翻译机——解释器模式
第11章 让程序畅通执行——命令模式
第12章 解决、解耦的钥匙——观察者模式
第13章 编程中的“后悔药”——备忘录模式
第14章 解决问题的“第三者”——迭代器模式
第15章 抓住问题核心——模板方法模式
第16章 访问者模式
第17章 “和事佬”——中介者模式
第18章 编程好帮手——代理模式
第19章 物以类聚——组合模式
第20章 得心应手的“粘合剂”——适配器模式
第21章 装饰模式
第22章 对象共享,避免创建多对象——享元模式
第23章 统一编程接口——外观模式
第24章 连接两地的交通枢钮——桥接模式
第25章 MVC的介绍与实战
第26章 MVP应用架构模式

7.第五阶段规划:工具

《Git权威指南》
第1章 版本控制的前世和今生
第2章 爱上 Git 的理由
第3章 Git的安装和使用
第4章 Git 初始化
第5章 Git 暂存区
第6章 Git对象
第7章 Git 重置
第8章 Git 检出
第9章 恢复进度
第10章 Git 基本操作
第11章 历史穿梭
第12章 改变历史
第13章 Git 克隆
第14章 Git库管理
第15章 Git协议与工作协同
第16章 冲突解决
第17章 Git 里程碑
第18章 Git 分支
第19章 远程版本库
第20章 补丁文件交互
第21章 经典Git协同模型
第22章 Topgit 协同模型
第23章 子模组协同模型
第24章 子树合并
第25章 Android 式多版本库协同
第26章 Git 和 SVN 协同模型
第27章 使用 HTTP 协议
第28章 使用 Git 协议
第29章 使用 SSH 协议
第30章 Gitolite 服务架设
第31章 Gitosis 服务架设
第32章 Gerrit 代码审核服务器
第33章 Git 版本库托管
第34章 CVS版本库到Git的迁移
第35章 更多版本控制系统的迁移
第36章 etckeeper
第37章 Gistore
第38章 补丁中的二进制文件
第39章 云存储
第40章 跨平台操作 Git
第41章 Git 的其他特性
《Gradle User Guide》
第1章 安装Gradle
第2章 排除故障
第3章 构建脚本基础
第4章 Java构建入门
第5章 依赖管理的基础知识
第6章 Groovy快速入门
第7章 网页应用快速入门
第8章 使用Gradle命令行
第9章 使用Gradle图形界面
第10章 编写构建脚本
第11章 深入了解Tasks
第12章 编写构建脚本
第13章 Working With Files
第14章 Java插件
第15章 War插件

8.第六阶段规划:全面

《算法导论》
第1章 算法在计算中的作用
第2章 算法基础
第3章 函数的增长
第4章 分治策略
第5章 概率分析和随机算法
第6章 堆排序
第7章 快速排序
第8章 线性时间排序
第9章 中位数和顺序统计量
第10章 基本数据结构
第11章 散列表
第12章 二叉搜索树
第13章 红黑树
第14章 数据结构的扩张
第15章 动态规划
第16章 贪心算法
第17章 摊还分析
第18章 B树
第19章 斐波那契堆
第20章 van Emde Boas树
第21章 用于不相交集合的数据结构
第22章 基本的图算法
第23章 最小生成树
第24章 单源最短路径
第25章 所有结点对的最短路径问题
第26章 最大流
第27章 多线程算法
第28章 矩阵运算
第29章 线性规划
第30章 多项式与快速傅里叶变换
第31章 数论算法
第32章 字符串匹配
第33章 计算几何学
第34章 NP完全性
第35章 近似算法
《数据库系统基础教程》
第1章 数据库系统世界
第2章 关系数据模型
第3章 关系数据库设计理论
第4章 高级数据库模型
第5章 代数和逻辑查询语言
第6章 数据库语言SQL
第7章 约束与触发器
第8章 视图与索引
《计算机网络》
第1章 引言
第2章 物理层
第3章 数据链路层
第4章 介质访问控制子层
第5章 网络层
第6章 传输层
第7章 应用层
第8章 网络安全
第9章 阅读清单和参考书目
《鸟哥的Linux私房菜》
第0章 计算机概论
第1章 Linux是什么 
第2章 Linux如何学习 
第3章 主机规划与磁盘分区 
第4章 安装CentOS 5.x与多重引导小技巧 
第5章 首次登录与在线求助man page 
第6章 Linux的文件权限与目录配置 
第7章 Linux文件与目录管理 
第8章 Linux磁盘与文件系统管理 
第9章 文件与文件系统的压缩与打包 
第10章 vim程序编辑器 
第11章 认识与学习bash
《计算机组成原理》
第1章 计算机系统概论
第2章 计算机的发展及应用
第3章 系统总线
第4章 存储器
第5章 输入输出系统
第6章 计算机的运算方法
第7章 指令系统
第8章 CPU的结构和功能
第9章 控制单元的功能
第10章 控制单元的设计

2016-10-29 10:1020