工作二周年 - 2018 总结 & 2019 计划

这是一篇拖了许久的文章。

2018年年末的时候,创建了标题,打算写一篇总结。后来太忙了,也就忘了。给自己的理由是,2018年还没真过去呢,等春节的时候再写。

2019年1月末的时候,正值春节间隙。组里大多数中国人都回国过春节了。今年我没回去,于是又打开这篇文章,准备开始总结,顺带写下2019年的计划。结果,每次要写的时候,总有那么一两件事发生,也就没动笔。

一眨眼,都三月中旬了。好友发邮件问我,2019有计划吗,计划写的怎么样了,我才突然依然到,这件事,竟然被我一拖再拖,拖了快三个月了。而现在,已经是2019的三月中旬了,这一年的 25%都过去了。

好吧,无论如何,今天我一定得把这文章给写了,哪怕写出来的是流水账。

这篇文章打算讲清楚两家事:

  • 2018年的总结
  • 2019年,有什么计划

正文

2018年,给我的感觉是自相矛盾的。一方面,我觉得过得特别快,真的是忙着忙着,一眨眼之间,就到了年底。一方面,又觉得过得特别慢,有好多事,好多人,掺杂在里面。想起其中的某些事,真的感觉是上辈子的事情了。其实呢,也就才过去一年不到啊!

18年开始于一场始料未及的,公司级别的大裁员。作为底层员工,我也是先在新闻上看到消息的。起初我还不相信,觉得又是外界在黑我们公司,不至于会裁掉这么多人。再后来,公司最顶级的领导发了邮件,确认了此事的真实性。我和我周围的人基本都是应届毕业生,从来没有经历过这种事,一方面,大家都很慌张,另一方面,大家又都互相安慰着。

我已经记不清那是周几了,我们大组的最高领导突然给我们临时发了邮件,说要紧急开一个大组级别的会议,因为没有提前约会议室,大家直接站在他座位附近开就行了。我们这个组当时也有近90号人,于是90个人就全部过去了,围成一个巨大的圆圈。

看得出来,大家都很慌张。毕竟这种大规模的裁员,谁都可能被牵涉其中,就等着大老板公布消息了。

我当时也是十分紧张。虽然心里也给自己排个位,觉得不至于会被裁掉,但还是十分十分的忐忑。最终,老板告诉我们,站在这里的人,都不会被裁掉。。。

好吧,关于裁员的第一课我学到了。
当你在听老板开会公布裁员情况的时候,你已经在这次裁员中活下来了。已经被裁掉的人,是绝对没机会来参加会议的。

老板还是很棒的。他说他理解我们被这件事折磨了很久,现在消息出来了,大家一定很累。所以下午就不用上班了,赶紧回家休息休息吧,他对公司发生这种事很抱歉。

虽然我自认为还是经历过许多大场面的,但公司级别的大裁员,这次真的还是把我吓到了。我当时真的觉得好累。。心累。后悔当时自己为什么选择去了小公司。

中午和同事一起去外面的餐馆吃饭,看到这个餐馆里坐的全部是公司里其他组的人。我们也陆续知道了更多的消息。很多熟识的朋友都被裁掉了,很吃惊。然后在这个餐馆里看到了一些被裁掉的老朋友在和他们组的人吃饭。不知道该说些什么。他们精神看上去也都不错,只是苦笑着。是啊,成年人的世界里,没有卖惨。心里想哭,你也得憋着回家哭啊。

跟一些人告了别,总觉得像是永别。毕竟大家是因为这个公司才认识的。现在一方离开,因为很难会再有联系的机会了。大多数人,基本就在你生命的火车里消失了。

我还是挺难过的。但如今,经历了更多,对这种同事离开的事,早已经没有当年那么敏感了。

自那次大裁员后,公司的股票一路下坡,起先觉得15会是底,后来觉得12也不是不可以,再后来觉得能挺在8也不错,再后来觉得一定要撑在6以上,最后,我已经不看股票了。

如果说在我的第一份工作中学到了什么,除了技术,我感触最大,也是大多数人不懂得的,就是一个公司如果从高处迅速坠落到最低谷,然后再到更低谷。直至看不到任何希望。那个时候,觉得做什么都没意义。反正公司不会因为我今天写得很漂亮的100行代码,而股票涨个1块钱。

一旦公司里的底层程序员开始普遍出现这种现象,整个engineering的文化和质量都会大打折扣。这个时候最害怕的一件事,叫做,谣言。

说某某大领导准备走人了,没希望了。某某大项目根本没人做,大家都在刷题准备跳槽了,没希望了。

