编者按:本文来自微信公众号“程序人生”(ID:coder_life),作者:王晓曼,36氪经授权发布。
据媒体报道,近日杭州有一家公司的领导在某论坛发帖称,自己让人事拒了一位36岁应聘Java程序员的求职者,拒绝他不是专业能力的问题,对这种35以上的中年员工,领导和老板的顾虑太多。
帖子一发出就引发热议,评论区有人指出,楼主说的“性价比不高”其实是中年员工没有年轻人好忽悠了;还有网友以专业人士的身份反驳了楼主的说法,表示35岁以上的程序员对工作的理解要比年轻人好得多,不会制造那么多Bug。
互联网公司"歧视"大龄程序员,已经成了公开的秘密,到了35岁的“天花板”,如果没转入管理层,可能会遭遇巨大的职场困境。
在CSDN重磅发布最新的开发者调查报告——《2020-2021中国开发者调查报告》中发现,只有16%的程序员为30—40岁,40岁以上的程序员占比仅为3%。
据数据显示,41.57%的开发者希望一直在技术岗位上工作到退休。在关于开发者技能达到一定要求后,是否想晋升为一名管理者的问题上,有54.09%的开发者表示想成为一名管理者,仅有9.4%的开发者不想成为管理者。
文章链接:不爱跳槽、月薪集中在 8K-17k、五成欲晋升为技术Leader|揭晓中国开发者真实现状
其实,现实社会中,35岁以上的程序员并不少见,有年薪二三十万的,也有年薪百万的,所以对于是否吃青春饭、大龄程序员是否还有战斗力这个问题,还是因人而异的。
只要自身的技术过硬,不管程序员年龄再大,绝对是公司的重要资产,代码量虽然可能比不过年轻人,但开发效率高、经验老道,这是年轻的程序员比不了的。
程序员该怎么渡过35岁的中年危机?那些工作十年以上的60后、70后程序员都去哪了?带着这些疑问,程序人生采访了3位资历背景相当,且年龄都在50左右的优秀程序员,他们的生活和工作状态能在一定程度上折射出中国目前大部分大龄码农的生存现状,同时也能对那些即将迈入中年阶段的程序员有一定借鉴意义。
在北京有色金属研究总院读研时,郑树新看了Douglas E.Comer有关TCP/IP协议的三卷书尤其是其中的第二卷《TCP/IP协议实现》,觉得网络通信真是一件有意思的事情,这本TCP/IP源码实现是一本面向教学的书,比较容易懂,后来(99年毕业时)就凭借研读过《TCP/IP 协议实现》通过了当时的互联网公司之一(二六三)的面试。
郑树新的工作经历可能比一般程序员要丰富得多。两度创业,在公司当过管理者,最终选择回归技术一线做研发。他认为,从事一些基础性或有些挑战性的技术研究和应用实践,可以使自己一直处于技术前沿,实时把握新技术、新方向。曾经有过两段创业经历,那段过程整体来说还是挺快乐的,虽然最后没有成功。
郑树新说,自己在1999年硕士毕业后进入263工作,2000年设计开发了网页版网络实时聊天室;两年后,和同事开始创业(方标讯业公司),给企业用户构建邮件系统。一方面从事邮件核心模块的设计与开发,以满足企业客户对于邮件系统的个性化需求,当时还比较创造性地实现了邮件防病毒网关等产品;另一方面负责售前技术支持,和同事一起成功『拿下了』国内的很多大型企业客户(比如:北京电力局,广西电力,山东鲁能,招商局集团等)。
在第一次创业失败后加入财经类网站和讯公司做技术架构,主要负责优化改造其缓存代理加速系统,并做一些基础性技术研究;在和讯工作4年后,又在几位老同事的鼓动下,和他们一起创业做数据中心。这期间组织人员开发了企业办公软件套餐,后来还推出了企业级SNS办公社交平台。
第二创业失败后,重新回到毕业时加入的第一家公司(二六三企业通信),从事基础架构方面的工作;又在二六三工作四年后进入爱奇艺,目前从事与网络通信相关的的基础性技术工作。
早在2007年郑树新就参与到开源工作中了,他主要擅长网络通信及服务器编程方面的技术,个人开源了功能丰富的Acl库:https://github.com/acl-dev/acl。这个库可以说是浓缩了他20多年的开发经验,覆盖了跨平台网络通信、多种服务器模型(进程池/线程池/非阻塞/协程等)、常见应用协议(如:HTTP/DNS/Redis/MQTT/SMTP/ICMP/Memcache等)、常见编码(Json/Xml/Mime/Base64/QP/UUCODE等)、数据库支撑(Mysql/Postgresql/Sqlite)等内容。
从业多年,郑树新在做具体的项目时遇也到过不少困难,但确实没有转行的想法。他表示,虽然所从事的工作具有一定挑战性,但非常有意思,具有较强的创造性。
他举例说道,有时本应该聚焦在业务逻辑实现上,结果发现自己却花了大量的时间去写一些基础性的代码,比如有次在一家公司需要实现一个快速认证的项目,期间用到了Redis服务。当时用了官方的Redis客户端库,这个项目完成后统计了一下工作量,最后发现大量的精力(至少三分之二以上)花费在使用和完善这个Redis客户端库上,这显然是不合理的。后来我自己实现了一个完整的、功能强大但使用简单的Redis客户端库,并将这个功能模块集成至Acl库中。
在谈到现在IT技术的发展与自己入行时相比发生了哪些变化时,他说:“可以说是天壤之别,尤其是面向中上层应用的”。底层技术也有很多大的变化,但核心变化并没有上层那么大,比如IPV4技术,现在依然被广泛应用,即使开始往IPV6过渡,但这种升级变化并不会让人感到很唐突。
在99年刚入行时,最大的感受就是技术资源的匮乏(包括开源软件、技术资源),当时甚至为了搞明白 Makefile 的文件格式而苦恼不已,多次跑海淀图书城后发现了一本 AT&T 的 UNIX技术手册,感觉真是如获至宝。
现在互联网发展几十年,各种新技术层出不穷,形成了纷杂庞大的技术体系,各个技术领域更加细分,也更加精深,我们很难在多个技术领域成为资深专家,但打好基础是非常重要的。
虽然郑树新身边35+以上的程序员比较多,继续写代码和管理者都有,但他们在各自的岗位上做的都不错。对于“35岁”这个“魔咒”,他表示,对于在互联网行业从事技术工作尤其是编程工作的人员来说,应该说『35岁』是一个人的黄金时段的开始。
我们首先应该明确计算机编程本身是面向工程的,个人能力及经验积累与其参与项目的数量是正相关的;程序员的工作经验非常重要(不是说一个经验用10年的那种),需要在工作中不断地积累经验教训,进行抽象总结,同时学习新知识,使自己努力成为某些或某个领域的技术专家。
他说,其实他现在没有那么大的所谓中年人的焦虑。原因是他工作(包括创业)这么多年,经历的事情比较多,很多事情是一点一滴做起来的,遇到过很多困难,最终都解决了。
“如果我们平时过多地考虑这些(发展空间,待遇等),反而非常容易使自己陷于焦虑之中,我们应相信回报是与其付出的努力和成果正相关的,机遇确实很重要,但对于『小概率成功事件』,应具备平和心态,关键需要找到自己最大的兴趣点,将其充分发挥出来。”
他认为,会教自己的孩子一些编程方面的技能,但现在不会建议小孩将来做什么(毕竟孩子还小,程序员一般结婚晚),无论其将来做什么,通过编程总能提高工作效率。
黄灯桥谈到,自己一向对新事物比较感兴趣。初一时,学校计算机兴趣班招人,可惜落选了。但在暑假,学校办了一期计算机学习班,报名参加后被计算机中心的老师看上了,后开始了自己的编程之路。
由于黄灯桥在大学是读机械专业的,为了方便找工作,在大学期间考了一个程序员证书,不过好像帮助不大。虽然是大学生,但在当时要转行还是太难了,最后在同学的帮助下进入了计算机行业,他说,“真的非常感谢这位同学。”
在谈起自己刚入行的经历时,黄灯桥表示,那时网络刚刚兴起,而Web开发也在起步阶段。就在这个时候,做了几个项目,对Web开发有了基本了解,而且兴趣越来越浓,就一直在学习这方面的知识。当然,在小公司,不可能只做Web开发,而是什么都得干,也就是现在所谓的全栈工程师,但好处就是在这个过程中学到了很多有用的东西,对以后的工作有相当大的帮助。
从谷歌地图开始,Web交互进入了新模式,开始出现了各种Web开发框架,在对比各种框架之后,最终喜欢上了Ext JS,选择它最重要的一点是不用考虑美工问题,风格是统一的,而且在开发模式上更接近于已经习惯的对象模型模式。
就这样,在不知不觉中,黄灯桥已经使用这个框架差不多10年了。在大家都因为收费问题抛弃这个框架的时候,他依然钟情于这个框架并继续在项目上使用,他说,主要原因还是使用这个框架做开发太方便了,开发速度也符合预期,做出来的界面也不差。
他说,自己在30岁前一直在寻求转行,不再写代码了,但又找不到合适的机会和职位。30岁后,由于长期是在家办公,所以转不转行就无所谓了,能干的活就干,不能干的活就转给别人,能维持生活就行了。
当初为了能接多点活,曾尝试过学习APP开发等各种新兴的东西,但发现这些活都不太可能给一个新手去练手,就放弃了,还是坚持深耕自己熟悉的领域,最终的效果感觉还是不错的。
与刚入行时的IT环境相比,黄灯桥认为,现代的IT技术感觉是越来越傻瓜化了,譬如现在做一个项目,要数据库分库、分布式等等,都有现成的东西可以用,而在早期,什么都要自己去实现。“我现在这年纪,还在一线写代码,也不觉得有什么特别大的困难,还能工作到退休。如果还是按以前的那种模式,我觉得我不会再写代码了。”黄灯桥说道。
虽然自己身边35+以上的程序员不多,大多转管理或者转其他行业去了,但他认为,目前国内IT公司对待35+程序员的态度,还是不算太友好的,“如果是自己单干,我觉得问题不大。”
对刚入行或正对自己职业发展之路迷惘的程序员,他建议到,“在公司上班的,还是练好本领转管理吧,在国内公司暂时没看到太多太好的出路。如果要自己单干,那就要有朝不保夕的心理准备,而且心态一定要放宽,因为收入是极其不稳定的。无论路怎么走,永远提升自己是最重要的,也就是要活到老学到老,这是做IT的必须有的心理准备。”
在谈到目前自己是否会有工作上的焦虑时,他坦然说道,工作的焦虑肯定是有的,尤其在买房后的压力不是一两句就能说清楚的。房贷还完后,心情太美好了,不用再太过担心失业、中年危机等等了。现在的状态是,只要能维持生活到退休就行了,不强求太多东西,有项目就做,没项目就当休息,好好的玩游戏。目前唯一的焦虑就是能不能维持到退休。
他认为,如果自己的孩子如果没编程方面的天赋,尤其是没有耐性、没有对新知识的渴望,他不会建议孩子从事这方面的工作,这主要看孩子自己的意愿和喜好。
许向武表示,在IT圈里,70后已经属于凤毛麟角了吧?“我更极端,生于1968年,货真价实的60后。”他在少年时代觉得邻居家会修半导体的叔叔牛得不得了,于是大学选择了电子技术专业。
毕业后分配到一家半导体研究所,两年后赶上定编裁员。当时他所在的部门,除了他一个年轻人,其余同事都属于老弱病残孕,怀着“我不入地狱谁入地狱?”的想法,面对大家鼓励的目光,许向武主动选择了离职下海。从此商海几度浮沉,世事蹉跎终成白首。
离职之后,他的第一份工作是电子产品研发。在设计团队里,他的工作任务除了电路设计,还负责读写一段保存了文本点阵的EEPROM的代码,这段C代码后来被移植到了这个项目的Windows应用程序上。当时微软刚刚发布了MFC库,他说,自己应该是从那时开始喜欢上程序员这个职业的。
进入21世纪之后,机缘巧合之下许向武较早地接触了Python语言,并率先应用于空间天气领域的数据处理,后逐渐延申到子午工程、探月工程、气象卫星等领域。
在学习和探索中总是无可避免地要踩坑,踩的坑多了,自然也就成长了。这些年来,他的工作基本都是基于成熟技术解决应用问题,似乎没有遇到过太大的困难,或者说,当时觉得是天大的困难,过后想一想,也不过是一“小水洼”而已。他举例道,如果一定要说出一个难题,那么,风云四号A星的成像仪数据处理算是印象最深的一个吧。当时调度处理流程只给他们预留了3秒钟的时间,而他们最初的测试需要7分钟才能完成。将数据处理时间从7分钟压缩到3秒钟内,算是一个巨大的挑战。
IT技术的一直处于处于高速发展的状态,新的技术、新的概念不断产生,自然也有旧的不断被淘汰。在这个不断发展的过程中,有一种趋势是显而易见的:编程技术的门槛越来越低,专业分工越来越细。
虽然自己在管理着一家小型的软件企业,但许向武一直觉得自己是一名纯粹的程序员。和管理工作相比,他更喜欢技术工作。他说,尽管他的软件公司规模很小,历史却很长,和淘宝同岁,只比谷歌小一岁。“想想也挺惭愧的,布林和马云都已经隐退了,我居然还陶醉于能写几行代码。唉,人生的境界,差距实在太大!”
在谈到自己是否有工作上的焦虑时,许向武提到,也许是生性淡泊、随遇而安的缘故吧,无论在体制内,还是辞职后打工或创业,不记得因为薪资待遇等问题焦虑过。
工作压力大的时候,的确会有一点点焦虑,不过这种焦虑,往往能激发出不知疲倦忘记饥饿近乎“走火入魔”的工作状态,最终转化为成就感。工作几十年,他始终坚持生活第一、工作第二,从来没有把工作置于家庭之上,工作团队也一直实行955作息制,所以不存在“如何平衡家庭与工作”的问题。
虽然他身边的或者接触到的35+的程序员不在少数,但他们中的绝大多数,似乎并没有因为经历了所谓的“35岁这道坎儿”而发生什么变化,写代码的还在继续写代码,写PPT的还在写PPT。
在谈到35岁职场危机时,他表示:所谓“35岁魔咒”,也许是这个年龄段的程序员群体在集体贩卖焦虑吧?一个群体如果足够大,又拥有发声的渠道,就很容易生成群体意识。
如果18岁的年轻人不是因为要面对高考,如果50岁的中年人不是因为要面对来自父母衰老和子女成人的压力,他们说不定也会制造出“35岁魔咒”和“50岁魔咒”的概念。不要轻易被所谓的主流意识同化,始终保持独立的思想、批判的意识和学习的动力、开放的心态,你会发现35岁的你和25岁的你,除了经验更多、能力更强、收入更高之外,其他基本没啥变化。
“我女儿今年毕业,正面临就业方向的选择。我给她的建议是,不要羡慕互联网企业的高薪,最好选择按照正常作息时间上下班的职业——不管是软件开发,还是其它什么工作。工作是为了更好的生活,不能本末倒置。”许向武说。