37

程序员年后离职跳槽指南

 5 years ago
source link: http://www.cocoachina.com/programmer/20190215/26338.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

最近有一些同事离职了,话说离职这个东西确实会传染,离职也是我们程序生涯的重要一环,工作差不多 5 年,换了三家公司,也呆过不少小作坊,也呆过大厂,感觉大家会容易忽视的几件事。

上个月有个同事毕业三年多,他一直做的 Android 开发,在我看来三年左右做到本科 5 年的成果,已经是很不错的。最近突然离职,让我很意外,他告诉我他要选择区块链行业,去博一把。

因此我不得不今天最用心地聊聊离职和跳槽!

为什么离职?

1. 薪资不到位

由于随着加入司龄的增加,互联网工作的人,薪水就会低于市场,甚至落后一大截,这是很多人跳槽的根本原因。这种一般是工程师比较常见。

2. 干活憋屈了

薪资到位了,但是每天干的活感觉不如毕业生做的,都是体力活,每天重复一样的东西,很多人就会出现反抗情绪,觉得这种活太 Low,不符合自己的“段位”,就会选择离开。初创公司,外包公司的员工一般这种心态多。

3. 加班多

程序员这行业加班是常态,我之前也发表了一篇文章,《我喜欢编程,但讨厌这个行业》的文章,我在文章提到绝大多数人是喜欢编程的,但也很厌烦持久的加班,所以一旦时间累积,就会导致大家跳槽。

4. 技术无法提高

虽然做的东西是比较有难度的,但是每 2 个月换项目,或者换模块,也会导致很多人对做过的东西无法充分吸收,导致了大家其实啥都会,但是啥都不会的错觉,因此这种状况久了就会产生离职的念头。

5. 厌恶领导

很多时候,程序员会出现讨厌上级的心态,上级的无能,上级的偏心,也会使下属产生想法,这种情况也会导致员工离职。

6. 发展受限

工资到位了,技术也能提高,加班也不多,关系处的不错,但还是有些人会离职,这就是这个人职业发展受阻,一般是由于公司架构稳定,项目成熟的情况这种原因很常见,因此这种离职的人群一般分布在资深工程师以上居多。

如果上面有一条存在,可以忍受,2 条以上就需要观望机会,3 条以上那么必须要果断跳坑了。越久对自己职业发展收影响。但是还是看你目前的现状选择合适的公司是最为重要的。

离职前需要注重哪些事?

既然离职和跳槽其中的一个原因是薪水无法符合预期,那么首先要搞清楚的就是收入是由什么决定的。

1. 积累

首先要说的一点就是:积累。积累就是你在这家公司所创造的价值的积累。

你今天所领的薪水,并不是由你现在所创造的价值所决定的,而是包含了以前一段时期内其他同事所创造的价值。举个例子来说,如果你们公司是做软件技术服务的,公司目前排名前三的大客户:客户 A、客户 B、客户 C。

  • 客户 A 是 2013 年接下来的,现在每年为公司贡献 900 万。

  • 客户 B 是 2014 年接下来的,现在每年为公司贡献 1000 万。

  • 客户 C 是 2015 年接下来的,现在每年为公司贡献 750 万。

同事的年薪是差不多是和我一样普通本科的两倍还多。可他也承认,他现在所能创造的价值,和他的能力绝对不可能是我的两倍。可问题是:2013 年、2014 年、2015 年这些年份他都在公司,上面的每一个大客户,都有我的贡献。而你 2012 年才新进公司,你并没有之前的积累。所以,新员工入职后,工资相较老员工会低一些是正常的。

很多新员工总是认为自己的收入低了,吃亏了,实际上,很多情况下,新员工在加入公司的头一年,公司仅能维持平衡,即新员工创造的价值全当工资发给他了。直到第二年,有了上一年的积累之后,公司才有所盈余。而加入半年就离职的员工,对公司来说基本上是亏本的。这也就解释了为什么人员流动特别快的公司活不长,因为人力成本太高。

跳槽的话显然就要放弃先前的积累。比方说,当你跳槽到另一家公司以后,你曾经做过的系统、曾经服务过的客户仍然在为先前的公司创造着利润,可是跟你已经一毛钱关系都没有了(极少数公司有股票,另当别论)。所以跳槽之前要慎重考虑,跳得不好,有可能越跳越差。

既然新员工相对于老员工来说,收入低一些是正常的,那么老员工工资高也是合情合理的。但是有一些公司,我将其归为“无良公司”,它们会在老员工的收入高到一定程度的时候,将老员工砍掉,然后再招募低廉的新人来承担之前老员工的工作,以赚取更高的利润。我觉得这些都是小聪明,最后的结果就是,聪明能干一些的人,在看出公司的这些伎俩之后果断离职;能力一般的员工,也会把你这里当成培训基地,翅膀硬了就飞了,受损的最后还是公司,实在是得不偿失。还不如厚待老员工,也让新进的员工对未来有一个更好的预期。