这个时候大家的心里往往都是很脆弱很敏感的。听到这种谣言,基本不会自己去查证下,直接就相信了,然后很慌张,接着把这种慌张带给其他同事。由这种谣言带来的慌张,会很快得传递到整个公司,迅速地让心志不坚的工程师缴械投降。这个时候会出现三种人:

  1. 认清现实,赶紧开始准备刷题跳槽
  2. 心里很不安,但又下不了决心走人。就在这里混着,出工不出活。
  3. 依然很相信公司的价值,并且努力干活,努力推动项目往前进。最难得的是,努力鼓励那些在状态2中的同僚们,让他们重拾信心,继续工作。

我看到了很多第一和第二种情况的人。毫无疑问,第三种人,才是这个公司的财富。当年公司处于巅峰状态,多少人抢着进公司,就为了分一杯上市的羹。当时你问谁,都是百分百坚信公司价值的。然后公司上市,股价暴跌,你可以看到,大部分持投机心态的人,已经快速得失去信念,准备后路了。而那些还在努力推动项目前进的人,是真正相信公司价值的人。这些人,公司必须得留住。而我,很不幸,属于第二种人里面工作还算勤快的那一类。

谈完了公司,再来聊下2018年技术的总结。
对于一个小公司里搞反作弊,打击外挂的人来说,技术栈一直在频繁地切换。2018年,我是真的很幸运,每每在最关键最迷茫的时候,总有贵人相助。

年初的时候,组里的大哥需要有人给他做的一个大框架写一个前端。十分幸运的是我拿到了这个机会。于是乎花了一个月时间,学习了解运用React&Redux写了一个前端网站。很多人看不起前端,我以前也是。因为以前写前端都是用Html, Jquery,感觉很蠢。但自从学完了react&redux,感觉这个框架把前端也带入了一个需要逻辑,需要严密设计的世界。写component的时候,真的有感觉到跟写后台也没太大区别。

而且我以前更多关注在客户端的二进制安全上。整天都是跟二进制安全,逆向工程打交道。学习了前端,让我对这个世界的另外一块领域,有了更多的认识,很有趣。

然后就是被组里一个大黑客带着一起开始搞 iOS 安全。写了很多新的信号,打击了iOS端的外挂(signing farm, sideload, jailbreak tweak)。不得不说,这为期三个月的旅程,没有什么大的项目,但每天都是接触许多许多新的东西,学习到了太多很珍惜的关于二进制安全的知识。去年年底买了一本国内很火的刘培庆的 <iOS应用逆向与安全>,翻了一下,发现基本工作都有涉及到,甚至更深入。工作才是最快最猛学习知识的地方啊。

接着,鬼使神差的我又接着组里之前一个少年安卓黑客的项目,继续搞安卓安全。然后我陆续了解到了,root, xposed tweak, repackaged apk, virtual app 等等。这三个月我基本是在单兵作战。但是国内有大批写的很好的关于安卓反逆向的博客,阅读了很多,学习了很多。然后把他们也加进了我们的防御手段中。如果说以前我们是零防御,现在至少是有基本的防御了。

这六个月,我有幸在ios 和 android 安全上,学习,实现并实战。黑客们改变了自己的策略,我们又接着更新我们的防御。一来一去,我们个人的进步非常快。而且最为关键的是,这些安全的知识,是大部分移动app公司都需要的,但是目前会的人极少,网上也缺乏整块整块的知识,只有靠自己慢慢积累,以及实战的经验。

再接着经历过一段不短的迷茫期。后来忙着写绩效考核的报告。在等报告的间隙,选择跟着一个大哥做一个服务器端的项目,本来就打算做个两三周练练手,然后赶紧接着做其他更重要的活。但没想到,这个项目,一做就是三个月。。。目前还会继续接着做下去。这个项目让我了解到了现下最流行的Kubernetes, Grpc, Docker, AWS EKS, Fluentd, cadvisor, service mesh, multi-cloud, api-gateway 等等一大堆东西。好吧,我得承认,后台世界里,新的词汇太多了,跟二进制安全完全不同。搞后台的,更容易装逼一些。至少把这些英文词汇报出来,已经可以把对方吓一跳了,假设对方没有太多专业知识。

对于未来,我其实挺迷茫的。在这个组里,干了太多杂七杂八的活。别人问我做什么的,其实我也根本说不清楚。再往下,也不知道该做些什么可以更进一步。2019,走一步算一步吧。

还有一个感受就是,写代码真的是一个匠艺。作为程序员,我们得有工匠精神。很多人写代码很快,什么项目交在他手里,都能很快地写出来。但是他们只能写代码。很多东西,当时看没问题,过一段时间再看,就是一坨浆糊。我目前也是如此。

