转眼到这个二线城市已经一段时间了,看着手机推送的关于北京的某某新闻,忽然感觉到曾今奋斗(打工)的城市已经离我千里之外了。

回想从毕业到现在自己的一些变化,技术上从几乎啥都不会到现在会写一点代码,心态上从非常迷茫焦虑到现在有自己的节奏,头发从毕业的茂盛浓密到现在的欠茂盛浓密🤣,这些年的经历,还是需要写一篇文章来回顾一下的,里面涉及到程序员面试以及职业规划相关的东西不一定适合每个人,感兴趣的朋友可以和我讨论。

本文有两条主线,一条是时间线,一条是我的个人计划线。

刚到北京

大学毕业我就直奔北京,开启了我的程序员打工生活。

聊聊刚毕业这家公司吧,这个是一家做计算机视觉和AI的创业公司,如果是计算机视觉行业从业者,应该可以猜到这家公司的,主要以人工智能和安防为主。

我当时为什么选择这家公司呢?一方面是因为给的薪资确实比较高,在那会儿就已经给到了很高的月薪,对于刚毕业的学生来说确实是一笔巨款;另一方面是当时这家公司还是有一些牛人在的,而且也给了一点期权,整体看来还是有发展前途。

在这家公司我做的事情就是做安防系统,也就是中后台系统,面向B端用户,在这家公司我还是很快乐的,实习的时候就拿了最佳实习生的奖,年会抽到了当时华为最新款手机(从那以后我再也没抽中过大奖😅)。技术上从最开始的实习水平,到后来也可以独立做项目,也做过面试官,总体来说,过的还是很顺意的。

但是,我发现我做的事情熟练之后,和大部分程序员做的事情一样,既没有后端大流量高并发,也没有比较深入的前端技术探索,而且最重要的是业务并没有像我预先想的一样逐渐做大,很多大牛也纷纷离职了。

这是我的第一次危机感,也是我第一次跳槽的原因。

从决定跳槽开始,我就在思考两个问题,第一个是我要去哪些公司,第二个是我要准备什么内容。

关于第一个问题,因为我经常混迹于互联网社区和论坛,在知乎、掘金、v2ex等等地方对国内公司的情况也有一些了解,所以我把范围划定在第一、二梯队的大公司前端岗位。

关于第二个问题,我搜索了很多面经和招聘启事,也找了一些大公司的朋友问,最终把准备范围划定在这几个方面:前端基础知识,前端框架/库原理,项目经验,数据结构与算法。

划定范围之后,就开始了我的准备跳槽之路。我的规划是每天下班之后学习1到2小时,周末学习5个小时以上,工作中也积极的总结业务流程以及项目的亮点,准备面试的过程中非常的辛苦,经常下班后会学到12点以后,并且周末也很少出去玩,过程中还伴随着焦虑,终于在准备了一段时间后,我开始面试了,这也是我的第一次跳槽。

在刚到北京的这一段时间内,我还定下了自己的个人计划。从我了解到北京的房价、户口、学区等等问题之后,我就断定我以后不会长期在北京发展,因为定居的难度和压力是很大的,人没必要把自己弄的那么累。

既然不在北京发展,那去哪里呢?因为我老家是西部的,综合工作机会、买房难度、离家距离来看,最终选择了某西部二线城市,于是,我的个人计划就开始了,计划的目标是在三年后定居这个二线城市。

两次跳槽,定居某二线城市

第一次跳槽面试的结果很出乎意料,因为不知道自己的水平究竟怎么样,所以这次跳槽我把能投的公司几乎都投了一遍,没想到大部分面试都很顺利,并没有事先想的那么难,拿了大概六七个offer吧。这样的结果对于当时只有一年半经验的我来说,是一个非常大的惊喜,事后我还写了一篇面经贴,也认识了很多朋友,面经贴在这里寒冬中的一年半前端跳槽, 感兴趣的朋友可以去看看。

最终在所有offer中我选择了某跳舞厂,因为在我看来这是一家发展迅速并且具有旺盛生命力的公司,这也是当时的我结合自己情况做出的最优解。在跳舞厂工作的经历是充实和开心的,这里的工作体验和第一家小公司是完全不同的。

首先,身边的同事平均水平都比较高,在这里我也感受到了团队合作的快感,有什么问题大家可以一起讨论技术方案和解决办法,互相review代码的过程中也能进步不少;

然后,业务种类比较多,有中后台的、混合开发的、偏C端的等等,只要个人积极主动,都可以获得不错的成长。并且在做业务的过程中,看着身边一些高职级的同事和领导,我对于技术和业务的也有了一些新的看法。

当然了每家公司都是有缺点的,比如加班比较多、干的活太碎太重复性等等问题,相信大部分程序员都会遇到类似的问题。

