又是一年毕业季,想来自己毕业也已四载,值此契机,对自己这四年做个小结。一来给自己一个交代,二来也希望能给刚步入职场的同学一些启发。

择业

笔者目前是一名安卓工程师,回想起当年为什么会选择安卓却也没有一个靠谱的理由。我当时在学校的专业是信息安全,本来想的是毕业的时候找一份和安全相关的工作,可奈何找了一圈下来并没有收获心仪的offer,几经纠结之后决定调整目标岗位,改为彼时比较火热的移动端开发。

至于最终为何选择了安卓而非iOS也就两个原因。首先安卓工程师和安全工程师仅差一字,也算是保留了对本专业的一点执念。其次iOS相比安卓来说要求的入门成本比较高,经济实力不允许。

其实同学们的第一份工作很大程度上会影响以后的职业方向,所以对于自己的第一份工作其实是需要深入思考的。我也相信像我这样对工作没有深入的了解而随性选择一个方向的同学肯定不在少数。如果让我重新选择的话我会基于以下几个方面去做决定。

  • 自己是否感兴趣。这一点相信大家都是认同的,但更多的时候这也是正确的废话,因为现实情况是很多同学根本不知道自己对什么感兴趣。所以现在问题又变成了如何判断自己对某一工作感兴趣,这个话题就更大了,有时甚至有点迷。从我的角度来说就是开心就好。可能有的同学会说别和我谈兴趣,我的兴趣就是不工作,这个时候就选一个最不讨厌的吧。

  • 是否有人可以帮助自己成长。这一点说白了就是你身边是否有亲戚、朋友、同学已经在某一行业深耕已久,是不是可以去抱他们的大腿。千万不要觉得这有什么不好意思的,抱大腿不是说让你去走后门,搞一些不正当竞争,而是说他们可以在你以后的职业生涯中给予专业技能、职业规划等方面的指导。

  • 薪资是否有竞争力。通常来说不同的研发岗位之间的薪资差别不会很大,如果A岗位比B岗位事少钱多,那肯定是选择A岗位。但更多的时候是A岗位比B岗位钱多事也多,这个时候千万要注意,刚毕业的几年是个人的高速成长期,这个时候如果一味的追求高薪而枉顾个人成长可能就有点舍本求末了。

  • 行业发展如何。这个点就有点虚了,因为通常来说刚毕业的时候你并没有足够的信息去判断一个行业未来发展如何。老实说我现在也不知道我这个行业未来的发展会是怎么样的,但我相信未来如果AI能够取代人类的工作的话,程序员应该是最后一批失业的人。

每个人的情况不尽相同,每位同学都要结合自身实际情况考虑认真选择第一份工作。

初入职场

选定目标岗位后,我便在学校附近找了一家公司-摩托罗拉,开始实习。

我记得入职的第一天,我骑着自行车往公司赶去,心里那叫一个激动呀。那天刚好赶上了公司工区搬迁,新工区离我入职的工区还有些距离。好巧不巧,那天还一直下雨,直到下班的时候雨都没有停的意思,没办法我只好一手骑车、一手撑伞、背上还背着公司配的电脑就冒雨出发了。骑到半路经过一个上坡路,脚下一打滑,摔了,连带着背上的电脑也摔得扎扎实实。心想着这点实习工资还不够赔电脑的了,万幸的是回到寝室后发现电脑除了角上有点小刮痕其他一点事没有,不得不说戴尔的移动工作站是真牛。

这事到这还没结束,之前淋点雨都没事的,不知道那次怎么了,直接给淋得发高烧了。到校医院一检查,好家伙,直接肺炎了。入职一天,赠送住院2周大礼包,心里苦呀。

