最近我过了40岁生日。 一个朋友开玩笑的对我说:嘿,我想这个意味着你已经老的不适合再去编程了吧!,我表面上哈哈一笑,但心里却触动不少。 年龄歧视在我们这行里并不可笑。 就像今天用Java的兄弟沦落到这个地步一样,几年前,使用COBOL家伙被我们从心底里嘲笑其老旧的编码方式和缺乏新技术中的灵活性。
如今轮到我被他们嘲笑了。 也许你也是这样。 如果目前没有,我估计这一天也会很快到来。 你还会笑的出来吗? 是的,我想会跟我一样的。
我们这一行受年龄歧视体现在好几个方面。 大家都热衷于热门的新技术,追求以不可想象的超速度掌握这些新知识的能力,永不疲倦的加班,让产品按时发布的干劲--所有的这些都是做软件这行中年轻人的特长。 我还没说年轻的员工很便宜的事吧? 不是一般的便宜。 这个计算机专业学历需求趋势统计并没有清楚的告诉你目前年轻、廉价的劳力已经严重的过剩,那些人力经理对这部分人的感觉就像是大海一样取之不尽用之不竭。 事实上,所有的数据都证明了一个结论:近10年来求职登记计算机专业学历水平要求正在下降或至少没升过。 如果说跟以前区别不太大的话,至少根据Jeff Atwood的数据, 人才信息储备库里的人才质量是没以前好了。 当你找人开发你的新项目,而又不相信外包,那去找谁呢?
如果你正考虑只由年轻成员组成的开发团队,那么你需要再考虑一下。 在软件业,一些关于大龄软件开发者的传言被很多人深信不疑,这多少都使大龄的、有经验的人处于一种不利的位置。 但是这些人真的很蠢,他们认真参考这个学位趋势,拒绝超过40的任何人,因为我们开起来已经老的有点傻了。 让我来一个个的揭穿这些传言。
传言: 大龄程序员要比年轻的昂贵,相比之下年轻的开发者更可取。
真相: 有经验的程序员之所以被标高价的原因是,在软件企业中,员工工资是第一大成本。 这样看来,年轻就意味着便宜。 虽然没有经验的、年轻的程序员可以让你降低预算,但如果你的团队里都是这样的人,他们会让你支付的更久。 年轻的程序员没有接受过失败的教训。 他们也没有足够的时间学习这种教训。 想想吧,他们会在谁的项目上学习这种教训,会让谁蒙受损失? 是你。 当不能按期完成项目时你不是也要遭受损失吗? 再想想。
是的,大龄程序员要比年轻程序员要求的薪水高。 但是,你有没有想过给他们这么高的薪水是要得到什么? 对于有经验的程序员,你实际是雇佣他们在以往失败的或成功的项目中获取的各种经验。 如果你想让他们在你的经理任期里学习这些经验教训,代价是昂贵的。 如果你花钱雇佣了一个有经验的程序员,他能确保你在以后的项目管理和软件开发过程中不会在犯那些经典的错误。 你的年度回顾图表也会漂亮的多,因为你雇佣了聪明能干的人,他们知道如果把工作漂亮的完成。
传言: 大龄程序员缺少灵活性,缺乏学习新知识的能力,因为他们脑袋里的传统知识在作怪。
真相: 相反,正式由于他们的阅历,越是有经验的程序员越是能够更迅速的,更深度的迁移到新的技术、框架和系统里。 例如,如果你学过C/C++的GUI框架,你的脑海里就会对消息传输,事件处理等概念的有了掌握,而MVC模式就是使用了这些概念来设计系统,分离表示层和后端业务处理的。 而最初你学习一个GUI框架时,除了要学习语法,实例,以及常用类库外,你还要学习这些概念性的东西。 经过了二三种或更多的GUI框架学习后,你会发现各种框架之间除了语法外都非常的相似。 你还会发现后,出现的框架已经克服了很多前辈所特有的局限性,已经不需要你再去花时间开发复杂的hack程序了。 这些深刻的见解可并不是那些新人可以拥有的。 由这些思想储备来提升的生产效率并不是你可以用什么方法直接测量到的。
传言: 大龄程序员不愿意去干那些很幸苦的开发工作 (编者注: 长时间的,加班加点的工作)因为他们有家庭和其他一些事情拖累,这些在年轻员工身上就不会有。
真相: 我认为,说熟练的程序员相比较更不愿意加班加点辛苦的工作是没错的,因为他们知道只有工作效率有问题才会将自己推到每周工作80小时的处境。 有人说是没有干劲了,但我却要请问,哪一个曾经有过这种经历的人还渴望再经历一次? 还有人说,家庭负担是一个因素,但这只是个表面上的假象。 高能力的、有经验的软件工程师对时间的管理是不留余地的,正是有了家庭的原因,他们才会更有动机在给予的规定的时间里把工作完成。 他们也许需要陪家人去参加舞会,去看足球比赛,但他们也会在业余时间把这些占用的时间补上,在标准的一周40小时里一心一意的工作。 好的有家室的程序员一定是一个有效的管理自己个人时间的人,否则他立刻会淹没在各种工作之中无法抽身。
传言: 大龄程序员没有年轻程序员脑瓜灵活。
真相: 年龄的增长确实影响人的脑力,可以测试出年纪大的工作者确实要比年轻的反应速度慢一些。 可是思考敏捷只是我们的比较的一个方面而已。 思考的快并不是总是好事。 判断的正确与否呢? 有一个古老的说法:
正确的判断来自于经验,经验来自于错误的判断。
这些老程序员见识过的、经历过的成功的、失败的案例都比年轻的多,由此可以看出,以思考速度退化为借口来拒绝大龄程序员是缺乏说服力的。 经验丰富的程序员有大量的历史可以拿来作为借鉴和参考,让你避免在现在的项目里有错误的判断。 年轻的程序员可能会有一些很好的新观点,但通常是没有经过测试和验证的。 如果团队里两种程序员组合,那会非常的有好处。
传言: 大龄程序员对工作感到疲倦和挑剔,所以在岗位上没有年轻人那样有干劲。
真相: 这种话很可能来自于一些老是被有经验的程序员批评为傻冒的人,这些有经验的程序员已经无法忍受那些愚蠢的决定在他们周围一次有一次的发生。 有经验的程序员在一公里外就能嗅出错误的气味。 他们绝对不会听你讲故事说这个产品如何在市场上不被客户接受,因为他们已经跟客户打了多年的交道,他们知道你企图用谎言来挽救你被解雇的命运。 他们绝对不会忍受,因为客户要求下月就要出产品,经理就要求他们每周工作80小时的要求,以为他们已经知道并说过至少要3个月才能完全实现客户要求的功能。
年轻的程序员并没有经历那么多这样的处境,所以他们很少有反抗经理的错误决定的动作。 管理人员不能用他们天真的想法去要求事物。 如果你想拥有一个优秀的团队,让它生产出优秀的产品,那么允许人们将你从错误的道路拉回来,将会一次又一次的挽救你的项目。 当然,只有在你有勇气承认自己无知的情况才会这样。
至于说热情在消失,你很难判断是岁月消磨了人的热情。 如果说是年龄的原因,那么如何解释Donald Knuth, Ward Cunningham, Bill Joy, 比尔 盖茨等成百上千的跨过了40岁门槛的人依旧没有丧失任何对这个领域的热情的呢? 他们没有丧失。热情就是热情。 你40岁时还拥有热情,那是你真的热爱这个行业。
这种爱不会在一夜之间就消失的。 那些依旧沿着这些前辈的足迹前进的年轻的程序员们也许会拥有短暂的热情,也许会在这条道路的前进过程中面对困难和挑战发生动摇。
作为总结,让我们清清楚楚的看清这些事情:年轻不是个坏事情。 年老也不是所有都好。 最重要的是,任何肚子里没有实货的程序员都不应该被雇佣,不论是年轻和年老。 保持你的团队成员年轻年老、有经验和没经验混合 保持队伍多样性存在,团队才能成长进步。 如果你正在招聘一些人,不要对坐在你前面的头发显花白的人置之不理。 如果他的才能能打动你,那就丢弃年龄的偏见。
也许有一天这个人就是你。
【编辑推荐】