在这段时光里,我的个人计划也有了进展,比如解决二线城市落户买房问题等等。

时间总是过得很快,在某二线城市的一切事宜都准备好了,而且差不多也到计划收尾的时间点了,终于,我“逃离”了北京,再次跳槽来到了二线城市定居。

个人感想

毕业去大公司还是小公司

我记得我毕业那会儿,有种说法是去大公司都是螺丝钉,去小公司可以得到更多锻炼,但是后来我发现这种说法是有问题的。因为人都是有一个成长的过程的,刚毕业除非是超强的大佬,否则不管是在大公司还是小公司,做的事情都是螺丝钉类的,如果一个公司敢把很重要的事情交给应届生来做,那说明它的人才管理是有问题的。

站在上帝视角来看,刚毕业就加入一家高速发展中的公司并且拿到期权是最好的,比如在14年的时候就加入字节跳动这样的公司,但是这样的机会很少很少,能有这样眼光的人也不会纠结。

所以对于毕业生来说,能去大公司尽量去大公司,首先大公司的培养体系更加完善,包括技术和职场方面的都会有课程和分享;其次是大公司的同事平均水平更高一些,也能对自己带来正向的影响,提高职场上限;最后是我在跳槽和招人的时候发现的,简历上有大公司经历的人会在找工作的时候相对更加顺利一些,不管怎么说这也算是一个小小的光环。

早做职业规划

凡事预则立不预则废,职业发展是需要提前思考规划的,不然很容易会陷入一年到头了然后问自己“我今年又干了些啥?”的挫败感中。

如何做规划?首先需要了解自己,自己的性格,自己的长处,自己的家庭等等问题,都需要考虑到。

如果家庭无法支持在一线城市买房,是不是可以考虑下哪个二线城市比较适合自己,并且早做打算,多观察一下二线城市的工作机会;

如果想在职业发展上有所突破,可以划定一条路线,常见的比较好的两条路线就是在大公司升职级和去发展中的公司拿期权,选择第一条路就需要多去主动承担一些事情并且拿好结果做好汇报,选择第二条路就需要多关注B轮或者C轮的创业公司;

如果个人性格上并不是很喜欢写代码相关的工作,可以考虑是否早做打算转行去做自己更擅长的事情;

总之,一切都需要早做职业规划。

多关注业务和产品

刚毕业的时候,我醉心于技术,后来才发现业务和产品的重要性。框架也好开源库也罢,技术对于我们来说,只是做事的工具,一次次的技术升级、新的轮子的出现,都是为了让我们可以更有质量、更快的做出产品来,如果连做什么产品、为什么做都没弄清楚,那就很容易沦为工具人,这里引用雷军在《程序人生》一文中的一段话:

有的人学习编程技术,是把高级程序员做为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。

一个人只要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。刚开始写程序,这时候学得多的人写的好,到了后来,大家都上了一个层次,谁写的好只取决于这个人是否细心、有韧性、有灵性。掌握多一点或少一点,很快就能补上。成为一个高级程序员并不是件困难的事。

当我上学的时候,高级程序员也曾是我的目标,我希望我的技术能得到别人的承认。后来发现无论多么高级的程序员都没用,关键是你是否能够出想法出产品,你的劳动是否能被社会承认,能为社会创造财富。成为高级程序员绝对不是追求的目标。

把面试当做学习

很多人会因为害怕面试失败而不敢面试,我觉得没必要,我们应该把面试当做一次学习。

首先,靠一个小时左右的面试是很难面试出一个人的真实水平的,因为不可能在这么短的时间内既考察到基础知识又考察到编程素养等等,而且面试官的水平有高低,你很擅长Nodejs,但是面试官只熟悉React不懂Nodejs,那面试的时候面试官只会挑着他懂的问,这就是关公战秦琼,问不出来什么结果的。

其次,面试失败不一定是能力问题。因为我们招人的时候发offer还会受这些因素的影响:当前是否有hc,是否性价比更高,如果是高职级还要考虑有没有坑位等等。

所以,没必要害怕面试,把它当做一次学习和交流的机会,如果有可能一年可以面试一次,感受一下市场行情。

展望未来

人往往会高估一年时间发生的变化,但低估五年时间发生的变化,希望我们都可以做好下一阶段的规划,共勉。


我是耳东,目前在某大厂做前端,我的公众号是「前端耳东」

公众号每周都会更新文章,主要包括:

1、前端技术剖析,不管是新技术尝鲜、源码解析、连载教程,我都会涉及到

2、程序员相关的职场经验,比如程序员如何晋升、程序员跳槽应该注意什么等等

除此之外,还提供以下几项服务:

1、免费修改简历

2、免费技术咨询

3、免费技术规划

欢迎关注「前端耳东」


耳东
766 声望51 粉丝

知乎专栏:[链接]