出院之后还是得接着实习。你们肯定以为我的工作应该是开发安卓手机应用或者是基于安卓系统做一些厂商的自定义开发,我当时就是这么想的。可是直到我入职之后,我才知道摩托罗拉是有很多业务的,摩托罗拉的移动业务彼时已经卖给联想了,而我实习的分公司是做摩托罗拉的老本行-对讲机,那一刻我的内心是崩溃的:(。值得欣慰的是,我做的是一个调研项目,目的是使用公司管理对讲机的系统实现对安卓手机的管理,所以我的实习项目还算是和安卓挂钩的。

对我而言这份实习经历虽然说不上特别的顺利、出彩,甚至在我的简历上都可有可无,但是我还是实实在在有些收获的。

  • 实习时印象最深的是,我面对那个管理系统的源码,完全不知道如何下手,而我的mentor他却能在不同的文件间来回切换游刃有余。我心想不知何时才能和他一样,事实也是直到实习结束,我和mentor查找代码的速度还是天差地别。但这件事情的收获在于我心里有了目标了,我知道了和目标之间的差距,也就有了努力的方向。

  • 由于我做的是一个调研性质的项目,就是说这件事情的目标是明确的,但是有没有达成的路径并不清楚。所以我在整个实习期间做的最多的事情并不是写代码,而是不断的查找资料,阅读相关文档,这在很大程度上锻炼了我自己解决问题的能力,而独立解决问题的能力对一个工程师来说是非常重要的。对了,说来惭愧,我还是直到实习才知道GitHub。

  • 实习除了增加了自己的工作经验,还有一个很大的优势是他的试错成本很低。前面说做找工作要找自己感兴趣的工作,但其实只有你自己真正体会了具体的工作时才能判断是否刚兴趣。如果在实习的时候发现真实的工作和自己想象的不太一样是可以及时调整方向的。我比较幸运,实习之后更加坚定了自己确实喜欢做安卓开发。

除了上面的这些收获,这段实习经历也同样存在一些遗憾。

  • 由于当时的工位比较紧张,我和其他几位实习的同学其实没有和本部门的同事坐在一起,而是被统一安排在了公司的图书角,再加上做的又是调研项目,这就导致我整个实习期间和正式同事之间的沟通特别的少,自然也就没能了解到项目迭代流程。

初出茅庐

毕业之后我选择了来到上海,我正式入职的第一家公司是喜马拉雅。为什么是喜马呢?因为终面的面试官面试很有趣,感觉人也比较nice,所以面试官真是一个公司的门面。入职喜马时,公司给我的感觉和之前在摩托截然不同。相对摩托,喜马的各种流程都不是很规范,但是却多了很多活力。对了,有一点喜马和摩托倒是出奇的一致,入职的时候同样工位紧张,我和其他两位新入职的同事被临时安排到了会议室办公。

在喜马的这段时间我还是比较轻松的:公司没有996,项目迭代速度也比较慢(1个月发1个版本),每周四还是能同事一起打德扑,这个工作节奏在互联网公司是比较少见的。虽然工作节奏慢,但是我在喜马的成长却远比实习的时候快的多。我从一个职场小白成长为了一名程序员。

  • 第一次发版。如果要在互联网公司的迭代流程中选最艰辛的一天,我肯定是选发版日的。为什么是这一天呢?因为这一天会出现很多bug、肯定要加班。这还不是最恐怖的,最恐怖的时随着发版时间点越来越近,如果你的bug还没有处理好,你的身后站着的人会越来越多。他们有的是关心发版进度,有的是关心bug修复情况,有的则是在帮你一起定位问题。我记得我第一次经历发版的时候也有一个bug,首次经历发版的我哪见过这种场面,那个时候脑子都有点懵了,感觉无法思考。我相信这种问题肯定不是我一个人经历过,在这里我想对新同学说,如果你有幸经历了这种情况大可不必紧张。因为程序是人写出来的,而人本身就是一个特别不稳定的系统。遇到bug,解决bug,总结原因就好了,心态要放平。

  • 第一次凌晨处理线上事故。如果要选一件我最不想看到的事情,那我选择线上事故,如果要选一件更不想看到的事情,那我选择凌晨出现线上事故。我记得那天好像是凌晨4点,我还在睡梦中就被同事一个电话叫到公司处理问题了。这种事在互联网公司虽然不常有,但是如果出现了给人的压力还是挺大的。经历了这个事故之后,我学会了俩件事:第一是jd中一般会加上要求抗压能力强是有道理的;第二是如果你不想凌晨还要回公司的话那么下班后还是带着电脑比较保险。

  • 新的学习目标。上面提到过我实习的时候把我的mentor作为学习目标,希望有朝一日能和他一样做到对代码的操作如行云流水般。在喜马我找到了一位新的学习目标,他最让我佩服的是每次团队里因为技术问题讨论不休的时候他总是能站出来凭借自己的技术实力平息讨论。相信很多同学都会和我一样佩服这种技术大拿,但光佩服是不够的,我们要向这种同事学习,学习他们的工作方式、学习方式。对了,就是这位同事把我凌晨叫去的公司。

新的旅程

在喜马待了2年后我感觉自己的成长陷入了瓶颈,似乎每天都是在重复之前的工作,技术上也没有什么提升,此外想到当时团队比较资深的同事他们都有大厂背景,所以最终我离开了喜马,选择了加入字节跳动开始新的旅程。为什么是字节呢?因为字节的老板和我同名,也算是一种缘分吧。

这里想和大家说的是,大家千万不要盲目跳槽。这里说的盲目是指不要因为工作上的一时问题而选择跳槽,因为这些问题大概率在其他团队也会遇到,此时你要做的应该是分析问题到底是什么,以及如何去解决问题,跳槽是最后的选项。

字节的风格和喜马的比较像,差别是节奏更快了,喜马是1个月发1次版,我所在的团队是2周发1次版。在字节我除了提升了自己的技术能力,还提升了软素质。我从程序员成长为了一名工程师。

  • 为结果负责。在喜马的时候其实并没有要求团队的每一个都制定工作目标,我那时的工作通常都是产品经理说什么就做什么,也不去思考为什么要这么做,这么做会有什么收益。所以我对那时的自己的定义就像是个翻译机,把产品经理的想法翻译成代码。在字节每个人都是有OKR的,每个人都要制定自己的工作目标,这就要求大家在承接需求的时候要去考虑为什么要做这个需求,这么做会有什么收益。同时这也意味着需求的上线并不是结束,需要我们关注线上的数据指标。

  • 简单并不容易。我一开始写代码的时候,通常就是能实现功能就行,而完全不会去考虑代码的可读性是否好、模块间的调用是否合理等功能之外的问题。一开始有人向我反馈说看不懂我的代码时我会认为是他的水平不够,但是当越来越多的人说看不懂我写的代码时我知道是我的水平不够。把方案设计的足够简单是很不容易的,但是这确实以为合格的工程师必须做到的。当然这个道理并不是只适用于写代码,放到其他地方也同样适用。

  • 从0到1。要说在字节最大的收获是什么,我想说的是有幸参与了Resso从0到1的整个过程。在这个过程中遇到的困难太多太多了,多到我都已经记不清。但在整个团队的共同努力下,Resso目前算是取得了一个不错的成绩。我觉得一个创业项目能够能够活下来真是十分不易,其中的艰难困苦唯有亲身经历了才可体会。如果Resso不是背靠字节,而是放在一个小的创业公司的话可能是走不到现在的。

总结

以上,是我工作四年来的一个缩影和一些感悟。希望能与诸君共勉,创造新的故事。