为什么老年人在编程工作中挣扎
我老了。我接受这一点。我不会因为担心而彻夜难眠。但我很清楚自己确实老了——至少在“编程”方面。
这个行业之外的大多数人都会嘲笑我老了。在大多数职业中,40多岁是职业生涯的黄金时期。但在软件开发领域,任何超过40岁的人都常常会被怀疑。任何超过50岁的人也经常会被从简历中剔除。而任何60岁以上的人最好都制定一个非常完善的退休计划。
但这篇文章并非探讨“老”的定义,也并非探讨对“老”的偏见。本文探讨的是“经验更丰富”的开发人员往往更难适应任何特定的工作/任务/环境。
这不仅仅是偏见。这是真实存在的。我亲身经历过,在别人身上也看到过,我的灵魂深处也感受到过。
我不知道这是否会对任何人有所帮助。无论如何。但我感到有必要指出(部分)原因,为什么像我这样的老年人越来越难以融入——更不用说脱颖而出了。
我不敢说我代表了所有老开发者。我也不是说没有一些老开发者在他们的环境中蓬勃发展。以下观察仅代表我个人。您的情况可能有所不同。
政治疲劳
年轻的时候,我满足于玩所有常见的公司政治游戏。甚至有时候,我甚至乐在其中。但现在……?好吧,这么说吧,我已经完全变成了一个政治玩家——而我不愿“参与其中”的性格经常给我的工作带来切实的问题。
我曾经从事管理工作。我手下一度有 60 名开发人员,分成 6 个不同的团队,所有开发人员都向我汇报工作。那时,我更注重确保自己用“正确”的措辞表达自己的想法。我更倾向于花费大量时间撰写报告(我知道这些报告永远不会被阅读)和勾选审计项目(我知道这些项目根本没人真正关心)。
大约五年前,我特意离开了管理层。我只想“纯粹地”做回一名程序员。我想尽可能远离那些标准的公司政治,让自己沉迷于代码。
但在我回归“纯粹”程序员的路上,发生了一件有趣的事。政治似乎……跟随着我。在顺利的日子里,我什么也不做,只是盯着我的IDE。但太多的日子里,我发现自己被要求对高管们说他们想听的话。太多的日子里,我仍然被会议和无休止的行政细节所困扰。
既然我在这里抱怨这件事,你可能会觉得我是个脾气暴躁的老家伙。你知道的,就是那种对每个决定都抱怨的人——无论多么琐碎。然而,我觉得这根本不符合我的性格。
我非常乐意与“业务方”、“客户”或“利益相关者”交谈。而且我通常能够避免使用专业术语,也不会贬低任何人。人们可以向我询问各种有问题的交付成果——我会用外行人能理解的语言平静地向他们解释,这些交付成果将来可能会带来意想不到的严重后果。
连续几周,甚至几个月,这些互动都没有给我带来任何问题。但后来发生了……
就是有人想让你在代码里做一些实际上完全没有意义的改动。但他们不会直接告诉你去做。他们会热切地征求你的意见。他们坚持让你觉得自己做出了贡献——即使你唯一合乎逻辑的贡献就是说这整个想法简直是疯了。
但你不能告诉他们这简直是疯了。事实上,你几乎什么都不能告诉他们——除非这能支持他们最初的要求。这是因为他们一直在征求你的反馈。但他们并不想要你的反馈。他们只想让你点头同意,然后按照他们要求的疯狂方式去做。
年轻的时候,面对这样的情况,我能更容易地接受自己的反对意见。但现在……?嗯,虽然我很容易避免使用辱骂或对抗的语气,但我很难用温和的措辞来表达我的反馈,让那些大人物自欺欺人地认为我支持这个想法。
我不会对任何人吼叫,也不会使用不专业的语言。但你最好相信,如果你问我如何看待一个真正极其愚蠢的想法,我会毫不含糊地告诉你,这是一个糟糕的想法。令人惊讶的是,这种简单的倾向竟然经常让我在工作中头疼不已。
拒绝流失
随着时间一年年地从我的后视镜中溜走,我对科技无情“更新换代”的耐心也逐渐消磨殆尽。这句话或许让我听起来像个老古董。但我并不抱怨学习或采用新技术。(和几乎所有程序员一样,学习新技术的过程通常让我兴奋不已。)
我抱怨的是(我认为)一种正在加速的趋势:抛弃现有技术,一头扎进新技术——这种趋势通常毫无意义,仅仅因为有人真的很喜欢新技术(或者真的很讨厌旧技术)。如果你读过我的其他文章,你可能会注意到我经常使用“粉丝”这个词。
如果你在大力宣传某项技术,却无法提出令人信服的实证论据,那么你可能就是个“狂热粉丝”。如果你在诋毁其他技术,但你的主要论点是它过时或愚蠢,那么你可能就是个“狂热粉丝”。
狂热粉丝听起来像是这个行业里无害的危险分子。但狂热粉丝却可能造成真正的伤害。如果狂热粉丝是刚从大学毕业、默默无闻的孩子,他那些不合常理的热情或许不会造成什么真正的问题。但狂热粉丝可能无处不在。
你的经理可能是你的粉丝。和 CIO 关系密切的象牙塔里的架构师也可能是你的粉丝。在公司工作了 20 年的人也可能是你的粉丝。甚至连CEO也可能是你的粉丝。
一旦你的粉丝决定讨厌你目前正在研究的技术(你可能已经为这项技术投入了数千小时),并且他们的意见被决策者听取,那么你重写所有内容只是时间问题。或者,你得另谋高就了。
这种“流失”不仅仅适用于顶级技术。它也适用于 NPM 软件包、代码风格指南,甚至……我们工作中任何细微的方面。一旦你团队中的观点发生了“演变”,你就会发现自己必须彻底改变你工作的基本方式。否则你就得另寻工作了。
你想知道为什么像制表符和空格这样(本该)微不足道的事情,到今天仍然会激怒人们吗?这是因为有些人多年来一直使用制表符/空格进行编码,这从来都不是问题。然后有一天,有人走进来,说:“我的天哪!真不敢相信你还在用制表符/空格!”很快,你就得跟着大伙儿做这些琐碎的决定了——对你来说。否则你就得找份新工作了。
请不要误以为这部分意思是我不想学习新技术(或技巧)。我和其他程序员一样,对深入研究那些有望解决问题的东西感到兴奋。但我不会仅仅因为旧方法“愚蠢”,而取而代之的是所谓的“新酷炫”就更换语言/框架/工具/等等。
经验的愤世嫉俗
当我刚开始从事这份职业时,我能想到很多例子,我的天真几乎成了……一笔财富。你看,有时候我太愚蠢了,没意识到自己被利用了。但在被“利用”的过程中,我也积累了宝贵的经验。或者说,我给那些看到我拼尽全力让一切顺利进行的人留下了深刻的印象。
在我二十多岁的时候,任何需要额外工作的建议都会让我24小时不停地写代码,或者干脆整个周末都加班。任何建议我们采用某种(适得其反且支持不力的)技术的建议都会让我一头扎进去学习和实践这些技术。任何关于股票期权或未来IPO的暗示都会让我兴奋不已,觉得自己是在为下一个谷歌工作,我可以拼命工作——因为……我会发财的!!!
现在……?好吧,我只能说我更加谨慎了。
我会(而且经常)加班。但如果我感觉我的加班意愿被滥用了,我们就会好好聊聊。如果我们团队有人离职,而公司的“解决方案”只是把工作分摊给剩下的员工——同时保持所有截止日期不变——你放心,我会非常明确地告诉所有人,我不会承担别人的全部工作量。
我不再对大多数公司(尤其是初创公司)的空洞承诺感到飘飘然了。如果薪酬方案中包含一些股票期权,那当然很好。但如果你指望我把这些期权视为薪酬的全部或主要组成部分,那我建议你先去本地大学招聘。我有抵押贷款(很多)。我有账单和承诺。即使我喜欢你的公司,我保证我不会喜欢到愿意放弃市场水平的薪水。
以下是我的经验(愤世嫉俗)有时会给我带来麻烦的另一种情况:
一旦你在某个组织里赢得了精通编程、能干好工作的美誉,你就会突然发现很多“不着边际”的请求落到你头上。我指的是那种情况:团队之外的人突然跑过来,开始问你:“嘿……对这个应用做这么一点小改动会有多难??”
20多岁的亚当会对这类请求兴奋不已。几次简短的会议之后,我可能会加班加点地实施某个类似游击项目的项目。有时我这么做是因为我对此技术感到兴奋。有时,我这么做是因为我渴望取悦对方。有几次,我甚至因此惹上麻烦。但我几乎总是发现,公司内部声誉的提升,足以抵消任何短期的负面影响。
如今,我很少纵容这些人。你懂的。这些人自以为只要跟某个程序员拉关系,就能彻底颠覆整个开发流程。
一些高管曾试图这样对我(尽管他们完全不在我的指挥链之内)。一些年轻女士也曾试图这样对我,她们坐得离我太近,而且她们对我的微笑比任何人真正想对我笑的都要多。
但如今,我对这些人的回应始终如一。我会礼貌地倾听他们的意见。我会提供任何可能帮助他们找到正确方向的即时反馈。但一旦他们想催促我真正去做——在正常的开发流程之外——我就会礼貌地(但坚定地)拒绝。
这听起来像是处理这种情况的“正确”方法。但我注意到,一旦我对别人说“不”,往往会带来各种长期副作用。我曾被经理在绩效评估中说我“难以共事”。然而,当我试图弄清楚这种评价的出处时,却发现这竟然出自那些试图让我破坏正常运作的人之口。
事实上,每当我用专业且不带感情的语气告诉人们“不,我不会这么做。”或者“你得和项目经理谈谈。”或者“你需要直接和客户协商优先顺序”时,看到人们脸上震惊的表情真是令人惊讶。
对某些人来说,无论你有多专业(或多么合理),只要你敢拒绝他们的请求,他们仍然会对你怀恨在心。
不容许双重标准
也许这对奥兹夫妇来说并不怎么困扰。也许只是困扰着我。我不确定。但我知道,在过去二十多年的公司工作中,我对那些赤裸裸的公司套话的耐心已经逐渐消磨殆尽。
需要说明的是,我理解公司有自己的一套行话。如果有人说我们应该“线下联系”,我并不介意。“跳出思维定式”虽然是老生常谈(而且几乎毫无意义),但当有人说出这些话时,我几乎知道他们想表达什么。
但如果你告诉我我们需要做一些“精简”,我肯定会吐槽。如果你一直跟我鼓吹要当“颠覆者”,我知道你所谓的“颠覆”就是让我夜以继日地工作来实现你的愿景。如果你让我去做一个“行动项目”,那你就是想用一种微妙的方式,不考虑当前项目的优先级,给我分配新的工作。
我还可以继续说下去,不过你懂我的意思。我真的越来越讨厌这种没完没了地用某种模糊的新说法来修饰那些令人反感的想法。
当有人想让我参与某个提案,而这个提案毫无可取之处时,我的这种顾虑就显得尤为明显。我几乎可以讨论所有可能的想法。但如果这个想法根本就毫无价值……我就会直言不讳。这时,人们就会开始议论我,好像我是一只脾气暴躁、无法讲道理的老熊。
了解你的价值
了解自己的价值怎么会是坏事呢?好吧,让我解释一下。
二十多岁时,我已经拥有了丰富的知识和相当不错的编程技能。但我的简历很简陋,所以最初踏入这个行业非常困难。
当你处于职业生涯的这个阶段时,你往往会在辞职、跳槽或惹怒同事之前仔细考虑。但我已经很久很久没有这么担心过我的简历了。
我很幸运能在一个一直以来对我的技能需求旺盛的领域工作。而且我的简历现在也达到了一个让我不再为某个具体职位而烦恼的水平。总的来说,这些都是好事。但这也意味着我忍受别人的胡言乱语的意愿少得可怜。
我最近接到一份合同工的工作,我的整个团队都在远程办公——但他们希望我每天都来办公室。所以……我没待多久。
我最近接手的一个项目,项目经理里有好几位是明目张胆的种族主义者(还有厌女症和反犹太主义)。所以……我没待多久。
我曾经在一份工作中,他们让我通过各种荒谬的考验来验证代码的安全性(包括许多对应用程序安全毫无作用的审计复选框)。但当我向他们展示我如何轻松入侵员工数据库——而且公司以外的任何人都可以做到——他们却毫不在意。所以……我没在那里待多久。
总的来说,这种高度的流动性是一种优势。我的意思是,谁愿意被困在一份工作里,因为工作中的某些方面已经变得繁重?但另一方面,你很难找到理由去处理别人的麻烦事——即使是很短的时间。
再说一次,这通常是一件好事。但我也遇到过一些像我一样的“老家伙”,他们根本懒得在任何一家公司扎根,建立稳固的合作关系——因为这些公司总是会做出一些粗鲁、不专业或彻头彻尾愚蠢的事情。如果以这样的模式,你连续在3家、4家甚至更多家公司工作,不久之后,你就会被认为是一个脾气暴躁、无法“融入”的“老家伙”。
软件千篇一律
过去十多年来,开发领域最令人沮丧的趋势之一就是不断努力将编程简化为某种流水线作业。虽然我能理解将复杂流程精简的愿望,但这种努力的最终结果是,程序员往往被当作……流水线工人。
听着,我明白。软件开发很难,也很复杂,成本高昂,而且耗时。我也明白,各组织都在不断寻找新的方法来简化这些(本质上很复杂的)项目。
但是,你不可能从零开始开发一个规模庞大的全新应用,然后指望把一堆包罗万象的规格说明书交给开发团队,让他们像制作喂鸟器一样快速完成。你看,每个人都想追求这个“圣杯”式的梦想:只要集思广益,想出一大堆规格说明书,然后把这些规格说明书交给开发团队,瞧!他们设想的应用就出来了。
我不知道有多少次,在构建组件、按照规范操作的过程中,我突然意识到客户的要求完全自相矛盾或毫无意义。这没关系——只要我能联系上他们,并就这个问题进行一次理性的沟通就行了。
但现在,利益相关者似乎越来越频繁地只想给我一堆规格说明书——然后就让我等着,直到产品完成为止。有时候,如果我问他们问题,他们真的会很生气。就算他们不介意我的问题,我也绝对不会质疑他们要求的设计!
大多数和我处境相似的人不仅懂得如何编写代码,还知道如何构建更好的应用。他们深谙哪些方法有效,以及哪些因素会导致最终用户的噩梦。现在,我并不想成为一名商业分析师 (BA) 或项目经理 (PM)。但那种认为我永远不应该就应用本身的设计提供任何功能反馈的想法,嗯……简直是无知。
我年轻的时候,会提出一些微不足道的建议。有时客户甚至会听。但如果他们完全不听我的,我也不会太在意。我只是完全按照他们的要求去做。
但我得承认,在我人生的这个阶段,当客户要求我做一些我知道一旦上线就会失败或需要修改的事情时,我真的很沮丧——但只要我提起这件事,他们语气里的恼怒就显而易见。你几乎能听到他们在想:“这家伙为什么不肯闭嘴,直接按照我们要求的那样开发应用程序?!”
与足够多的客户一起经历这个过程,你会发现自己想知道为什么你甚至会从事这个职业领域......
结论
我肯定还能继续写十万字左右。但这篇文章已经够长了。我决定开始一个新的系列,讲述一些我亲身经历的具体故事。
现在,我只想列举一些老程序员难以融入“现代”开发环境的原因。这并不是因为他们“墨守成规”,也不是因为他们无法理解最新的技术。很多时候,是因为他们自身的经验在某种程度上几乎对他们不利。
我经常在审视自己时注意到这一点。我发现自己不禁会想:“我还能坚持多久?”因为我每天面对的一些愚蠢行为有时会让我非常沮丧。
文章来源:https://dev.to/bytebodger/why-older-people-struggle-in-programming-jobs-1pj0