高赞回答:为什么高级程序员不必担心自己的技术过时?


高赞回答:为什么高级程序员不必担心自己的技术过时?
本文插图
程序员是吃青春饭的吗?等我们老了 , 技术过时了 , 公司有什么理由不裁掉我们 , 去雇一些既有活力、薪资要求又低的年轻人呢?这个老生常谈的问题困扰着诸多渐入中年的程序员 。 本文告诉你如何增强自己的核心竞争力 , 在知识飞速更新的行业中站稳脚跟 , 跨过“初级工程师”和“高级工程师”之间的鸿沟 。
正文
我曾在CS职业论坛/r/cscareerquestions上回答了一个问题 , 该回答描述了我在程序员职业道路早期必须要涉足的几个领域 , 并就此引申出我为什么认为高级程序员不必担心自己的技术会过时 。
我认为社区中有很多我们不太重视的软技能 , 这些软技能都有可能成倍地增加我们工作的影响力(作为个人贡献者和技术负责人) 。 这些软技能包括:
代码审查礼节;
如何优雅地遏制范围蔓延;
如何向其他部门直观的方式解释高科技问题;
如何在生产任务爆满和日以继夜的比赛中保持镇定自若等 。
我的这一回答获得了很高的热度 , 论坛中也有一些读者请求我将其中的内容整理成可永久保存的版本以便于打印出来阅读 , 因此我决定将该回答总结成文章发到Medium上 。
/r/cscareerquestions论坛上的原问题:
我喜欢编程 , 甚至在业余时间都喜欢学习 , 但是我仍然觉得自己要学的东西太多了 , 就像在跑步机上一样 , 永远在被迫追赶 , 永远学不完 。
我脑海里有个唠唠叨叨的声音告诉我 , 在这样一个瞬息万变的行业中呆着是很糟糕的 。 因为等我年纪大了 , 自己使用的工具就旧了、过时了 , 年轻时候学到的经验就没价值了 。 而且我还有其他业务上的事要忙活 , 学习新技术就更困难了 。
回到一个老生常谈的问题上:公司有什么理由为我在旧技术方面的经验付钱?他们完全可以聘请更有活力的孩子 。 年轻人熟悉最新的技术 , 薪水却只用付我的1/3(并且他们愿意工作到很晚) 。
我觉得我可能应该尝试转型当个业务需求分析师、产品经理或者某种商业领域的人 , 因为这些类型的角色通常不会像程序员那么吃青春饭 。
虽然我并不想这样 , 因为我喜欢写代码 , 但我觉得自己好像别无选择 。 毕竟我也只是一个普通的程序员 , 不是什么天才大牛 。
作为一名程序员 , 编码硬实力固然很重要 。 而题主如果想不明白公司为何在花点小钱就能打发刚入行的新人的情况下 , 仍然乐于向我们这些“老年人”支付大笔工资 , 可以拿下面的问题问问自己:
你的代码的可维护性如何?是否有其他工程师不停地轻敲你的肩膀 , 让你解释你代码的每一行都是如何工作的?你的变量名具有描述性吗?你的方法是直观、易理解的吗?当你发现自己在复制粘贴很多行代码时 , 你是否能将这些代码的功能写入可重用的服务中?
别人能够从你在拉取请求中留下的评论中受益吗?你的反馈意见是有建设性 , 还是太过粗糙?当你发现别人的知识存在缺口时 , 你只是告诉他们“把这条线从ABC更改为XYZ” , 还是有能力引导他们认识到自己的方法可能不是最佳方法 , 让他们成长为更优秀的开发者?毕竟 , 同样是学习新东西 , 授人以鱼不如授之以渔 。
如果今天有100,000个用户创建帐户 , 你的代码是否会开始引发大量超时和500个错误?你能保证公关能把这事儿兜住吗?你知道如何基准化你的更改并进行证明吗?
你如何将非常技术的问题分解为公司其他部门可以理解的简单语言?向市场解释为什么一个功能实际上不可行时 , 你是否会让大量的工程术语从嘴里溜出来?
你对面向对象的编程有深刻的了解吗?你提出的系统架构是不是“顶多算说得通”?
你的写作能力如何?在回复电子邮件时 , 你是能把自己的意思表达清楚 , 还是发完邮件后同事仍然需要走到你的办公桌旁 , 来询问你更多的背景信息?


推荐阅读