2016年度总结

Posted by CoderBao Blog on December 31, 2016

2016年,是我转行成为一名程序员后的第二年。在这一年里,经历过不少反思,相比较于2014年初入社会时的学生气,我的精神面貌上有了很大的变化。

明白了这些道理

  • Be professional!这一点体现在以下几方面:
    • 给任务划分优先级
    • 提高执行力
    • 及时反馈/追踪,推动任务闭环
    • 及时将心得体会输出为文档/做笔记
  • 学习一门新知识时,需要建立知识体系,看经典书籍是个好选择;要知行合一,方能习得真知。
  • 迷茫是人生常态。因为我们不是生来就有巨人的肩膀可以倚靠的。在不知所措时能想到该做什么、并为之饮冰,着实不易。但只要有了明确的计划和坚定的执行力,也就给了自己可以预见的未来和信心。

获得了这些体验

4月,自己动手给 PC 装了 Ubuntu,折腾好了 Android源码编译的环境。

5-6月,坚持了连续1个月的扇贝全家桶打卡,之后中断。原因是:1、要在非工作时间集中精力补充 CS 基础知识,2、扇贝没有提供 CS 行业的单词本、泛用单词本的词汇范围过大,3、同时培养背单词和看书两个习惯较累。新的一年还会再背单词,不过现在的词汇来源是我在 Chrome 中看博客、翻文档时顺便通过扇贝助手插件添加到扇贝单词本中去的,这就可以保证所背单词都是我的常用词汇。

7月,入了 Kindle Voyage。现在经常在通勤路上看 Kindle。

10月,在 Nexus 6P 和 Pixel 中选择了前者作为自用机,体验一番 Android N+谷歌全家桶。使用体验:非常流畅,但没有适应我国国情的双卡双待,某些原生系统应用太简单(比如短信没有“已读”功能,电话没有“黄页”/“骚扰电话识别”),国内用户要好好折腾一番,不适合在大陆使用。

11月,与恋爱3年的女友领证,第一次去香港顺便入了 MBP2015款。

12月,尝鲜摩拜单车,一个月里骑了27公里,一下子找回了少年时代第一次骑自行车时猛虎下山的快乐,也舒展了久坐生锈的筋骨。

在读/读过/要读这些书

在搜罗过不少大 V 的推荐书单后,买了很多编程书籍,基本上平时可能看的书都有了,三两年是看不完的。我按着循序渐进、由浅入深、工作需要的顺序在看着。

Android 书籍

《Android群英传》。翻过2遍,通过这本书我主要是学习 Android 的控件、自定义控件相关知识,这些知识点还是要多写写、手熟了才行。

《Android开发艺术探索》。翻过2遍,通过这本书可以学习到一些进阶的用法,比如 Binder如何使用、View 体系的原理、动画。

《App研发录:架构设计、Crash分析和竞品技术分析》。主要是讲了作者在写应用时的一些好习惯、好思维模式,自己也可以借鉴参考、形成自己的一套规范。

《Android 源码设计模式解析与实战》。这本书的每一章讲解一种设计模式,再举出一个 Android 系统源代码中的用到该设计模式的例子。这本书启发了一种新的阅读源码的角度——设计模式。

《Android 框架揭秘》。这本书从 init 进程的创建讲到系统服务的工作原理,讲解很清晰。读这本书时,我也按图索骥地看了下工作环境里的 Android 4.4 源码,很多代码还是不懂滴,但有点印象了。


Android 之外

我大学里学的是 GIS,毕业后才转行 Android 应用开发,现在才刚刚上路,还得补充很多很多的知识~

《Java编程思想 (第4版)》。读过1遍,但这本书给我的感觉是要有一定的工作经验才能读懂。平时遇到疑惑时翻翻,此外大概一年 review 一次比较好,这本书要反复翻阅,打牢 Java 基础。

《深入理解Java虚拟机 : JVM高级特性与最佳实践》。精读过前面8章讲内存管理、垃圾回收的部分,以前对 Java 的认识真糙。

《图解HTTP》《图解TCP/IP : 第5版》《计算机是怎样跑起来的》,日本学者写的,很棒的一个科普系列,浅显易懂,适合我这种有很多问号的人在脑子里搭建起大致的框架,了解 HTTP、TCP/IP、硬件相关。以后有空再翻翻这方面的大部头吧。

《算法(第4版)》。算法和数据结构、操作系统是必须要补上的短板,短期目标是精读一遍这本书。实践的话,是到一些网站上找相关知识点的题目做做。后期学完这本书,还要再看看其他书籍,看看有没有理解遗漏的地方。

《C++ Primer Plus : 中文版(第六版)》。现在还在读第一遍的过程中,直接的目标是在 看 Android 源码中用 C++ 写的代码时没有阅读障碍。实践的话,现在想到的就是把我学习算法过程中写的那些 Java 代码翻译成 C++代码。

展望与计划

  1. 幸福平安,一切顺利。◕‿◕。
  2. 把工作做好,掌握其中所用到的技术。
  3. 个人写一个满意的 Android 项目。
  4. 以 Android 为轴,纵向上深入 App 开发、琢磨常用框架的原理、熟悉 Framework 流程、Java 基础等,横向上学习常用的 Linux 命令、某门编程语言等,做一个越来越棒的程序员在 Chrome 中。