摘要:该如何面对程序员35岁焦虑症?
Bill Budge(64岁);
1954 年出生,现年 64 岁;
1980 年参加工作,工作了近 39 年;
加州大学伯克利分校,它的计算机和工程世界排名前几;
目前在谷歌从事软件工程师的工作,还在写代码。
64岁老爷爷的补丁
不久前,现年 64 岁的 Bill Budge 老爷爷给谷歌 V8 引擎(V8 是 Chromium 项目的 JavaScript 解释器。如果你现在阅读本文的工具是基于 Chromium 内核的微信版本,那么,你可能就在使用 V8)提交了一些补丁。
我见过 70 后的程序员,但是我从来没见过 64 岁还在写代码的程序员。有着高贵的出生,在基础的软件领域持续耕耘,勤奋(看看他最近一年给 V8 引擎提交的那些补丁的数量),这么一个老爷爷,和一堆 70、80、90 后坐在一起,开发和改进了软件行业最困难的模块之一 V8 引擎,这是怎样的境界?
35岁焦虑?
工作了 39 年的老爷爷,在世界上最伟大的企业里,充满激情地写着代码,维护世界上最困难的模块。当然,他肯定会在退休前的几天继续写代码打补丁,我对此深信不疑。
然而,最近国内出现了很多 35 岁中年程序员焦虑、甚至被裁员的消息。譬如“老板告诉我,超过 35 岁的简历不用看了”,又如“程序员 35 岁之后不转管理只能混吃等死?” 。从表面看,似乎我们的环境(不讨论国企和事业单位)和别人的不一样,我们的环境是排斥 35 岁以上的程序员的。
但是,是否需要 35 岁以上的程序员,不仅和企业研发的产品的知识密度有关,也和程序员自身的知识密度有关。本文尝试着从企业的角度和程序员的角度,也就是供求的双方,来分析这个问题。
提问的能力:如何整理自己的问题,如何有效提问。
搜索能力:面向Google和StackOverflow编程,平时大家都会遇到问题,优秀的人会善用搜索引擎去解决问题,互联网就是个大宝藏池,有时候比拼的就是在池里找宝藏的能力。
保持好奇心:如果遇到一个很奇怪的问题,莫名其妙解决后,有好奇心的人会死磕到底,找出这个问题为什么会发生,以及为什么会解决。
保持友善:无论对同事还是在网上,遇到别人提问的时候,自己知道的,能尽力回答他,而不是在一旁冷嘲热讽。
合作能力:现代编程开发已经不是一个人单打独斗的时代,遇到问题能积极与人交流探讨,而不是自己闷着写代码。
企业的需求和知识的密度
老爷爷所在的 Chromium 团队,工作了很多年的大有人在(部分名单):
除了 2014 年参加工作的 Bence Béky(他是 PHD),其他的工作时间都超过了 10 年。可以看到,老爷爷和他的谷歌 Chromium 团队,对 35 岁以上的程序员是有需求的,并没有所谓的年龄界限。
国内的有些企业,譬如华为也很欢迎 35 岁以上的工程师。企业要做到华为这样的知识密度,光靠人头和资本不够,还需要一代一代人的纵向积累。没有任何理由去相信华为会放弃那些掌握了核心技术的老员工,否则他不可能在知识密集的通信行业做到目前的位置。
关于网上流传的华为辞退部分 35 岁以上的员工,抛开华为的狼性文化,和生存的艰难等因素,这其实是华为对在职员工的再次双向选择(确实也很残忍,这样的再次双向选择在其他私企和外企也同样存在)。如果到了这个年纪,技术没有深厚的积累,也没有走上管理层,那说明员工积累的技术和经验不适合这个企业。
因此,老员工真正要思考的不是年龄的问题,而是知识的密度。
而知识密度分为知识储备和能力素质两方面。
知识储备:
基本的硬件层面知识:知道cpu的组成,内存和硬盘的原理,它们之间如何互相通信。
网络知识:七层模型,TCP/UDP协议。
汇编:最贴近计算机底层的语言。
编译器:知道一门高级语言是如何被翻译,最后在cpu中执行,可与汇编相关联。
基本的数据结构和算法:数组,链表,堆栈,树,图,查找,排序,针对链表,数组,字符串的一些常见算法。
C语言:虽然知乎上不推荐C语言作为入门语言,但是C语言的重要性却不能忽视。作为一门高级语言,同时又能和底层通信,又没有C++的繁琐复杂,可以培养今后对编程的基本感觉。
操作系统:Linux是必须要学习的操作系统,无论是其使用还是原理。
数据库:数据是怎么保存在数据库中的,如何优化SQL,如何设计高效的表结构。
版本管理:在公司里肯定无法避免跟同事合作,而且现在Git基本是标配,掌握好Git的操作,相信我,同事会有很多问题来求助你的。
能力素质:
提问的能力:如何整理自己的问题,如何有效提问。
搜索能力:面向Google和StackOverflow编程,平时大家都会遇到问题,优秀的人会善用搜索引擎去解决问题,互联网就是个大宝藏池,有时候比拼的就是在池里找宝藏的能力。
保持好奇心:如果遇到一个很奇怪的问题,莫名其妙解决后,有好奇心的人会死磕到底,找出这个问题为什么会发生,以及为什么会解决。
保持友善:无论对同事还是在网上,遇到别人提问的时候,自己知道的,能尽力回答他,而不是在一旁冷嘲热讽。
合作能力:现代编程开发已经不是一个人单打独斗的时代,遇到问题能积极与人交流探讨,而不是自己闷着写代码。
每个程序员都有不一样的十年
每个程序员都有不一样的十年
如果说一个木匠做木工很多年了,我们会很自然地认为这个木匠做的东西很好。现在,我们要是说,这个程序员写代码好多年了,是不是差不多就等于变相的贬低人?年纪大的程序员不敢轻易跳槽,招聘单位宁肯低工资招进一个生手,培养半年!也不愿意要一个工资要价高的老程序员,因为你带来的效益不一定比年轻人多。
程序员和企业,是供给和需求的关系。前文从企业的角度分析了为什么有些企业只有 35 岁以下的需求,下面我们从供给,也就是程序员的角度来看这个问题。
前面谈到,企业知识的密度决定了企业要不要 35 岁以上的程序员。撇开那些知识密度不高的企业不谈,就是华为这种知识密度较高的企业,也会选择性的让一些 35 岁以上的工程师离职。这个时候,问题就不仅仅出现在企业本身了(不考虑做了管理或者创业的情况)。
一个原因是,35 岁的我们,所积累知识的深度和广度都不够,因而失去了性价比。35 岁的我们,把知识密集的脑力劳动,渐渐做成了机械的缺少创造性和深度思考的体力劳动。
脑力劳动做成了体力劳动,是技术的快速更新换代、以及社会,个人浮躁造成的。以 2007 年到 2018 年,一个大概的十年来看,这个行业经历了很多热点:新的移动计算平台:IOS,Android,Chrome、HTML5;云计算, IOT;新的编程语言,编程框架;VR,AR,AI。
程序员其实本身更像一个软件车间的流水线工人,只不过入门槛比生产鞋,包、衣服的行业高一样。
这些制造类的流水线培养一个熟练工的时间跟软件行业是一样的,一个包的生产你只负责按照图纸把包的底部弄好,一个软件你只需要按照详细设计把某个模块做好!甚至不需要你了解太多业务。
也就是说,码农其实是个流水线工人,流水线工作量不会减少,但是我们年龄会变老,到了年龄就该被淘汰由新的人代替。
少数醉心于技术本身的人,能够坚守一些相对长期的大的技术方向,看透新旧技术背后的算法和数学物理原理,做到新旧技术融会贯通。因而在每次新技术出现之后,他的知识的密度更高了。
目前 AI 技术这么热门,我身边的很多人都开始把注意力转到 AI。这个时候,你是选择把原来技术的新旧版本融汇贯通,还是跟着历史的车轮投入 AI 阵营?
当我们工作 39 年后,是否还有机会像这个老爷爷一样,满怀激情,给某个著名的、影响深远的项目提交一个老爷爷补丁?还是像我家里那位说的,以后看到年迈的看门老大爷,还带点秃头的,有点焦虑的,可能就是曾经的程序员?
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号