张鑫
最近融合了JavaScript、CSS、XML多种编程语言的微信小程序开放公测,这意味着程序员们又要投入新一轮的学习和技术比拼中去。
这就是程序员的工作处境,新技术层出不穷,难度有高有低,但对于技术从业者来说,他们要比其他工种承担更大强度的自我学习以及工作压力。伴随年龄的增长,这无形中成了某种职业壁垒。“纯做技术的人做到30岁就干不动了,脑力和体力都跟不上”“某大公司的研发岗基本都通过校招解决,很少对社招开放”—你会听到不少这样的声音。
除此以外,技术分支太多对于程序员们来说也是一个考验—到底应该做“通才”还是专攻某一个领域?如果选择的方向不是市场的热点,那么这条路会不会越走越窄……此类的职业困扰也是很多程序员正在面对的。
相比前三次换工作的经历,王焕这一次明显感受到了年龄带来的影响。38岁的他曾经先后就职于知名外企和国内面向企业级市场的公司,“面试方觉得这个年纪应该已经是公司的技术骨干、相对稳定,不太会轻易出来再找工作。”王焕能感受到对方对自己的业务能力抱有的疑虑。“什么技术都懂一点,经验比较丰富,但又都钻研得不够深入”,面试方对他的这一评价王焕也表示认同。因为从做传统的单机版软件到后来面向企业服务,他所经历的几家公司在业务形式、客户群方面都不太相同,所以个人的技术能力很难得到持续、连贯的提升,“为了匹配互联网的要求自己也经历了几年很痛苦的转型期,才慢慢转过来”。另一方面,虽然求职目标是大的平台级公司但过去他并没有做过针对庞大用户群的项目,再加上稍显偏大的年龄因素以及与之相配的对薪酬的要求,在应聘时这些都不可避免地构成了减分项。
互联网招聘平台100offer针对数据库中有年龄信息的1.7万名程序员的研究显示,随着年龄增长,这些程序员接到的面试邀请数明显下降。这个趋势在他们40岁以后表现得最为明显—邀请数从“30岁至40岁”区间的平均6.6个锐减到2.7个。
客观地说,与年龄相伴而来的职业焦虑并非只有程序员这个群体才会有,很多工种都会有类似的情况。只是在这个互联网爆发的时代,技术的发展速度实在太快,处于一线的程序员感受会尤为明显。大神级别的、61岁的Java之父James Gosling都会遭遇年龄歧视也说明了这一点。
但依然有很多程序员表示乐观。小米网系统组原开发负责人、现在在做数据金融领域创业项目的韩祝鹏看到未来很多工种或将被技术取代的趋势,而程序员难以被取代,会有更好的发展前景。不管是他还是白山云科技的产品副总裁王康都认为,年龄增长能带来更广阔的视野,也有助于形成自己的方法论,对于解决技术问题帮助颇多,套用白强的话来说就是:“很多坑一定要自己亲自踩过才有感觉。”
虽然最终如愿拿到了BAT的offer,但王焕在面试过程中切实感受到了做“精”的必要性,未来他希望更聚焦于数据挖掘方向自我能力的提升,这与新工作也是相匹配的—走技术专家路线是应对的方法之一。
另外,相比只是单纯地接受公司的调配、安排或是职业规划,“现在的技术人员应该更主动积极去找到适合自己的方向或是兴趣点,这对于自身的职业生涯发展会更有利。”美世中国区合伙人曹燕萍告诉《第一财经周刊》。
通过采访在职或已经转职的程序员,《第一财经周刊》想跟你聊一聊程序员的职业困扰以及有什么好的应对办法,放大了看这些办法或许也适用于其他行业和岗位。
A
程序员正在面临哪些职业困扰?
对写代码这件事似乎兴趣有限,要坚持下去吗?
这是不少程序员在工作两三年后遇到的第一个问题。正在做互联网招聘领域创业项目的沈绍平在毕业入职华为时最开始就是做程序员,但他后来意识到自己对销售及市场的工作更感兴趣,就尽快转了方向。
一直走技术路线,还是转做管理或带团队?
做了七八年之后,随着资历的提升,程序员都会面对类似的转型诱惑。公司通常也会给予此类机会,因为后者往往意味着更高的职位、更大的薪酬提升空间,这也被看作保留技术人才的重要途径。不过也有程序员觉得自己不适合做管理,更愿意走技术专家路线。
什么都懂一点VS专长于某项技术,但它有点过时了
如果坚持在一线写代码且有10年以上的经验,可能会遇到一些业务上的问题,有的和王焕类似,有的则完全相反。比如李桢对C++兴趣浓厚,还出过相关的技术书籍,但因为C++已经属于比较老的语言,且不像其他语言那样可以快速入门,面临使用范围受限的问题,比如可选择的岗位局限于后台开发、操作引擎、游戏等领域,他的机会相对偏少。
在最开始转型到互联网公司时,王焕也因为“过时”的问题遭遇到很强烈的冲击。“和以前做软件不同,互联网的使用环境之下会要用到很多新技术,对代码的要求也完全不一样—比如需求高并发的情况下,怎么处理等。”境况逼着他从头学起,比如去开源网站上找解决方案,或是参加技术沙龙看人家遇到类似场景怎么处理等,这也是令他觉得最初转型的3至5年颇为辛苦的一个原因。
面对其他行业新人的竞争,我懂的似乎并不比他们多
技术岗位的高薪酬吸引了很多其他非计算机专业背景的人才。白强在面试时遇到过学金融的、学土木工程的,他感受到了越发激烈的竞争压力。而这也反映在了薪酬状况上。根据美世中国的数据,2016年高技术行业和互联网行业整体的薪酬增长率较2015年都有不同程度的下滑,考虑到研发工程师是这两个行业的核心岗位,可以推断其薪酬涨幅也承受压力。
想跳槽去大公司,但没有匹配的运作大项目的经验
程序员在职业生涯早期,如果跳槽时偏重薪酬的涨幅而忽视岗位内容,这些弊端在35岁之后容易暴露出来。例如,只有垂直领域或是小公司的经历,等到想去应聘大的平台型公司时才发现完全没有拿得出手的面向大规模用户人群的实战经验,这一点往往会构成一个致命的短板。
公司对技术岗位要求更长的工作时间,我匹配不了
“加班太多了”,是白强离职某大型互联网公司的原因。公司有很现实的考虑,因为技术行业的运转速度之快某种程度上直接决定了程序员的工作时间相对会更长,而年龄大的程序员因为有家庭等的考量可能难以接受持续性的高强度工作负荷,“996的工作我肯定不考虑。”李桢说。身体上的负荷也会让程序员感到力不从心,李桢最近时常会有这样的感受,经历了一整天的脑力运动,加完班回到家连话都不想说了。
投入看不到产出
韩祝鹏的观察是,很多时候程序员不能左右产品的方向—那往往是产品经理或是老板决定的,所以某种程度上他们难以看到自己的技术直接产生回报,会削弱从工作中获得的成就感。
心态也是个颇为关键的因素
相比年轻的程序员,你的心态够不够开放、对问题的钻研程度如何,都会体现在解决技术问题时有没有更创新的思路—而这些并不与年龄成正比。
职业心态也会发生改变。遇到瓶颈时,“是继续在竞争激烈的行业干下去,还是找一个轻松的活?”白强给自己设定了“45岁”的退休目标,他认为做技术做到这个年龄就差不多了,之后可以考虑做其他的事情。
B
公司对大龄程序员有怎样的期望?
王康自己也是80后,他接触过的一些应聘者年纪会比他稍长。他发现有的应聘者只知道埋头做开发,并不了解自己的产品—对于受众、产品价值一无所知;或者知识局限于某一个行业,对于其他领域表现得一无所知、缺乏好奇心,这两类求职者他都会果断放弃。
从雇主的角度来说,王康会有针对性地去考察候选者3个方面的能力。
首先,包括项目管理在内的基础知识是否扎实、是否有变通的技巧—保证公司有新项目时对方能很快胜任;第二,对整体架构的设计能力如何;第三,能不能带团队。对于年龄偏大的程序员,公司会要求他们的开发能力是相对系统和全面的。
白强在求职过程中也发现,对方通常都是以一个技术leader的标准来衡量自己是否达标。
但这并不代表程序员都要往管理路线走。在王康看来,学项目管理是为了全面提升个人解决问题的技巧,“因为很多问题不是一个人能解决的,而是要依靠一个团队的能力。”
任何公司都期待员工能有合理的投入产出比。同样是写代码,如果你能写得更快且更简洁、优美,那也能成为你区别于新手程序员的核心竞争力。
C
给予程序员的职场建议
选择好自己专攻的方向
如果把技术比喻成一棵枝繁叶茂的大树,那么在一定年龄之后,找到自己擅长且有发展前景的方向就好比寻找这棵大树上的某一个分支。
不妨借鉴一下过来人的经验。王康分享了自己选择云分发(CDN)的原因,他当时有3份offer在手,其中CDN的待遇是最低的,但他观察后发现,首先在当时,国内相关领域尚处于起步期,蕴含着巨大机会;其次,这是一个随着客户规模的发展就能驱动自我发展的行业,“只要用我的产品的这10个公司的规模在增长,哪怕我不拓展其他客户,都能受这10个公司的带动而不断发展。”他形容这是个“无比美妙”的行业,所以哪怕是小公司他也愿意一头扎进去。
韩祝鹏同样做过类似的职业选择。从最开始做桌面端程序到转向服务器后端的开发,再到聚焦于数据领域,他看到很多问题本质是数据的问题,选择数据这个方向有长期稳定的价值。“这几年前端开发很火,但对于年龄大的程序员却并不是一个理想的方向,因为从长远看,价值不在这个方面。”
所以对于程序员来说,尽可能在职业发展早期就确定下发展方向,可以避免时间上的浪费。
以开放的心态,尽可能拓展自己的视野
这反映的是对行业内外知识的自我学习能力。王康曾遇到过大规模分发的问题,一位同事所选择的一个新的开源项目令他印象深刻。“因为他一直在关注海外解决类似问题的动态,看看有什么新鲜产品,关键时候冷门的东西就派上用场了。”在王康看来,更广阔的视野带来的是更多的解决问题的手法,这是年龄增长带来的一个加分项。
“技术的工作并不是今天做好了明天就能继续做好,它要求你不断进步。”王康认为对于一些人来说这意味着挑战,对另外一些人这正是这份工作有魅力之处。两者的区别,在于从业者本身对行业是否有足够的热情。如果觉得热情并不足以支撑自己去探索这个行业未知的新奇点,转行也不失为一种选择。
形成、输出自己的方法论
学会归纳、总结某一类型问题的解决手法是大龄程序员提升竞争力最为关键的办法。表面上看,他们需要不断地去适配新技术,但王康觉得只要明白进化的原理,学起来并不会那么辛苦。
发展长项的同时,尽力弥补自己的短板
在很多人看来,程序员普遍有点“宅”,有时他们会忽视对自身沟通能力的提升。比如,跟面试官沟通不来,除了可能是对专业领域知识的理解不同,自身的沟通能力是否欠缺?未来要往更高的岗位发展的话,组织能力和沟通能力等都是不可或缺的基础条件。