这样会给后人带来很多不便,但更多的坏处在自身。你写了十多年代码,如果从来没想过去改进,那么头几年你的代码水平可能会提高,但越往后,你水平不会有任何提升。写出来的东西永远是又臭又硬。你也许觉得写代码的好坏不会影响自己的晋升,但我想说,工作里的很多东西,都是潜移默化的。的确我看过很多位居高位的人,代码的硬实力很差,水平甚至不如我。但是如果这样,那么他们一定在另外一个领域超乎常人,特别强。比如跟外组沟通,比如让其他人信服,比如经常有很多很好的想法,并能推动想法变成现实。

仔细想想你自己,是否在其他领域有极大的特长。如果你和我一样,都是一个普普通通,不善言辞的程序员,那么我觉得,我们一定要打磨好写代码这门手艺,以后才会有晋升的机会。

我也是2018年底的时候,逐渐意识到了这个问题。我写的代码,被一个同组大哥提了很多建议。我才发现,同样一段功能,的确不同的人写出来,完全不一样啊。每次我觉得完美的东西,都能被他挑出许多很不对的地方。我往往只考虑功能,但他会考虑到封装,以后的可拓展性,还有单元测试。这也是我2019需要格外注意并且提升的地方。不能再一味地狂写代码了!

生活里,女朋友终于搬过来跟我一起住了。五年半了,终于不用异地了。
起先我总还是觉得是自己一个人,所以做事的时候很自私。吵架次数多了,我能感受到,我是这个家的顶梁柱,我得对另外一个人负责。我已不再是可以为所欲为的少年了。

现在还是太胖了,这点我很不满意。但是又经常控制不住吃。2019,我希望在这个方面也能改善,多运动!

总之,我对目前的生活还是很感恩的。客观的说,我的运气比其他人要好太多,幸运女神总是在我迷茫的关键节点上,给我指明了路。得继续努力,对得起这份恩赐啊!

2019

2019,对我是很重要的。废话,年轻的时候,每一年都很重要。想想我去年的进步还是很大的,今年自然不能落后。

  1. 工作中,要学会如何让一个项目从idea变成现实,再到如何推进它前进。这是一种leadership. 说起来也很空。但的确,得更多得去选择这样的机会,而不是去死写代码。

  2. 真的要不断地去修炼自己的代码能力。写出更好的代码。这真的是一门匠艺。为此,

    • 要看完 << The Pragmatic Programmer >> 这本书
    • 尊重他人提出的代码建议,不要觉得不耐烦。如果合理,哪怕多烦,也要改。绝对不要着急的把代码merge.
    • 每周要看一篇技术博客,写总结
    • 修炼Java,目前可集中在看 guava 源码。2019要看完。
    • 有计划的话,学习 Go
  3. 健身。每周至少三次,最好四次。
    要在7月份前,体重降到75kg

  4. 外语外语!目前越来越感受到英语对于我发展的巨大限制。可笑的是,来美国这么久,英语依然很差,尤其听力。得主动地找机会去提升。否则真的只会一直如此。希望年的的时候,我的听力可以有很大提升,口语可以进行流畅的沟通。

  5. 2018年总是在搞技术,个人的精神生活很匮乏。所以一定要重新开始看书。没必要太频繁,但每个月都得看完一本书。写读后感。19年争取看完9本书(从三月份开始算起).

  6. 联系 MYSX,看看是否有合作的机会。自己的确在这个领域有激情。

  7. 时刻跟进互联网和新技术的趋势。不要被淘汰。

  8. 跟老朋友,老同事,要维持好关系。

  9. (Optional) 学习一门乐器

推荐阅读更多精彩内容

  • ~取自网路 某天,一个六岁的小男孩睡眼惺忪地醒来,赫然发现自己迟到了! 他从床上一跃而起,没时间刷牙洗脸上厕所,就...
    邝丽君Lisa阅读 203评论 0 0
  • 从第二十遍开始清晰 每一个字每一组词每一句话 隐藏着你心中的田野 从远方来从远方来从远方来 你就是一群孩子 丢掉手...
    鱼虫它阅读 66评论 0 2
  • 记得小时候电视就几个频道,没有有线电视,没有数字电视,更没有可以随时回看的网络电视。中央一台、省台、市台组成了当时...
    公子一小白阅读 60评论 0 0
  • 残化/种族 反馈,和晓芬聊天关于营养,建议多练习,就像刻意练习里知道的专注,反馈,发现问题改进;饮食上不是很擅长,...
    小恶魔和小天使阅读 34评论 0 0