高级工程师应该具备哪些能力?
极客时间编辑部
讲述:杜力大小:2.08M时长:04:33
很多程序员在自我介绍时常说自己是高级工程师,加了“高级”这两个字之后,别人听起来就会感觉更资深,或者说工作时间更长一些。那到底高级工程师应该具备什么样的能力呢?Reddit 上一位叫 Dan 的工程师就分享了自己的观点。
1. 专业知识
积累特定领域的专业知识往往需要耗费大量时间。如果你面对的是具有严格规范约束或相对复杂的领域,那么高级一词可能代表着“这里不适合新人”。这里,高级也就意味着专业。
2. 技术深度
要求相关人士曾经使用过精确的技术堆栈。术语、库以及相关缺陷,这一切都在不断变化并持续提出新的要求。因此如果你希望成为一位高级技术人员,那么万不可有半点取巧之心。
3. 技术广度
这是指能够运用类似工具,并在类似情况之间加以类比以加快工作速度的能力。有时候,也许你找不到完全适应岗位需求的人选,这时你可以扩大搜索范围。从宏观层面来讲,MySQL 与 PostgreSQL 之间其实存在很多相似的特征,因此将 PostgreSQL 的知识映射至 MySQL 身上(反之亦然)可能将带来奇效。
4. 实用类人才
这类高级开发人员能够填补团队当中的空白。他们能够注意到目前工作中的缺失部分,包括是否有必要构建系统、说明文档、项目管理、用户测试、设计乃至其它方案,并及时提出意见或倡议。这一点对于小型企业而言尤为重要。
5. 领导力
对于高级开发人员来说,这种能力将引导团队最终实现业务目标。其中具体包括了解目标的重要性、关注目标方向、将目标传达给整个团队,以及在目标难以实现时继续保持团队团结稳定。
6. 培训
这种能力有助于在组织内培养出更多人才。无论是否建立了正式的导师计划,技能的转移与传授每时每刻都有可能发生。这要求相关人员具备同理心。另外,如果你所在的企业本身就缺乏经验丰富的开发人员,那么则应建立起更为正式的相互辅导制度。
7. 谦卑心
高级开发人员之所以称得起“高级”,是因为他们曾经犯下过错误。这让他们有能力承认错误、从错误中学习,并努力思考如何避免犯下新的错误。
8. 持续学习者
这类高级开发人员会不断研究新技术与新进展,并思考如何将其与现有问题空间联系起来。一般来讲,他们只会在自己的业余时间当中研究技术。而如果他们足够出色,他们也会乐于展示自己的成果,并提倡在不影响长期可维护性的前提下对新型技术进行探索。
9. 跨部门协作
这种能力将在企业之内建立起谁知道 / 谁拥有的内部知识模式。在招聘新任开发人员时,这些新人可能并不清楚现有结构,但也许曾在原本效力的企业内见到过类似的机制。具备这方面知识的人清楚该由谁发布任务要求,又该由谁对相关变化作出通知。这种方式能够避免为错误问题找正确解决方案所带来的巨大投入与资源浪费。这一点在小型企业中往往更为重要。
10. 项目管理
根据你所在团队或企业的实际规模,高级开发人员可能需要在客观上担任项目经理一职。他们可能并不喜欢这类工作,但又无法回避这份责任。因为他们会意识到,如果缺少管理那么事情最终会出现哪些问题。
11. 开发支持 / 运营 /DevOps
换句话说,高级开发者也需要干一些“杂活”,但这些工作却又反过来可以迅速提升团队的战斗力。比如规定编码风格、维护 Docker 镜像、设置监控系统等。
12. 关于现有应用程序的深度知识
对于这方面工作,你需要做的显然不是招聘专门的高层管理者,而是培养开发者并使其成长为领导者。这类高级人士了解应用程序代码发展道路上一切问题的答案。如果他们足够出色,还能够以书面形式分享自己的知识。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论