2018 年是毕业第四年,工作从刚开始的 .Net 开发变成现在的 Android 开发,在这一共四年的时间里,换了三家公司,说来挺惭愧的。回顾这四年的职业生涯,虽然在技术上有了比较大的进步,但是始终都感觉是在靠着直觉生活,虽然心中有理想,行动上却表现得差强人意。2018 年可以说是觉悟的一年,各种知识付费产品带来的感悟加上自己平时阅读的积累,让我作为一名技术人员感受到了自己的不足,同时看到了自己前进的方向。
下面罗列一下自己的 2018 年的主要经历:
Readhub 客户端的开发
Readhub App是我个人在闲暇之余开发的一款新闻阅读应用,数据接口来自 Fenng 大的 Readhub 平台,它整合了互联网最新的资讯并进行实时展示,但是除了小程序之外没有移动端的产品,虽然 Github 上面已经有人将他们的作品开源出来了,作为 Android 开发者,本着学习进步的目的,我尝试着做了一款自己用起来还不错的 Android 客户端,整体项目比较小巧。该项目采用了 MVP + Dagger Android 的架构进行开发,网络数据请求采用 Retrofit + Rxjava 的方式,本地数据存储采用 Room + Rxjava 进行开发,并支持多主题切换。
| 起始页 | 主菜单 | 首页 | 
|---|---|---|
| 即时查看 | 话题详情 | 文章网页 | 
|---|---|---|
Kotlin 学习
Kotlin 自发布以来一直受到大家的关注,直到今天热度依然还在,也是 Google 最近在推广的开发语言。本着对技术的追求和学习的热情,我开始学习了 Kotlin 后便一发不可收拾,简洁的语法却不失高效:Lambda 表达式、高阶函数和协程等特性使 Kotlin 成为了新晋明星,没有意外的话以后的 Android 个人开源项目都会使用 Kotlin 来实现。
Android 进阶知识学习
应用层开发本质上都是重复性的工作,如果对技术有激情就应该深入地了解技术的实现原理,Android 从应用层到 Framework 层再到 Linux 内核,有太多系统化的知识需要学习,从 View 的事件传递和绘制流程到四大组件的启动过程再到 init/SystemServer/Zygote 进程的启动流程,了解这些知识后除了能够对 Android 系统有更加深刻的理解之外,对于一些以前不知道的现象或者 Bug 能够快速发现问题的根源。
这里强烈推荐 Gityuan 大神的博客和刘望舒老师的书——《Android 进阶解密》,他们都系统性地分析了 Android Framework 层的源码,刚开始看可能会比较吃力,当你对逐渐理解一些概念(如 Binder 机制)之后,再回去看这些文章,便会有更加深刻的理解。
我在空闲的时候会零星地看相关的文章,目前只是停留在“了解”阶段,后面会通过写文章的方式分享我的理解。
写博客
如果说 2018 年最大的收获是什么,那么必定是:切实感受到写博客过程给我带来的知识升华,以想要了解某些方面的知识(如 View 的事件分发原理),一般是用 Google 大法找一篇大神的文章来看,看完之后最多自己脑海里面总结一边便认为自己已经掌握了这块内容,过一段事件之后再回忆便逐渐变得模糊起来。
其实,除了大神的文章开路,如果最后能够用自己的语言叙述出来,这样才能够算得上是理解了某某原理,而写文章正是一个很好的途径。首先,在写文章的时候,某些知识点通过自己的语言组织能够在你大脑里面重复很多遍而且又不会感到枯燥,等你写完文章点击“发布”按钮的时候,你已经将这篇文章所涉及的知识点串联并记忆在脑海里了;其次,随着时间流逝你对这些知识的记忆慢慢会变得模糊,到时候回来看以前写的文章,又能够将这些记忆碎片按照自己的方式重新强化一遍;再者,自己的作品或者想法通过平台将博客公开出来,也是展示自己能力很好的一个方法,如果写得好,说不定会有工作机会找上门呢!
这里我重点推荐使用“掘金”这个平台写博客,相比于竞争对手,掘金在文章阅读的体验和文章的曝光量都是比较理想的。
书本/知识付费产品
业余时间有时候不想写代码或者看技术类的书本,会找看一些觉得有趣的书,去年一共看了两本,分别是《硅谷革命》和《智能时代》,感受到了科技进步实实在在地在改变人类的生活方式和生活水平。
同时也继续在知识付费产品中遨游,得到和极客时间是用得最多的,一年当中每天上下班坐地铁的时候带上耳塞,听完了《薛兆丰的经济学课》和《吴军的谷歌方法论》,虽然很少看文章,只是听音频效率会比较低一点,这个过程也让我的思维有了比较大的提升。
2019 年的计划
- 换一家工作氛围好、能够让自己的水平不断提升的公司,让自己踏上新的台阶
 - 持续写博客,不断总结经验和输出内容,提升自己的水平。计划完成的内容:
- View 的事件分发原理
 - View 的工作原理
 - 动画原理和高级动画技巧
 - Android 消息机制
 - 四大组件的工作过程
 - AMS、PMS 和 WMS 等组件原理解析
 - 插件化/热修复原理
 - JVM 核心原理
 - Gradle 原理和自定义 Gradle 插件
 - 常用开源项目源码解析
 - Kotlin 系列
 
 - 完成开源项目 KotlinHub 的基本功能
 - 看完吴军老师的《浪潮之巅》系列、《态度》、《见识》和李开复的《AI·未来》与《人工智能》
 
2018,奋起直追;2019,继续前进。开始之后,没有结束!