也有一些人向我抱怨说:“老员工待得久了,干劲都被磨光了,每天都是混日子,还不如新员工,不开他开谁?”。然后我反问他:“激励员工难道不正是你工作的一部分吗?”。这种情况的出现,更多时候,是管理者的责任,而非员工。

最后补充一点:我并不认为老员工工资比新员工高就一定是合理的。当公司对一个新员工开出很高的工资时,其实是出于这样一种期望:他能推动公司进步得更快。而如果他真的这样做到了,公司进步得更快了、收益更高了,可以反哺老员工,从而公司的整体待遇水平都提高了,不是皆大欢喜吗?可能一些老员工并不能明白这些,所以,当招一个新员工工资水平远高于现有的老员工时,为什么要这样做,最好能让老员工知晓。

2. 老板

这个“老板”是宽泛的老板,不一定是公司最大的老板。有的时候,公司比较大,你的职位又比较低,大老板连有没有你这个人都不知道,此时的老板就是你的上司。很多时候,你的收入与他也有着很大的关系。

对于我来说,我的原则是,如果我是老板,在我的能力范围内,我会为我下属争取更好的待遇。看起来这样做很蠢,花 6000 块就能雇到一个人,为什么要花 8000 块?我认为,我期望能和我的员工形成这样一种互动:我尽我的能力为你争取好的待遇,你也尽你的努力做好工作。

我不能要求员工“你先把工作做好,我自然会给你好的待遇”。总是要有人先迈出一步,总是要有一方先信任另一方,所以在你什么还没有做的时候,我就先信任你,并且给你尽可能好的待遇,那么我该做的事情都做了,我问心无愧,剩下的,就看你的表现了。

3. 门槛

除了积累和上司两个决定因素以外,第三个决定因素就是你从事工作的门槛。为什么街道环卫工人的收入很低?为什么坐在前台收发快递的文员收入很低?因为这些工作的门槛很低,门槛低就意味着你不做有的是人能做,你不做有大批的“后备队伍”在等着做。由于庞大的后备队伍的竞争,你就无法提高自己的要价。而提升自己所从事工作的门槛,实际上就缩减了竞争者的规模。

程序开发也是一样。如果你想收入高,你就做一些别人做不了,又有市场的。机器学习是高的一种,.NET 在程序开发中就属于门槛比较低的一类。个中原因我想大家都懂的,就不在这里赘述了。做.NET 不需要你科班出身,或许一点兴趣再加上一点时间,或许一个类似某马的培训,都可以让你开始从事 .NET 开发了。你可以不懂指针、不懂数据结构、不懂算法、不懂汇编、不懂很多东西,但照样可以做出一个.NET 程序来。而这些人往往又是对薪资的要求没那么高的,这样无形中就拉低了.NET 程序员的“身价”。.NET 的易学易会,很大程度上是由于它的封装性比较好。底层的东西都屏蔽掉了,你只要知道学习一下命名空间,然后寻找相关的 API 去调用就好了。记得实习的一家公司曾经开发过一个基于 C 语言的手持设备程序,没有任何的类库支持,连排序、链表这样.NET 中的基本功能,都要自己来实现,更别提内存管理和程序逻辑了,和 .NET 比起来,门槛就相对高一些了。

所以, 如果想收入高一些,那么就去做更高难度的技术工作 ,这里随便想了几个例子:

  • 百度、谷歌的搜索引擎算法。

  • 微软、谷歌、苹果的操作系统。

  • 网络游戏,例如《阴阳师》的游戏引擎。

  • 大型企业的 ERP,比方说 SAP。

  • 3D 图形图像。AI 和 VR。

所以,从这个角度来看,这位同事的辞职是明智的,他很年轻,有的是机会重新选择自己的道路,所以我也祝愿他能有更好的发展。

4. 平台

有个段子说“35 岁要么财富自由,要么跳楼”,话错理不粗。很多程序员觉得 35 岁就瓶颈了,35 岁写程序就到头了,实际上,这只是你的平台比较小罢了。就拿我自己的公司来说,平台算大,只要是踏踏实实工作过 5 年的程序员,基本上就能够胜任公司 90%的技术工作了,剩下的 10%,请教一下其他同事,进行一下技术交流,也完全能够解决。

这样就存在一个问题:随着你年龄的增长,你的生活压力越来越大,要求越来越高,可是公司只要 5 年经验的程序员就够用了。假设市场上 5 年经验的程序员的平均要求是 15K,凭什么要给你 30K?你的优势在哪里?如果你没有突破,就会有“35 岁写程序就到头了”的感觉。

而如果平台更大一些情况就会更一样,比方说,你去了微软和 Google ,可能 5 年的经验不过刚刚入门而已。IBM 有一个工程院,其中有 5 位院士(IBM Fellow)获得过诺贝尔奖,很多人钻研技术都超过 20 年或者更久。如果你对技术感兴趣,并执着去钻研的话,你可以不断地去挑战和攀登。

