高级工程师应该具备哪些能力?

对于高级工程师应该做什么?具备哪些能力才是高级工程师?欢迎在评论去留言讨论。下面是文章正文。

我想在这个时代,“高级工程师”已经不是过去我们印象中的高级工程师。或者换句话说,“高级工程师”已经不再是真正意义上的高级工程师。

所谓“高级”的具体含义,取决于你所在组织的实际需求以及运营方式。我的大部分工作经验都源自小型企业,因此今天提到的相关职位可能更倾向于中小企业。不过根据我的经历,很多大企业中也存在类似的模式。下面,我将结合自己的认知,对“高级”一词作出更为详尽的解读。

专业知识:有时候,积累特定领域的专业知识往往需要耗费大量时间。如果你面对的是具有严格规范约束或相对复杂的领域,那么高级一词可能代表着“这里不适合新人”。这里,高级也就意味着专业。

技术深度:要求相关人士曾经使用过精确的技术堆栈。术语、库以及相关缺陷,这一切都在不断变化并持续提出新的要求。因此如果你希望成为一位高级技术人员,那么万不可有半点取巧之心。举例来说,如果你的应用使用 Django 编写而成,则你需要一位高级 Django 技术人员——无论候选人对 Rails 或 Laravel 多么熟悉,都将无法胜任这一职位。对于 PostgreSQL 也是如此(相对于 MySQL 而言)。我发现很多从业者都在职位申请当中体现出了这样严谨的态度,但却鲜有企业对此加以重视。总而言之,我们应当将这一点作为简历筛选当中的一项重要条件。

技术广度:这是指能够运用类似工具,并在类似情况之间加以类比以加快工作速度的能力。有时候,也许你找不到完全适应岗位需求的人选,这时候你可以扩大搜索范围。从宏观层面来讲,MySQL 与 PostgreSQL 之间其实存在很多相似的特征,因此将 PostgreSQL 的知识映射至 MySQL 身上(反之亦然)可能将带来奇效。这样的高级开发人员在与具有 “精确的技术层面技能储备”的人士进行协作时,效果最佳——因为双方将能够充分运用术语进行沟通并使用各类资源库。

实用类人才:这类高级开发人员能够填补团队当中的空白。他们能够注意到目前工作中的缺失部分,包括是否有必要构建系统、说明文档、项目管理、用户测试、设计乃至其它方案,并及时提出意见或倡议。这一点对于小型企业而言尤为重要。

领导力:对于高级开发人员而言,这种能力将引导团队最终实现业务目标。其中具体包括了解目标的重要性、关注目标方向、将目标传达给整个团队,以及在目标难以实现时继续保持团队团结稳定。

培训:这种能力有助于在组织之内培养出更多人才。无论是否建立有正式的导师计划,技能的转移与传授每时每刻都有可能发生(且并不一定是由更具经验的一方担任辅导者角色)。这要求相关人员具备同理心。另外,如果你所在的企业本身就缺乏经验丰富的开发人员,那么则应建立起更为正式的相互辅导制度。

谦卑心:高级开发人员之所以称得起“高级”,是因为他们曾经犯下过错误。这让他们有能力承认错误、从错误中学习,并努力思考如何避免犯下新的错误。

持续学习者:这类高级开发人员会不断研究新技术与新进展,并思考如何将其与现有问题空间联系起来。一般来讲,他们只会在自己的业余时间当中研究技术。而如果他们足够出色,他们也会乐于展示自己的成果,并提倡在不影响长期可维护性的前提下对新型技术(通过峰会以及黑客马拉松等形式)进行探索。

跨部门协作:这种能力将在企业之内建立起谁知道 / 谁拥有的内部知识模式。在招聘新任开发人员时,这些新人可能并不清楚现有结构,但也许曾在原本效力的企业内见到过类似的机制。具备这方面知识的人明确知晓该由谁发布任务要求,又该由谁对相关变化作出通知。这种方式能够避免为错误问题找寻正确解决方案时所带来的巨大投入与资源浪费。这一点在小型企业中往往更为重要。

项目管理:根据你所在团队或企业的实际规模,高级开发人员可能需要在客观上担任项目经理一职。他们可能并不喜欢这类工作,但又无法回避这份责任——因为他们会意识到,如果缺少管理那么事情最终会出现哪些问题(参见之前提到的‘谦卑心’)。

开发支持 / 运营 /DevOps:换句话说,高级开发者也需要干一些『杂活』,但这些工作却又反过来可以迅速提升团队的战斗力。比如规定编码风格、Debugging Jenkins 中执行失败的 job、维护 Docker 镜像、设置监控系统等。

关于现有应用程序的深度知识:对于这方面工作,你需要做的显然并非招聘专门的高层管理者,而是培养开发者并使其成长为领导者。这类高级人士了解应用程序代码发展道路上一切问题的答案。如果他们足够出色,还能够以书面资料的方式分享自己的知识。

因此,当你发布“高级”工程师这类职位描述时,请认真考虑之前提到的各项因素。如果找不到一位擅长这一切的人选,那么你显然应当作出自省——你到底需要什么?你的企业又需要什么?

原文链接如下:

When is a senior engineer not a senior engineer? from programming


发表评论

电子邮件地址不会被公开。 必填项已用*标注