2018 年上半年总结
没想到时间过的是越来越快,2018 年已经过去了一半。回过头来看看,这半年实现了一些小目标,也有做的欠缺的地方。
一、技术
程序员,技术肯定是放在第一位的(为工作操碎了心 [捂脸])。
年初给自己定的目标是,完善整个 iOS 开发的知识体系,然后找一个更好的平台去发展。
在去年 10 月份的时候,我就开始投递简历准备到市场上试试水,一开始连面试机会都很难拿到,不过后来不断修改简历,自己到拉勾上投,又找了朋友内推,也算是刷了一把面经,后来甚至还有幸面了腾讯和阿里,不过都不出意料地挂了。
在这期间,我也一直在反省,自己到底缺少什么,静下心来想,才想明白,这世上,要想有点真本事,没有捷径可走,只有脚踏实地地走才能走的稳、走得远。bs 和霜神就是最好的榜样。
快即是慢,不盲目求快,看清目标,找到方向,知道当前最重要的是什么。
什么是靠谱的软件工程师?首先要把必须要了解的基础知识搞明白,也就是基本功扎实,然后再是把事情做精的专业能力。于是我按照 bs 和 bang 分享经验,自己列了个知识体系大纲,从去年 11 月份 开始一直在忙着查漏补缺,从数据结构和算法到 TCP/IP 协议,从 runtime 源码到组件化、再到 JSPatch,最终直到今年 5 月份真正出去面试,总算是有了不一样的底气。
2018 上半年读的源码(超额完成每月一库的目标):
- JLRoutes
- AFNetworking
- YTKNetwork
- runtime
- Mantle
- JSPatch
- MLeaksFinder
看过的技术书(每月一本的目标没有实现):
- 图解 HTTP
- 剑指 offer
- 程序是怎样跑起来的
- 图解 TCP/IP
- 程序员的自我修养
因为这半年没有什么新东西产出,所以也就没有造什么新轮子,这个确实有些遗憾。
有一个我自己也很困惑的地方,这半年基本上没有什么有质量、有思考的博客输出。我自己分析,一方面可能是因为这个阶段不同于一两年前初级水平的状态,稍微有点小收获就写个博客,所以现在的输出阈值变高了,另一方面,也没有什么有难度的实战经验,大部分遇到的问题都可以在网上找到靠谱的现成方案,所以也很难有新东西产出了。
在新公司的第一个月的工作回顾
6 月 11 日正式入职了新公司,新公司的项目特点主要是:用户量大、开发团队人数多、队友都比较给力、业务基本成熟、工具链成熟。所以这里基本上不加班,也没有什么有难度的任务,要想有技术成长、不甘做螺丝钉,就需要很强的自我驱动。
这一个月里主要做了以下几件事:
- 熟悉代码、开发流程
- 做了三个小需求
- 进一步系统学习了 git 的使用,对分支和一些高级操作有了更深的理解
- 学习了 Protocol Buffer 在 Objective-C 的使用,一些实现原理
- 学习了 shell(bash)脚本的基本使用
- 系统学习了 Python3
二、生活
买房
在 4 月份的时候,因为运气好摇到号了,所以基本算是顺利完成了买房的任务了,后面可以安心工作了。
找工作
5 月份忙着找工作,先后面了几家不同的公司,有 BAT,也有外企和创业公司,看到了自己的不足,收获很大。期间全程用英文面了 book.com 这样的知名外企,也算是涨了点见识(他们的 HR 超级 nice)。
这次找工作相对来说面邀率还是比较高的,相比一两年前“iOS 没人要了” 的情况,行情好了很多。我推测主要是两方面原因造成的,一是因为这两年 iOS 开发市场人才供应过于饱和,新入行的少了许多;另一方面原来做 iOS 的那批人,有很多也转到前端和后端等其他领域去了。这其实就是市场规律,市场供需关系决定商品的价值。
从个人的角度来讲,找工作一部分看实力(专业能力、个人品牌),一部分看市场供需关系,还有一部分要看人脉(有好几个面试机会都是靠朋友推荐的)。
健康/运动
还是老规矩,几乎每周都会和朋友去打篮球,搬家后改成每周打羽毛球了。
但是晚上晚睡的毛病还是改不过来,白天上班依然很“疲软”,我甚至以为是自己“对电脑过敏”。直到最近这个周末,才发现睡了懒觉,就一点事都没有。原来根本原因还是因为,白天脑力劳动多,晚上睡太晚,休息不够,结果导致第二天状态很差,但是第二天又晚睡,最终造成了恶性循环,直到周末再充电缓冲一下,然后新的一周又是如此循环。
另一方面,我总是感觉事情做不完,时长感觉有些力不从心,其实在精力管理和时间管理上是有待改进的,需要做减法,把一些优先级低的/投入产出比低的事情放弃掉,只专注最重要的几件事,其他无关紧要的即便没做或者没做好也要懂得舍弃。
阅读
整个上半年就看了 5 本技术书和 1 本非技术书《你的误区:如何摆脱负面思维掌控你的生活》,在阅读方面还是有点低效了。以前总是喜欢逐字的阅读,生怕错过每一个细节。最近才意识到,我对于读书的几个误区:
- 一定要逐字阅读才算读过
- 读一本书一定要读完这本书才行
- 以为读完就是完成任务了,很少写读书笔记,也很少读第二遍
其实我们没必要每本书都要逐字阅读,读书分为精读和泛读。
读书时看目的是什么,如果是学习新知识、开阔眼界,浅尝辄止、泛读即可,进一步有一步的欢喜,没必要给自己很大的压力和焦虑感。
如果是带着目的去读的,比如说要搞明白一个具体的问题,那就需要地精读了,逐字仔细阅读并理解。
从学习的角度来讲,读书不仅仅是把一本书读完, 而更应该是把书上的东西内化,内化的方式有以下几种:
- 输出,比如做笔记,写读后感
- 实践应用,对于技术书籍尤其如此,一定要实践试验
- 好书一定要多读,因为人在不同阶段的知识、能力和经验、理解力不同,每一遍的体验感受都不同。正所谓,书读百遍其义自见。
写作
正如上面所说的,最近半年一直是处于内心困惑的状态,再加上忙着买房和换工作的事情,心静不下来,也没什么有质量的产出。这一点真是遗憾,真心希望下半年能够知耻而后勇。
英语
上半年英语角去的并不多,另外在读、写方面也并无太多付出。希望下半年能保持每周去一次口语角的习惯,每周读一些英语文章,并用英文回复作者。
三、认知/心理
年初的时候在喜马拉雅上订阅了『蔡康永的情商课』,后来又看了《你的误区:如何摆脱负面思维掌控你的生活》这本书,基本上算是摆脱了自卑和负面思维的心理。
但是在心理素质方面还有待提高,主要问题还是在于过于在乎结果,在乎外界的反馈。
在思维方式和认知方面的一些问题:
- 学生思维、被动思维 -> 主动思维
- 完美主义、困扰、纠结 -> 随遇而安、佛性、just do it
- 谦虚?内敛? -> 没必要想太多,太多的自我设想
- 总是在学习,学习,学习,但是到底是否产生了价值呢
四、下半年的目标
- 工作
- 总结一下公司项目中的一些解决方案,并且对比一下业界的做法
- 把一件事情做精,精益求精
- 刨根问底
技术(ARTS 法则)
- GitHub 上造轮子
- 基础知识
- 数据结构和算法
- 操作系统
- 广度
- Python web 开发(能够自己写服务端接口、响应请求查数据库处理逻辑等)
- JavaScript 前端开发(能够自己写一些常见的网页,以及能够使用 React 开发 h5)
- 深度(跟自己平时工作接轨的、具有实践意义的)
- 动态化/跨平台(React Native、Tangram、LuaKit、Flutter)
- CocoaPods 等工具的实现原理
- Xcode 编译构建原理
- 架构
- 性能优化
- 源码
- YYKit
- React Native
- Weex
- GCD
- Runloop
- CocoaPods
阅读
- 书
- 穷爸爸富爸爸
- 奇特的一生
- 计算机科学概论
- 深入理解计算机系统
- …
- readingweekly
- 书
- 写作/博客
- 至少 6 篇技术博客
- 有输入就有输出,读过的接触过的都可以写一写,输入的内容经过自己思考、内化后,尽量输出有价值、有意义的
- 随手写点东西(微博、知乎),内容可以是自己感兴趣和擅长的,比如技术、英语、理财
- 理财
- 英语
- 每周去一次口语角
- 每周读一些英语文章,并用英文回复作者
- 在 GitHub 等开源社区全部使用英语
终极目标
正如《奇特的一生》书中对于柳比歇夫的成就的解释:
坚持他的方法必须有一个前提,你要有一个伟大的目标。
我的大目标是:
- 大前端某一领域的技术专家、架构师、team leader、具备多个技术栈的开发能力
- 成为一个业余 writer,自己写一本书(可能不限于技术领域)
- 成为一名具有专业水准的英语使用者(能够准确地、地道地说出和写出自己的想法,具备无压力读、写文档的能力)
- 终身学习者(日语、韩语、C++、历史、心理学),做一个 T 型人才
1 | <--------------------------------------------------------> |