君子藏器于身,伺时而动。对于程序员来说,加不完的班、关不掉的电脑、积重难返的身体负荷几乎贯穿工作生活的始终……在狼性企业文化横行的今天,更是如此。原地滞留只会被动“淘汰”,又何谈“乘风而上”?
所以如果想要在激流勇进的技术浪潮中独占鳌头,在一次次跳槽中实现自我价值的连续升华,不妨看看以下几点建议,什么时候该跳、如何做准备工作、该怎么跳等三个方面或许能够给大家一些启发。
一、什么时候该跳?
+
1.薪资不到位。有些公司很奇葩,宁愿花更多的钱请新人,也不给老员工涨工资,以至于同样的工作经验,新来的人居然工资比老员工高一大截,老员工薪水慢慢低于市场,甚至落后一大截,这叫辛辛苦苦兢兢业业的程序员情何以堪。大部分人需要和周围的人比较来平衡自己,当你发现同行业同经验的小伙伴们拿的钱比你多出一大截子时,你就很难淡定了。
虽然有人说“追求财富不如追求满足,满足才是最大的财富。”可是你的价值也需要通过收入来体现,当收入和自身价值严重脱节时,恐怕满足感、归属感是很难再有了。薪资不到位,这是很多人跳槽的根本原因。
2.技术无法提高,没有成长空间。虽然做的东西是比较有难度的,但是每2个月换项目,或者换模块,也会导致很多人对做过的东西无法充分吸收,导致了大家有了什么都会,但是什么都不会的错觉,因此这种状况久了就会产生离职的念头。
再加之团队里没有高手,连个切磋的人都没,何等寂寞。遇到问题没人能搞定,何等无奈。你的技术之路如何发展,你在公司的职位和等级怎么晋升……从来没有人找你谈过,也没有人真的关心你。有时公司和产品到一定程度,新东西少,老东西多,维护性东西多,你的技术上已经到顶了,不能再进一步,眼看着没机会再挑战了。
技术就如逆水行舟,不进则退。你没有锻炼和挑战的机会,是很难百尺竿头更进一步。当然你可能不做技术,做管理。可一个萝卜一个坑,你上面的人不走,你就没有机会。上面的人还年轻,一时半会儿既不会内退也不会走人,短时间内怕是看不到希望。
凡此种种,不论怎样你都看不到自己的成长空间在哪里。
3.不被尊重,被边缘化。公司不尊重人,领导不尊重人,看不起下属,内心不屑充满鄙夷,动辄横眉冷眼呼来喝去,甚至把你当牲口用,给你头上蒙个黑布罩就想让你拉一辈子磨。
他只当你是一颗小石子,用得着就捡起来,用不到就遗忘在角落。有时你自己觉得很有才能,却总被安排打下手,深深觉得不受重视、被边缘化,有一种英雄无用武之地的感慨,此时也有必要考虑换个能发挥你长处的地方。
士为知己者死,千里马需要伯乐。在不对的地方跟着不对的人,很难做出对的事情,自己也很难由此成长起来。当然,这前提要建立在你真的有才。
因为,怀才就像怀孕,只有足够大时别人才看得出来,你才能享受到相应的重视和特别的待遇。如果在这样严重缺乏尊重的环境,不待也罢。
4.厌恶领导、加班多等等。很多时候,程序员会出现讨厌上级的心态,上级的无能,上级的偏心,也会使下属产生想法,这种情况也会导致员工离职。比如经常性的在某些事项上分歧严重,经过努力也无法调和,那很可能会给你带来比较大的压力和不适,让你心生不公、委屈、厌倦、绝望,感到再也无法待下去了……
程序员这行业加班是常态,绝大多数人是喜欢编程的,但也很厌烦持久的加班,所以一旦时间累积,就会导致大家跳槽。比如你的公司老是没日没夜的加班,晚上十点走都有人给你白眼,而你媳妇又怀着小宝宝,你说这怎么受得了……
如果上面有一条存在,可以忍受,2条以上就需要观望机会,3条以上那么必须要果断跳坑了。越久对自己职业发展越受影响。不管你实际上因为什么原因不能忍受当下的工作,一定要明确具体的因素,列出来,记下来,这样在找新工作时你才能跳过一些陷阱。
二、如何做足准备工作?
+
1. 明确自己的职业生涯方向。什么时候跳槽,该如何跳槽?这真的没有一个正确的答案,但是你需要掌握一个原则:当你打算跳槽的时候,应该把“跳槽成功后,我能学到什么东西?对我的未来发展有什么好处”放在第一位。这些东西才是真正引导你的关键。
另外,不要轻易放弃你目前的工作,除非它真的很糟糕。在跳槽之前尽量“物尽其用”,把手头上的工作做好,最好是完成了某个项目或是得到提升之后再走。对于每一次跳槽,你都需要明确自己的目的和职业生涯的方向。
跳槽不是目的,而是为了达到最终职业目标的手段。当你去面试下一家公司时,回答HR提出的这个问题:“What did you learn or how did you progress your career by making this change?”(你的这一次职业转变让你学到了什么?给你的职业发展带来什么进步?)如果你无法回答好这个问题,那么你的跳槽就是一次失败的跳槽。
2.夯实自身的硬实力。想要跳槽,最根本的,还是要从技术实力锻炼起。毕竟,所有跳槽的前提,都建立在你拥有了夯实的硬实力的基础之上。那么要想成功进入BATJ等一线大厂,应该掌握哪些技术能力呢?
①深入学习常用开源框架
为什么BATJ的面试官总是喜欢问源码?其实我们常用的Spring、MyBaits这样的框架可以说是JAVA里面最经典的教科书,从中你能学习到很多写代码的经验技巧,而去领悟开源框架中蕴含的优雅架构设计之道这才是最重要的。
②高性能分布式系统设计与应用
根据去年双十一日志统计,前端系统有效请求约60w以上的QPS ,而后端cache的集群峰值近2000w/s、单机也近30w/s,互联网大厂的架构师面对的就是这样的生产环境,所以分布式、缓存、消息这样搭建高性能系统的技术必须掌握。
③微服务(分布式服务技术)
微服务架构是一种架构风格,整个应用被划分并设计为以业务域为模型的松散耦合的独立服务,方便横向扩展能力、伸缩性强、便于开发和维护等等这些是微服务与生俱来的优势。
④沟通合作的能力
程序员的战斗,往往不是一个人的战斗,我们如何在一个平台下高效的去重,进行代码review,对功能进行调整、debug,做到在统一的规划下步步为营,混乱的堆代码的过程中找到自己的记录。这一切都依赖于有效的工具,Git、Maven和jenkins。
3.制作好简历。简历是什么?它不是人生履历,不是项目清单,也不是技能大放送。简历的存在只有一个目的——帮你约到面试。只要能达到这个目的,简历可以是一段视频,一个开源项目等等。
当然,绝大部分简历的形式,就是我们所熟知的,是一篇按照相关格式填写的文章。越是好的职位竞争越激烈,光介绍你自己是远不够的,要推销你的自己才能。
一份好的简历,要低调的告诉招聘方,我很厉害。那么,如何才能低调的展现呢?不光要说明事实,更要通过FAB法则来增强其说服力。Feature:是什么;Advantage:比别人好在哪些地方;Benefit:如果雇佣你,招聘方会得到什么好处。
写简历和写议论文不同,过分的论证会显得自夸,反而容易引起反感,所以要点到为止。这里的技巧是,提供论据,把论点留给阅读简历的人自己去得出。
论据要具体,最基本的是要数字化,再好点的论据要让人印象深刻。例如每天PV8个亿,这是数字化;访问量超越Google App Engine,这是让人印象深刻。
三、该怎么跳?
+
1.不要只简单的追求高工资。18年前,谁也不会知道入职阿里巴巴的那些工作人员会成为千万、亿万的富翁,也不会知道自己现在会有上千万的身价,有一句话说的非常好:放长线,钓大鱼。
如果公司的环境非常好,工作又非常适合你,对你今后的发展也有不错的前景,公司也有上市的可能,此时可能就是工资稍微低点不可怕,你可以适当向老板提一次涨工资的事宜,综合考虑过后,结合自己的职业规划,再想是否跳槽。否则你的损失可能会很大,如果你仅仅就是想在大城市多赚点钱,过几年回老家重新择业,你追求高工资无可厚非。
2.谨慎挑选,知己知彼。找工作时,求职者容易广撒网,海投简历,这样是低效而不负责任的。挑选几家目标公司,有针对性的准备简历。
现在的信息相对较透明,自己要通过各种渠道收集应聘公司的信息,主动了解目标公司的情况,这样才能争取到更多机会。当HR打来面试邀请的时候,很多应聘者会一口答应。不是收到面试邀请就要去面试的,先不要忙着答应对方,而是要详细地了解一下,知己知彼,方能百战百胜。
了解面试的是什么岗位,岗位职责再详细问一下,分析一下这个职位与你的期望是否相符。
3.最优途径——人脉。在求职过程中,信任是非常重要的,原本冗长复杂的人才筛选和鉴定流程,因为信任,可以简单。所以人脉推荐是最好的求职渠道,没有之一。
如果你要换工作,第一时间是找了解你的朋友,问问他们公司有没有好的机会。
如果你在大公司待过,离职员工群是一个机会非常多的地方。尽量不要找不认识你的人做推荐,这样没有背书,和你直投的效果会是一样的。
另外,如果时间能够挤得出来,建议至少一个季度要挑 1-2 个心仪的职位去面面,看看外面的技术要求是怎么样的,面上了如果机会还不错,那么也算是了了自己的一桩心愿;如果面不上,也可以顺便了解一下业界的最新动态,反过来可以给自己接下来的道路树一盏明灯。
总结
+
职场老司机们常说:找工作就像谈恋爱,合适才是最重要的。其实离职也是如此,既然不合适,那就“一别两宽,各自生欢”,好聚好散才是正解。
但跳槽换工作是件非常重要的事情,它直接影响你1-2年,间接影响你3-5年人生。一个潜在的机会会让你少奋斗很多年,而一冲动的离职,会让你和千万财富错失交臂。
换工作不是一场说走就走的旅行,而是一个深思熟虑的结果,是一项复杂的系统工程。所以建议大家每次换工作花一到三个月来准备,不要嫌麻烦,只要试一次,你就会知道这是值得的。
最后说下,没有一蹴而就的事情,很多事情都是水滴石穿,建议大家工作之余还是要保持学习的状态,比如关注一些技术社区、知名的技术公众号,了解业界最新动态,或者选择培训机构进行系统学习都是不错的选择,时刻准备着总不会出错!