转眼已是17年4月份,不想让17年年初的时候定下的目标到最后又被搁置,现在记录一下以后的学习目标,这个目标也是跟着知乎上面的一位大神的学习脚步来的。大致为一下几步:
- 1.深入Android系统 (目前正在这个阶段)
- 2.深入Java
- 3.了解编译原理,数据结构算法等CS基础知识
- 4.了解Linux kernel
深入Android系统
这块部分也是从开过年来断断续续的在看着,其实主要也就那么几个部分,大致就是以下几点:
- 1.多线程,消息机制等包括Thread/Handler和AsyncTask等
- 2.View系统,包括View的事件分发,绘制原理等
- 3.动画的原理
- 4.IPC机制,Binder和匿名共享内存等
- 5.四大组件的基本知识,启动,工作原理
- 6.Android的Window系统,理解Window和WindowManager
大致就是以上这些,其实也是根据《Android开发艺术探索》这本书来定的目标,原先目标是在5月底能差不多基本将这本书看完,不过由于自己的惰性以及平时的琐事,目前是不能按时完成,只是希望能尽快看完。
深入Java
这部分没得说,Android开发使用到的语言还是Java,所以Java的基础还是要打牢,进入这部分,我的目标是大致搞清楚Java语言本身。
- 1.深入Java的基础部分,首先是将《Thinking in Java》通读一遍,其实这本书之前有在断断续续的看,不过我觉得对新手来说不是很友好,第一遍读这本书的时候还是感觉很多地方都很晦涩,希望在再度读这本书的时候有新的收获。
- 2.学习如何写出更好的Java代码,准备去看《Effective Java》
- 3.学习如何优雅的写代码,大概会去读《重构》、《设计模式》等一些书籍
- 4.了解一下Java虚拟机部分《深入理解Java虚拟机》
深入理解CS的基础知识
这个部分我觉得有必要去认真研究一下,因为本人专业并不是CS专业,算是半路出身的程序员,很多时候在工作中和同事讨论一些问题时,能感受到自己的不足之处,所以这部分大致是去了解一下计算机系统、数据结构与算法等一些CS的基础知识。书单大致有:
《编程语言实现模式》
《深入理解计算机系统》
《SICP》
《算法导论》/《算法》
了解Linux Kernel
因为Android系统还是基于Linux的,所以我觉得要在Android这条路上走的更远,很有必要去了解一下Linux的一些知识。这里就大致列一下书单吧,希望自己真的能够走到这里。
《鸟哥的Linux私房菜》
《深度探索Linux操作系统:系统构建和原理解析》
《Unix环境高级编程》
《深入Linux内核》