回顾 2017,展望 2018
今天是 2018 年的第三天,也是我连续第二年写年终总结。
为什么今天才写年终总结呢?因为元旦要回家办些事情,真的吗?其实还是一如既往地拖延症,所以直到今天(1月3号)才写[捂脸]。
就像 bestswifter 说的那样,每次年终总结的时候,都觉得自己去年就像个傻逼。其实越是年轻,就越这样觉得,越是这样觉得,就越说明有所成长。
回顾 2017
回顾我的 2017,可以总结为下面几个关键词:
- 焦虑
- 认知提升
- 情商
- 知识付费
- 摸着石头过河
- 生活不止眼前的代码
1. 焦虑
2016 年,我一直在想怎么才能成为技术大牛。
但是到了 2017 年,IT 圈接二连三地出现让人沮丧的消息,从调侃 iOS 没人要了,到华为 34 岁以上的员工被裁,再到中兴程序员跳楼自杀,我的问题也就变成了——什么才是程序员的终极形态?成为 BAT 中的技术专家?转管理?这一年,我想肯定不止我一个人在焦虑。这一年,是程序员们集体缺乏安全感的一年。
直到最近我看到了 stormzhang 和曹政、唐巧等业界大 v 们的讨论,心中才暂时有了一个足以安心的答案。
对于程序员这一行,很多人都说是吃青春饭。一是因为年纪大了,体力、精力、学习能力都会下降很多,二是很多人仅仅是为了混口饭吃,才做这行的,也谈不上兴趣,而 IT 行业的技术日新月异,跟不上的自然就会被淘汰,即便不被淘汰,也会过得比较痛苦。另一方面,即便是那些在大厂中工作的技术人员,也不见得好到哪去,虽然薪资高,工作稳定,但是加班严重,拿着死工资,职位也是高不成低不就的。
那我们该怎么办呢?
有一个政治正确的说法,就是努力学习,提升竞争力,保持激情。但是这种答案等于没说。因为这不是手段,也不是目标,只是一句口号。
所以呢?
(1)合理的职业规划,实现阶段性的目标。比如,不论是跳槽还是转行,一定要有往上走的趋势,可以是薪资上的,也可以是职位上的,也可以是成长环境上的。
(2)培养积累性强的第二技能,提升影响力。比如写作,投资理财,演讲,英语等等。
(3)在尽可能早的时候,积累尽可能多的资源,影响力和财富,站到尽可能高的位置。因为有了足够的人脉、影响力和财富,我们才能有更强的抵抗职场风险的能力。
(4)最后,也是最重要的,把手头的事情做好。如果这点都做不好,就谈不上前面三点。
2. 认知提升
提升认知,在 2017 年是一个时髦的词,本质上也就是原来说的转变思维方式。
这一年,对我自己来讲,在思想上,比较明显的改变就是:
- 技术、工作不是生活的全部
- 要想过得自在,情商是重要的(情商远远不只是会说漂亮话那么简单)
- 没有什么事情一定是正确的,或者错误的,即便不对,也没什么关系,能这样想的话也就不会计较得失了
- 完美并不代表每个细节都要抠,很多时候,完成比完美更重要
- 努力很重要,但是选择更重要
- 要慢慢从学生思维转变成过来,学生思维往往书生气太重,太单纯,想当然
- 做事情要讲究方法论,就像那句被讲烂了的名言所说的一样——“不要用战略上的懒惰掩盖战术上的勤奋”
- 我们表面上虽然是给别人打工的,但实际上我们是在为自己打工
3. 情商
感觉自己白活了 20 多年,今年才意识到提升情商的重要性,才知道情商是什么、情商是可以提高的,才意识到自己情商真的不高。甚至有朋友说我思想“保守”,给我取了个老干部的称号[捂脸]。我自己也确实发现自己有不少问题,比如不会聊天、跟别人打交道时很容易有防备心理、很容易紧张激动等等。
除此之外,我一直在想如何才能解决这些普遍的问题:
>
我们过得开不开心,跟赚多少钱、工作做得多么棒、别人骂没骂你有关系吗?当然有,但是如果赚的不多、工作做得不太好、别人骂你,就只能痛苦地过一辈子吗?
我们为什么总是害怕说错话?为什么总是怕失败?怕被拒绝?为什么总是因为在意别人的眼光而活的那么累?我们为什么会自卑、焦虑?
这些都是情商低惹的祸,不过还好,因为有互联网,我在 2017 年找到了一些答案,2018 年还需要继续提升情商。
4. 知识付费
2016 年被媒体称为知识付费的元年,2017 年是知识付费的。这一年我通过趣直播、知乎 live 和知识星球(原小密圈)、喜马拉雅等平台,购买过一些在线知识产品,主要涉及的是技术、生活、心理和理财方面的内容。
相比读书来说,通过这些渠道获得的知识是碎片化的,读书有读书的好处,碎片化阅读也有其时代意义。通过碎片化阅读我们可以:
- 更有针对性
- 更好地利用碎片化时间
- 可以直接和大 v 们进行交流
- 通过碎片化学习,可以从中获得一些启发
5. 摸着石头过河
5.1 工作
今年 3 月份时,所在的创新项目组解散,后来就被收编到公司的主项目组了。
在创新项目小组的这段经历也算是体验了创业的感觉,也是第一次体验到了濒临“死亡”的感觉。由于很多东西都是从零开始,基本上都要 1 个人独立完成,而且很多时候不光是要完成手头的编码工作,还要参与产品设计、UI 设计、项目评估、技术调研、团队交流各个方面,所以中间的过程很累,压力比较大,但同时也有很多自由发挥的空间,收获也很多,毕竟这种锻炼的机会也不多,其实我自己一直是有畏难心理的,所以如果不是被逼到这份上,我可能现在还在我的舒适区一直挣扎。
另一方面,由于时间紧,所以很多工作很难去深入了解,去做到极致。后来在项目解散后,我也充分地意识到了自己的短板所在,所以到了新的团队之后,我开始去搭建自己的知识体系,并且竭尽所能去做好每个任务,沉下心去学习工作中所涉及到的知识。从最开始的图文快照,到 Hybrid 框架升级,再到列表框架优化,每一个版本都几乎用尽了全身力气。比较出乎意料的是,后来在 8 月份的时候,拿到了职业生涯第二次奖励。
这个时候,是不是应该来句鸡汤呢:
“努力不一定有收获,但是不努力一定没有收获”。
5.2 技术成长
年初定了不少目标,但是在做的时候,又发现目标的本身存在问题,所以后来也在不断调整。
总的来看,收货比较大的还是知识体系的构建,以及开始有意识地去深入了解一些技术背后的原理,作为非科班出身的程序员,很多路都需要自己去摸索,所以中间还是走过不少弯路。
在 3 月份的反省后,这一年的大致做的都是“把工作任务做到极致,读读源码,写写博客,做笔记做总结,开源自己的代码到 GitHub 上”,后来发现自己基本功还是不够,于是又把数据结构和算法、架构、设计模式都深入学习了一遍:
1 月份,正式开始学习 Swift;
3 月份,实现了一个图文快照的框架,并在后续几个版本中做了迭代、重构;
4 月份,读完了 《Objective-C 高级编程》和 The Swift Programming Language,并且跟着敲完了所有的示例代码;
5 月份,读完 SDWebImage 框架的全部源码,写了一篇笔记;
6 月份,Hybrid 升级,调研 Web View 的优化,调研 WKWebView,实现一个兼容 WKWebView 和 UIWebView 的通用 Web 容器框架;
7 月份,系统学习了使用 React Native 技术开发 iOS 应用,记了大量笔记,写了几个小应用;
8 月份,系统学习了 JavaScript 和 HTML 的基础语法;深入阅读了 WebViewJavaScriptBridge 框架的源码,写了一篇详细的笔记;
9 月份,系统学习了 iOS 应用开发的常用架构模式——MVC、MVP、MVVM、VIPER、MVCS,了解了架构模式的演进历史;
10 月份,读完了 《Objective-C 编程之道——iOS 设计模式解析》,跟着把书上的代码都敲了一遍,对常用的设计模式有了基本的认识;
11 月份,学完了常用的数据结构和算法,从栈到图,从三大查找到八大排序,用 Swift 都实现了一遍(一开始想用 Objective-C、Swift 和 C 都实现一遍,后来发现工作量太大了);借鉴 IGListKit 源码实现了一个轻量的数据驱动的列表框架;
12 月份,借鉴 SDWebImage 实现了一个可以在 UITableView 中视频播放的控件;系统复习了多线程相关的知识点(包括 NSOperation、GCD、锁、线程安全问题、Runloop等);
总的来看,相比 2016 年的野路子来说,去年的方向更清晰,学习也更系统更深入,但是存在一个严重的问题就是碰到什么都想深挖,太过于用力,没有抓到重点,导致很容易陷入某个点,在某些地方耗费过多的精力。所以这也就导致了去年在源码阅读的数量上来说,没有完成目标❌。
5.3 Github
2017 年在 GitHub 上总共贡献了 1092 次,接近 2016 年(133次)贡献次数的 10 倍。
这 1092 次,主要贡献在自己的 Objective-C 开源项目、Swift 练习项目、React Native、JavaScript 和技术笔记上了,还有一小部分贡献到了别的第三方框架的 issue 和 pull request 上了。
5.4 阅读
2017 年买了 Kindle,实体书和电子书加起来的话,总共读了 12 本书,也算是完成了去年年初定的目标:
- 《iOS Core Animation Advanced Techniques》
- 《The Swift Programming Language》3.0
- 《Objective-C 高级编程:iOS 与 OS X 多线程和内存管理》
- 《把时间当做朋友》
- 《软技能:代码之外的生存指南》
- 《数据结构与算法分析》
- Objective-C 编程之道
- 计算机是怎样跑起来的
- 淘宝技术这十年
- 黑客与画家
- 剑指 offer
- 程序员跳槽全攻略
数量上来讲,比 2016 年要多得多,但是还是存在一些问题:
- 读书时目标不够清晰
- 读书时没有分级,太抠细节,因为有些书需要精读,而有些书只需要泛读,其实这也跟第一个问题有关
- 技术书籍读的太少
所以, 2018 年主要针对上面三个问题来改进读书计划。
除了读书之外,2017 年读的最多的就是公众号文章了。在 2016 年底时,我做了深刻反思——收藏很多,却从未仔细读过。所以,在去年,我把很多不错的文章都精读了一遍,并且在 GitHub 上整理起来了,针对部分非常好的文章还做了笔记。2018 年还是要把这个好习惯延续下去。
5.5 写作
大约估计了一下,去年写了大概有五六十篇文章,其中大部分是笔记总结,有几篇是源码阅读笔记,还有些是纯原创的(相当耗脑力),总的来说,相比 2016 年,文章数量更多,而且更懂得写作技巧了。
但是,也有需要改进的地方:
- 写一篇文章太费时,总是追求所谓的完美
- 每周至少一篇博客的习惯没有养成
- 中间有一段时间,突然意识到不能为了写而写
- 先有构思、想法,才能有东西写
2018 年,我希望自己能够让写作变成一种习惯,争取成为自己的第二技能。
5.6 英语
去年在英语上并没有刻意花费太多精力,主要以保持为主,跟工作相结合:
- 去了 16 次线下的英语沙龙,现在的口语水平虽然很难再提高一个层次,但是能保持一下,跟老外聊天,还是绰绰有余了(11 月份有次在星巴克碰到两个瑞典的女孩,没想到口语还真派上用场了)
- 基本上每个星期都会去读英语技术文章
- 在 GitHub 和 Stack Overflow 上用英语跟老外交流过几次
6. 生活不止眼前的代码
今年身体感觉明显比前两年好多了,一部分原因是加班少了,工作压力也小了些,另一部分原因还是心态上比前两年好多了。
4 月份时,因为眼睛不舒服,特地去医院体检了一次,最后发现身体各方面都挺正常。
去年熬夜还是比较多,经常到 12 点以后才睡,希望 2018 年能够做到早睡早起。
另外,每周打一次篮球🏀的习惯,基本上还是保持下来了。
Milestone
2017 做了很多以前都没做到过的事情:
- 24 年来,第一次换一个完全不一样的发型
- 参加了 7 次线下技术沙龙
- 毕业 3 年多来,第一次在一家公司从年初待到年尾
- 开始接触理财
- 第一次画一幅完整的油画
展望 2018
2018 年的目标,我不想定的太死板,所以定个大方向:
- 深耕技术(夯实基础、实践进阶),扩大边界(Python、前端、后端)
- 提升认知
- 提高情商
- 让写作(输出)和阅读(输入)成为一种习惯
- 学会理财
- 职业发展上一个新台阶
最后,感谢所有 2017 年帮助过我的同学、朋友和同事们!没有你们的鼓励和支持,我早就丧失了信心!
最后的最后,在已经到来的 2018 年里,我希望我自己能够:
脚踏实地,仰望星空