译 原文地址:https://dev.to/themarcba/what-is-a-senior-developer-really-59dg
对于高级开发人员是什么样存在一个普遍的误解。有人会告诉你高级开发是有着多年的经验,而其它人会告诉你是“光速bug修复者”。这些都不是。
高级高发不是这样☝️
当你寻找开发人员/软件工程师的工作并阅读职位要求时,你会发现一种模式,在这种模式中,招聘人员似乎根据他们(开发人员)在该领域的工作经验来定义高级开发人员。 好吧,不是这样来考量。 确定什么是以及什么(不是高级开发人员)要比这复杂得多。
让我们从高级开发不是什么来开始:
- 通晓编程语言的一切的人
- 知道所有问题的答案
- 绝对的真理
问题解决?
高级开发人员的基本特征之一是能够快速解决问题,同时:
- 保持效率
- 确保不会产生不必要的错误来源
- 尽量减少和现有系统的冲突
- 考虑全局
- 考虑可扩展性/可重用性
- 对可能存在的权衡做出决定
通常是没有足够的时间来制定完美的解决方案。一个高级开发人员必须知道他们目前可以接受哪一个相对最优的解决方案,但一定要提高意识,即目前这是一个快速的解决方案,但它需要在将来的某个时候改变。
技术技能&经验?
当然,高级开发人员拥有大量的技术技能经验是很重要的。这并不意味着他们能够记住所有语法,并且能够列出所有可用的数组函数。
不,他们更多的需要知道有什么工具和软件模式,所以他们可以针对当前的问题作出正确的选择。
通常,高级开发人员在遇到可能的障碍时会有一些第六感。这种感觉是从以前的项目中吸取的。他们不能立即解释为什么一种方式可能更糟,但他们可以打赌为什么一种解决方案会更好。不过,当他们仔细研究这个问题时,他们最终会发现给定方法到底有什么问题。
了解你所不知道的,作更多的研究来学习更多关于这个问题也是必不可少的。
技术知识⚙️
一个优秀的高级开发人员也知道可以用哪些工具,即使他们不使用它们,即使他们不记得它们是如何运行的。他们知道,在特定的场景,就一定会有一种非常适合的东西。
他们是将最合适工具与给定问题配对的专家。 他们可能需要进行一些研究以确保工具适合工作,但他们知道要寻找什么。
尤其是在新项目开始时,高级开发人员更应做出明智的选择,从长远来看,哪些决定会比较有益。
从头到尾(全流程)?
高级开发人员能够处理构建软件部分的所有步骤:
- 分析问题
- 理解问题
- 提出一个可行的问题解决方案
- 实现解决方案
- 测试解决方案
- 集成解决方案
- 部署解决方案
指导?
每个高级开发人员都应该具备的一个重要素质是能够领导他人。这意味着:
- 帮助他们提升他们的技术能力
- 引导他们找到更好的解决方案,并帮助他们理解原因
- 当他们陷入困境时帮助他们
- 不要看轻他们
- 鼓励他们
- 分享你所知道的
- 有功则赏
沟通 ?
高级开发也应该是一个优秀的沟通者:
- 以通俗的方式向某人解释问题(即使是对非技术人员)
- 提出一个解决方案,并解释为什么在所有解决方案中,它是最好的
- 引导工作环境的政治形势
- 设法保护其他开发人员不受糟糕的管理决策的影响
谦逊 ?
高级开发人员并不总是对的,他们应该知道这一点。每个人都会犯错误,一旦犯了错误,就应该承认:
- 提高对问题的认识
- 宣称对问题负责
- 分析问题的严重性
- 有一系列解决问题的方法
- 接受帮助
此外,高级开发人员永远不要以为自己永远是对的。 他们应该分析来自其他人的建言,并准备接受它作为更好的解决方案。 但是,他们也不应该轻易受到他人的影响。 他们应该始终牢记最佳解决方案。 自我无处安放。
总结 ✨
总之,一个高级开发人员非常擅长解决问题,为工作选择合适的技术,并帮助他人在自己的工作中脱颖而出。