程序员的2018年终总结

5字数 1383阅读 2202

回顾2017定的目标

写这个文章之前,我看了一下自己2017年年终为2018年定下的目标。

1:两个端能自己实现的库都自己写,不用三方;
2:开发代码只是项目的一部分,把测试做起来,包括单元测试和性能测试等;
3:多看看开源代码,并自己写一些库进行开源;
4:可以用心的处个对象了,也不小了。

因为公司目前的状态,我也结合自身情况考虑了很多,综合之后摆在我面前的只有两条路可以走:

1:在小型公司当技术型项目经理,我心中的技术型项目经理:如果某天团队里随便一个人请假了,那么项目经理会去补位,但是目前我还没遇到过这样的项目经理,我很崇拜这样的人;
2:去中/大型公司当中/高级iOS工程师,目前大部分程序员都是这个路线。

对于第1点,如果选择第一条路,那么Android我是会放下的,会转而学习更多的技术,比如:服务器和Web等,并且今年的10月份开始我已经在参与公司.Net服务器开发,Web会放到明年去学习;如果选择第二条路,那么Android我也是会放下的,因为中/大型公司是要一方面比较强的,Android对于以后的我来说只能算兴趣。所以目标中的第1点我也就放弃了。当时定下这个目标也是自己想当一个客户端全栈,但是我发现网上招聘这样的职位好少,而且通过我2017年一年的实践来看,两个端都开发会有很多的重复性工作,因为我在iOS上实现了某个功能,在Android上我纯粹就是再重复一遍而已,会很烦。
对于第2点,说真的这是一个漫长的过程,虽然我也搭建起了Jenkins但是实施起来非常的困难,我感觉是我们公司技术实力和软件工程观念的问题,而且一般小公司也会弱化需求、设计和测试;所以第二点我觉得不是靠我就能完成的,需要我们项目经理带动大家。所以目前第2点我还做不到。
对于第3点,我在今年的4月份到6月份看了RunTime、RunLoop、GCD和AutoReleasePool这些Core层源码以及AFNetWorking、SDWebImage、MJExtension和IQKeyboardManager等我们项目中使用的库源码,并且自己也学到了很多。
对于第4点,我只能算勉强完成,收了个"徒弟"。
所以2017年终给2018年定的目标我勉强完成了2点,废弃了2点;总的来说给自己打个及格吧。

2018的得

今年我得到的主要有三点:

1:意识到自己可能在走错误的路,但是我及时的意识到了;
2:iOS的基础增强了很多;
3:数据结构、算法和设计模式这三项软件工程基础,我前两项增强很多。

对于第1点,我之前经常在说你能成为什么样的人和公司有很大的关系;16年5月到现在我在这里待了2.5年了。刚开始公司的氛围很好,全公司也处于一个很忙碌的状态,所以我定下的目标是以一直待在这里的前提下定下的。但是今年来看公司似乎在走下坡路,而且很难挽回,这时候我再想想自己这2.5年所做的一切,如果从增加自身价值为前提的话,我有一年的时间都浪费了。因为现在我同时在做iOS和Android。这一年我只能以自己技能树增加了一个分支来安慰自己。我意识到这个问题是在今年的5月,当时公司走了一个顶梁柱,我仿佛看到了自己在这个公司的结局。
对于第2点,因为公司今年的工作计划重心在Web端,所以这是一个机会,我很"机智",我并没有在这个时候离职,而是选择借此机会提升自己。我并不会随意跳槽,我要跳我就要跳好的!所以我在今年的4月份开始我在看之前一直觉得没时间看的东西,前面也说到了是RunTime和AFNetWorking等源码。我收获很多,并且时间不知不觉已经来到了6月份。

对于第3点,这是我今年6月份定的计划,因为看源码也看了3个月了。我开始复习数据结构和算法,这两个确实对自己提升很大。因为我大学也拿过ACM省二等奖,我对算法很感兴趣,甚至我个人觉得算法能区分出程序员的好与坏。我选择的书是软件行业无人不知无人不晓的《算法导论》;很巧合的是,这本书需要离散数学、概率论与数理统计、线性代数和高等数学基础知识。因为我是软件工程专业,而且我大学还认真学了的!所以我看这本书并没有很吃力,反而觉得难度刚好。这本书到目前为止我看了3遍,第4遍正在带我的"徒弟"一起看;为什么要选择带一个人一起看?因为自己懂并不是真的懂了,你需要把别人也讲懂才算懂;另一个原因就是一个彩蛋了。在看了2遍后我开始做LeetCode,在这里我贴几张到现在为止我的成果。
2018最后一次周赛全国排名
这是今年最后一次周赛,参与的人比平时多了1/3,因为积分奖励非常丰富,这一周我得的积分有今年半年那么多(因为周赛是按全球排名发积分的,我每次都只能得5分。。。);但我依然能够保持全国前30的成绩,因为LeetCode的周赛不出意外我每周都会参加,每周的成绩平均下来我都能达到全国前30。
今年的提交记录

LeetCode上的题目前我只有150道题没做了,半年以来这些题有95%都是自己做的,还有5%我实在没思路,就看了答案并学以致用。从第二张图看我确实是从6月开始复习的数据结构和算法。这个提交记录大家可能看不出啥,我这么说吧:这个提交的力度大概需要你这半年来上班时间每天有5个小时在做题,由此可见今年公司的任务重心确实不在客户端,所以我抓住了这个机会good good study!day day up!!


这个排名28虽然意义不大,但是我还是不要脸的贴了。竞赛我今年6月开始参加了28周,也就是6个月。刚好也应证了我是从6月开始认真的学习数据结构和算法。至于评分确实有点低了,但是我确实努力了,明年争取上升到接近2000吧,因为我看全国竞赛第一名有2375分,2000分能到全国前三十。以下图是在我写文章时截的图。
全国竞赛第一名,偶像!
全国竞赛第三十名!
不管怎么说,我对这个结果还挺满意的,数据结构和算法我也会这样一直学下去。

2018的失

因为自己今年基本没做啥iOS的东西,所以失去的大概就以下2点:

1:iOS的技术确实比别人少提升了;
2:自己学习数据结构和算法的成果明年才会看到。

2019的计划

文章开始说到自己只有两条路可走,目前我选择了第二条,这也是为什么我会在4月份开始看源码、数据结构和算法的原因。
所以我2019年的计划如下:

1:1月到3月我用3个月的时间准备iOS知识,数据结构和算法先放一放,等iOS知识准备好了再回顾一周数据结构和算法,然后跳槽。

为什么会定第1点呢,因为我今年年中也尝试过跳槽,但是我想去的公司我连简历都过不了,可能因为自己学校不好而且也只有两年经验,因为我才毕业两年。明年我可以写三年经验,是一个好的时机。
2019年计划不定那么多了,因为这一点难度很大!

推荐阅读更多精彩内容