你想成为一名高级开发者吗?

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 提供适用于您旅程每个阶段的云产品。 立即开始使用 $200 免费额度!

首先,我要说明一个经典的注意事项:我无法授予您高级开发者的头衔。 我对当今公司如何招聘和晋升人员担任高级开发人员职位没有特殊见解。

我可以告诉你,我认为哪些品质会造就一名出色的高级开发者。 我可以告诉你,我如何看待高级开发者和那些尚未达到这个水平的开发者的区别。 如果有一天我负责一支开发者团队,由我来决定他们的级别,我会考虑这些因素。

一名高级前端开发者拥有经验

这是不可避免的。 你不可能一进入第一份工作就成为高级开发者。

你可能也无法一进入任何新工作就成为高级开发者。 即使我非常确定一个人将成为高级开发者,并且之前也担任过这个职位,我可能也不会让他们从这个职位开始,因为无法保证他们可以在完全陌生的环境中同样有效地工作。 即使技术相同,但人不同。

一名高级前端开发者拥有良好的判断力记录

开发不仅仅是编写代码,它还涉及做出选择。 良好的选择是经过研究、讨论的,并受本能和经验的影响。 当你做出选择时,你向所有观察者展示了你的判断力。 如果你清楚地表明你的判断是经过深思熟虑的、符合道德的,并且尽可能地透明,那是一件好事。 如果你反复这样做,那就说明你已经晋升为高级开发者。

一名高级开发者在代码之外产生积极影响

如果你对团队的唯一贡献就是编码能力,那么你可能不是一个特别适合担任高级开发者的候选人。 代码不是在真空中编写的。 至少好代码不是。 好代码反映了一个团队,是凝聚力的愿景的产物,也是一个组织目标的基础。 为了参与好代码,并展示你成为高级开发者的能力,你不能孤立自己,你要坐在桌子的中间(比喻地说)。

软技能不容忽视。 一名高级开发者能够写出清晰的邮件、围绕想法吸引人们、领导会议,以及在微波炉里的汤汁爆炸变成一场消极被动便签大战之前清理它(比喻地说)。

一名高级开发者是乐于助人,而不是无所不知

假设你的同事来找你问你一些事情,而你对此一无所知。 这是否意味着你还没有准备好成为高级开发者? 绝对不是。 你如何回答这个问题才是你是否具备高级开发者能力的关键。 你能帮助他们弄清楚他们为什么要问这个问题,从而获得更多上下文并提供更广泛的帮助吗? 你能提出一起寻找答案的建议吗? 你会事后做一些研究并与他们跟进吗?

即使你确实知道确切的答案,仅仅说出答案然后转过椅子继续打字,也比和同事一起深入研究这个问题更糟糕。

成为高级开发者并不意味着你必须无所不知,这意味着你能够帮助找到任何东西。

一名高级前端开发者是倍增器

这是我最喜欢的观点。

有一些开发者,至少在纸面上,比其他人有效率得多。 提交的代码数量是别人的两倍,编写的代码行数是别人的两倍,修复的错误数量是别人的两倍。 你当然可以努力成为这样的开发者,但这并不能自动让你获得高级开发者的资格。

团队中最优秀(也是最资深的)开发者是能够提高其他开发者效率的人。 也许你团队中那位优秀的开发者之所以能够如此出色,是因为其他人正在腾出时间来使他能够做到这一点。 因为其他人创造了坚实的开发环境,促进了生产力。 因为其他人教导了他,并给了他成为这样的人的关键。

一个能够为整个团队提高效率的开发者,绝对是一名高级开发者。


我不能保证做这些事情就能让你成为高级开发者。

我无权告诉你们办公室的管理层考虑这些因素,并将这些因素纳入他们的决策中。 我只能说,如果他们需要我的建议,我会建议他们如何晋升开发者。

你现在能够晋升开发者吗? 你曾经这样做过吗? 请与我们分享你的想法!