高级工程师如何跳出年龄歧视的怪圈?

【CSDN编者按】年龄歧视是技术圈经久不衰的话题。很多人会说,35岁就是程序员的分界线,有的人会转向管理岗位,开启另一片事业晴天;有的人则会被技术圈淘汰,只能在一隅之地做颗螺丝钉。那么对于技术上已经有所沉淀的高级工程师来说,下一个目标究竟应该怎么制定?

高级工程师如何跳出年龄歧视的怪圈?

以下为译文:

假设你已经做程序员很多年了,中间得到过一次或两次升职,如今下一步该怎么走,你有点彷徨。在这之前,职业生涯的发展目标直截了当:学会独立工作,然后升职到高级软件工程师或一些同等的职位。

但现在面对前方的道路你有点迷茫。

我要放弃编程,成为一个经理吗?

我还需要学新的技术吗?或者我的技术力足够了?

我的目标是什么?

......

在这篇文章中,我将提出一种不同的职业发展方向,一种可以给你更多自主权和拥有更多讨价还价能力的职业发展方向。

与成为经理不同,在这条路上你还可以继续编程。

1.从编程到解决问题

作为程序员,最终的工作核心是解决问题,而不是写代码。

解决问题需要以下几点:

  • 找到并确立问题;
  • 提出解决方案;
  • 实现解决方案。

上面每一条都可以看成是一个技能树:一套能够单独和并行发展的相关技能。但是,在实际工作中,我们往往都是按照相反的顺序从第三个技能树开始,然后随着经验的增加,逐个添加其他技能树。

Randall Koutnik将这些描述为职业发展中的如下头衔:实现人员,解决问题的人,发现者

作为一名实现人员,你是一个没有经验的程序员,你的任务是由其他人定义的:你只需要实现小的明确指定好了的代码块。

假设你的工作是为动物的主人建立一个网站。你去上班并接受任务:“在这里添加一个下拉菜单,列出所有鬣蜥的疾病,你可以从IGUANA_DISEASE表中获得数据。选择一个菜单项时,重定向到相应的页面。“

你不知道为什么用户想列出鬣蜥的疾病,而且你也不必花太多时间来确定实现的方法。你只是按照别人的吩咐去做。

随着经验增多,你会变成一名解决问题的人:面对不太明确的问题时,能够提出解决方案。

假设你遇到了一个问题:“我们需要在网站上添加一个区域,方便宠物主人弄清楚他们的宠物是否病了。”你清楚你有什么数据以及可以使用哪些API,你与设计师一起想出了一个用户界面,然后你创建了一个实现计划。最后你开始写代码。

最终你会成为一名发现者:你开始自己发现问题并弄清楚根本原因。

你和经理讨论鬣蜥的这个功能:几乎没有人养鬣蜥,那为什么还要将它们与猫猫狗狗同等对待呢?更加不用说编写鬣蜥专属的代码简直就是浪费时间,难道不应该编写适用于所有动物的通用代码吗?

经过一番讨论后,你发现必须重做网站架构,业务逻辑和设计,才能避免在每次添加新动物时编写新代码。如果你想出正确的架构,添加新动物只需要一个小时的工作,那么公司就可以用很低的成本服务于许多动物市场。设计和实现解决方案可能需要你与整个团队合作完成。

2.成为发现者的好处

许多程序员最终都是解决问题的人,而且不知道下一步该做什么。如果你不喜欢做管理,那么成为发现者是很好的下一步选择,原因有两个:自主权和效率。

Koutnik的主要观点:在这三个阶段中,每一个阶段都会为你提供更多的自主权。作为一个实现人员你几乎没有自主权,作为一个解决问题的人你就有更多的自主权,而作为一个发现者,你所拥有的自主权很多:你只拿到了一堆模糊的目标和限制条件,你可以自己去弄清楚要做什么。这很有趣。

而且还有另外一个好处:当你从实现人员转向解决问题的人,再到发现者时,你会变得更有效率,因为你做的工作更少了。

  • 如果你只是负责实现其他人指定的解决方案,那么你可能会遇到效率低下的解决方案。
  • 如果你只是按照表面描述的问题想出一个解决方案,那么最终有可能你解决的问题不对,因为可能所有的问题的都是由另一个更基本的问题引发的。

如果你能深入诊断和识别潜在的问题,提出解决方案并与他人良好地合作,那么你所做的工作就越少,你的工作效率就越高。

3.利用你的高效

如果你是发现者,那么你的工作效率会更高,这样你就能成为更有价值的员工。你才是那个发现了难题、帮他们找到原因所在、发现了客户真正需求的人。

这意味着你有更多的谈判筹码:

  • 你可以更加理直气壮地要求涨工资;
  • 即使面对不了解的技术,你也可以找到更好的工作;
  • 你甚至可以要求一周休3天。

所以如果你想继续编程,你仍然想在职业生涯中有所进步,那么就开始寻找问题吧。如果注意观察,你就会发现问题无处不在。

原文:https://codewithoutrules.com/2018/10/10/beyond-senior-software-engineer/

作者:Itamar Turner-Trauring

译者:弯月,责编:郭芮

相关推荐