成为高级开发人员需要做的 5 件事
初级到高级开发人员:程序员的职业发展
自治
倡议
沟通
解决问题
导师制
在本周的 Ladybug Podcast 节目中,我们讨论了从初级开发人员晋升为高级开发人员所需的技能。
在深入探讨这个话题之前,我想先说明一下,每个雇主对于高级开发人员的要求都是不同的,而且你是一家公司的高级开发人员并不一定意味着你会成为另一家公司的高级开发人员。
没有什么比看到“我加入科技行业六个月后就成了高级开发人员”这样的博客文章更让我沮丧的了。这些帖子不仅会让那些花了超过六个月时间的开发人员产生自卑感,而且晋升还需要考虑很多因素。
拥有计算机科学学位、在社交媒体上拥有粉丝、拥有大量内容来展示你的技能以及在朝九晚五的工作之外拥有充足的时间,这些都是有助于你成为高级开发人员的优势的例子。
作为一个行业,我们必须停止这种想法:只要你足够努力,只需“X”个月就能成为高级开发人员。你可能需要六个月,也可能需要六年。不要让任何人影响你对晋升所需时间的想法。
与你的经理沟通。了解在成为高级开发人员之前你需要完成哪些工作,并屏蔽社交媒体上的噪音。
尽管每家公司对高级开发人员的定义各不相同,但所有高级开发人员都具备一些共同的特征。今天,我们将探讨其中五个特征,它们将助您快速迈向高级开发人员的征程。
自治
独立或自由。
高级开发人员的主要特质之一是拥有自主权,或者说独立性。作为一名高级开发人员,你需要能够在不需要太多协助的情况下完成工作。这并不意味着你不能提问(事实上,你应该提问),而是意味着如果你接到一个任务,你能够构建解决方案,并且知道如果遇到困难时该问什么问题。
自主性是我多年来一直难以培养的特质之一。在我编程生涯的早期,我感到迷茫。与资深团队成员搭档,看着他们无缝衔接地钻研代码,真是令人神经紧张。他们怎么知道从哪里开始?他们怎么知道这个 bug 源自这个文件?他们怎么知道该向这个人寻求帮助?
我告诉你一个秘密:所有这些问题的答案都可以用“这只需要时间和经验”来回答。可以肯定的是,你的团队成员在加入公司时也感受到了这种即将来临的“冒名顶替综合症”。而且,无论你拥有多少编程经验,加入一家拥有新技术栈和新同事的新公司总是需要时间来适应。
今年七月我加入Spotify时,经理和同事告诉我,至少需要六个月的时间才能适应并高效工作。加入一家新公司时,为自己设定合理且切合实际的期望值非常重要(尤其是作为一名初级开发人员)。
但如果您的目标是晋升为高级开发人员,那么您必须开始在工作任务中表现出自主性。
倡议
先于他人采取行动或掌控局面的权力或机会。
在提升您为高级开发人员之前,您的经理希望看到您主动寻找具有挑战性的任务并帮助有需要的团队成员。
如果你提前完成了任务,请积极寻找其他可以处理的任务或 bug。如果你发现团队成员在任务上遇到困难,请主动提供帮助。如果你发现团队之外还有其他可以参与的地方,比如帮忙策划内部会议或指导新团队成员,那就去做吧!
你也应该列出你的成就。这样你就能更容易地达到下一个阶段,因为你不用费力地回忆过去一年的成就。
不要等待别人给你工作:积极寻找新的、具有挑战性的工作并写下你的成就。
沟通
通过说话、写作或其他媒介传递或交换信息。
啊,“软技能”,每个程序员都想精通的领域。我个人不明白为什么“软技能”在程序员的教学中被看作一项次要的技能。你的职位越高,沟通能力就越重要。
高效的写作和演讲能力有很多好处。无论是在技术演示中给同事留下深刻印象,还是撰写内部博客文章,沟通都是关键。
要成为高级开发人员,你不仅要善于解释自己在做什么,还要解释为什么这么做。这一点在指导初级团队成员时尤为重要。
理解和传达任务背后的原因将巩固您正在学习的技能以及您正在教授的技能。
解决问题
寻找困难或复杂问题的解决方案的过程。
对所有开发人员来说,解决问题是一项被低估的技能,因为它并非在训练营或学位课程中就能学到。解决复杂问题的能力会在你的整个职业生涯中逐渐形成,并且随着你在行业中工作的时间越长,其复杂性也会随之增加。
在职业生涯早期学习如何解决问题,将使你在晋升过程中占据优势。我不会在这篇文章中深入探讨解决问题的具体细节,但让我们先来看一下一般的流程。
首先,你必须识别并明确问题。问题往往比我们最初感知的更微妙。你想解决什么?是否存在一些必须解决的依赖子问题?
一旦你理解了问题,你应该列出可能的解决方案。有哪些不同的方法可以解决这个问题?
现在您可以评估您的选择。每种解决方案各有哪些优缺点?这些解决方案是否会对性能产生影响?可访问性方面的问题又该如何处理?
现在,您可以选择一个方案并进行构建。如果您在此过程中意识到解决方案在技术上不可行,或者遇到了无法预料的问题,您可以随时返回第三步,重新评估您的方案。
最后,您可以记录您的解决方案,以便您的团队成员能够理解您选择该解决方案的原因。
解决问题是一项非常宝贵的技能,不可否认,这是成为高级开发人员所需要的技能。
导师制
一个人接受导师指导的一段时间。
成为高级开发人员最重要的因素之一是能够指导其他团队成员。导师制通常被认为是一种正式的关系,导师对学员的所有问题都有答案。这是对导师制的古老定义。
导师制是一种共生关系,双方都能从中汲取知识。虽然大部分信息会由导师传递给学员,但导师也应该乐于向学员学习。
导师也不应该直接回答学员的问题。提出问题并得到答案只会带来短期利益。相反,导师的工作是引导学员找到解决方案。通过为学员提供构思和学习的空间,他们的解决问题的能力和自信心会更快地提升。
作为一名高级开发人员,你需要指导更多初级团队成员。指导无需正式(尽管正式的指导比非正式的指导更容易帮助你晋升),但支持其他团队成员的行为将帮助你朝着理想的晋升目标迈进。
对于那些希望从初级开发人员晋升为高级开发人员的人,我能给出的最大建议是,在获得高级开发人员头衔之前,先展现出高级开发人员的特质。如果你的公司提供了高级开发人员资格证书,请确保你在申请晋升之前已经达到高级开发人员的要求。
最后,要有耐心。晋升为高级开发人员可能需要几个月甚至几年的时间,所以不要拿自己和公司外的其他开发人员比较。
文章来源:https://dev.to/ladybug/5-skills-you-need-to-become-a-senior-developer-3poe