当然,你可能没那么好的运气和实力进入 IBM,那么其他一些中型的平台也是不错的,比方说阿里巴巴、百度、腾讯等等。在这里,至少你有足够的理由和需要再去进行深入学习。因为在这些地方,5 年的经验是远远不够的,还需要进一步地学习和努力。

如果处在没有那么大的平台,此时的选择大概有这么几种:

  • 你可以凭借你在公司的积累,过比较安逸的日子。如果比较幸运,押对了宝,公司发展得比较好,收入一样会变得非常可观;如果比较不幸,公司经营的状况不好,那就要承担比较大的风险了。说得难听一点,公司倒闭了你去哪里?你过去的积累已经一文不值,而你的年龄已经 35,水平却相当于只有 5 年经验。你的竞争力在哪里?

  • 你可以凭自己的努力将现在所在的平台做大,换言之,把自己的小公司做大。这当然是比较积极的做法,也是我一直努力的方向。现在你看到的大公司,不也是从小公司一步一步做起的吗?

不过这里还有几个问题:

  • 有的时候,你的力量在公司中的占比没那么大,你再怎么努力推进,速度也还是有限;

  • 你缺乏慧眼,选中的公司本身就缺乏长大的资质。我们往往只看到成功了的公司,却忽视了更多在竞争中倒下的公司。

  • 主动选择更大的平台,也就是跳槽了。但是跳槽也是有风险的,尤其是过了 30 岁的程序员。你在这家公司的收入高,是因为有之前的积累,换一家就没有积累了,等于从新人开始,而大多数的公司,5 年经验的程序员就够用了。如果跳得不好,收入还可能越跳越低,如果还有老婆、孩子、房贷,那将面临更大的压力。所以当你想要从一个低的平台向更高的平台跳跃的时候,平时就要做足功夫,认真积累自己的实力。

对于我来说,我缺乏大型项目的管理经验,但是没关系,每次遇到管理方面的问题我都认真思考仔细总结没什么问题吧?有些人总是抱怨没有机会,运气不好,我想机会总是有的,但只属于有准备的人。

5. 行业和趋势

我想说的最后一点就是行业和趋势。有时候你觉得已经万事俱备了,可是你所处的这个行业本身就属于极低利润率的,你再怎么努力也很难有很高的收入。很多情况下,可能公司也想提高你的待遇,但是由于缺乏利润的支撑,公司也是有心无力。

所以,在选择公司,尤其是小公司的时候,要重点考察一下公司所处的行业如何?是不是前景比较好、利润比较高的行业?如果是大公司的话,这方面的问题就会少一些,因为如果方向有问题,它就无法做成大公司。

比如我目前在做客户端,但是客户端真的没有 2013、2014 年那么火的,只是大家不愿承认罢了。

行业是有周期性的,可能在一段时期内这个行业好,下一段时期这个行业就不行了。最典型的一个例子就是 Java,2012、2013 年 Java 待遇不高。几年以后,Java 待遇碾压客户端了。

选择行业也不是选择暴利行业就一定好,比方说房地产。资本都是逐利的,当一个行业属于暴利,同时所有人都知道它是暴利的时候,危机就来了。这个危机就是会有大量的社会资源、人力物力投入到这个行业中企图分一杯羹。而全局上又没有一个统一的把控,这个行业究竟需要多少公司才是合适的?最后的结果就是过剩。就好像股票在崩盘时,也许跌 200 点是比较合理也比较正常的位置,但是由于人们的恐慌,它就跌了 500 点了。

由于区块链算是新的行业,有很多可想象空间,这位同事离职我不知道结局会怎样,但是按行业和趋势来说也是不错的选择。

6. 身体

身体健康也是我们说的一点,如果你身体不是很好,那么建议你选择舒适的公司,如果选择高薪高强度的环境,最后塞翁失马,现在你用健康赚钱,以后你就会用金钱换健康。身体是你做一切的前提。

7. 平庸

平庸这个词在国外比较流行,意思是告诫大家,程序员不要给自己贴标签,不要给自己设限,也不要被拖延症给拖垮。甚至不要迷信一些阿猫阿狗!眼光要放远。

那些人:

  • 大学时告诉我不要谈恋爱的人,现在娃好几个;

  • 当年劝我不要买房,说老实提高技术的,现在房子好几套;

  • 以前劝我离职的同事,2 年后还在原单位工作,熬走了所有老人,成功上位;

  • 当年告诉我学历不重要的同学,现在已经读博了。

一句:fxxk 没毛病! 庆幸的是我是一个比较有思想的开发,很多东西我不会以别人的思想看眼光去判定。如果你遇到这样的人,那么你需要好好审视和他的关系了,贵人是让你成长的! 而贱人是让你倒退的!

以上我说了几点你为何要离职? 离职和跳槽要注重什么? 甚至一个人的收益不止是现金收入,包括了工资、积累、平台、行业、身体,还有你的不平庸。

题外话,刚需 ,有能力的话,买房越早越好!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK