首先,我要说明一个经典的注意事项:我无法授予您高级开发者的头衔。 我对当今公司如何招聘和晋升人员担任高级开发人员职位没有特殊见解。
我可以告诉你,我认为哪些品质会造就一名出色的高级开发者。 我可以告诉你,我如何看待高级开发者和那些尚未达到这个水平的开发者的区别。 如果有一天我负责一支开发者团队,由我来决定他们的级别,我会考虑这些因素。
一名高级前端开发者拥有经验。
这是不可避免的。 你不可能一进入第一份工作就成为高级开发者。
你可能也无法一进入任何新工作就成为高级开发者。 即使我非常确定一个人将成为高级开发者,并且之前也担任过这个职位,我可能也不会让他们从这个职位开始,因为无法保证他们可以在完全陌生的环境中同样有效地工作。 即使技术相同,但人不同。
一名高级前端开发者拥有良好的判断力记录。
开发不仅仅是编写代码,它还涉及做出选择。 良好的选择是经过研究、讨论的,并受本能和经验的影响。 当你做出选择时,你向所有观察者展示了你的判断力。 如果你清楚地表明你的判断是经过深思熟虑的、符合道德的,并且尽可能地透明,那是一件好事。 如果你反复这样做,那就说明你已经晋升为高级开发者。
一名高级开发者在代码之外产生积极影响。
如果你对团队的唯一贡献就是编码能力,那么你可能不是一个特别适合担任高级开发者的候选人。 代码不是在真空中编写的。 至少好代码不是。 好代码反映了一个团队,是凝聚力的愿景的产物,也是一个组织目标的基础。 为了参与好代码,并展示你成为高级开发者的能力,你不能孤立自己,你要坐在桌子的中间(比喻地说)。
软技能不容忽视。 一名高级开发者能够写出清晰的邮件、围绕想法吸引人们、领导会议,以及在微波炉里的汤汁爆炸变成一场消极被动便签大战之前清理它(比喻地说)。
一名高级开发者是乐于助人,而不是无所不知。
假设你的同事来找你问你一些事情,而你对此一无所知。 这是否意味着你还没有准备好成为高级开发者? 绝对不是。 你如何回答这个问题才是你是否具备高级开发者能力的关键。 你能帮助他们弄清楚他们为什么要问这个问题,从而获得更多上下文并提供更广泛的帮助吗? 你能提出一起寻找答案的建议吗? 你会事后做一些研究并与他们跟进吗?
即使你确实知道确切的答案,仅仅说出答案然后转过椅子继续打字,也比和同事一起深入研究这个问题更糟糕。
成为高级开发者并不意味着你必须无所不知,这意味着你能够帮助找到任何东西。
一名高级前端开发者是倍增器。
这是我最喜欢的观点。
有一些开发者,至少在纸面上,比其他人有效率得多。 提交的代码数量是别人的两倍,编写的代码行数是别人的两倍,修复的错误数量是别人的两倍。 你当然可以努力成为这样的开发者,但这并不能自动让你获得高级开发者的资格。
团队中最优秀(也是最资深的)开发者是能够提高其他开发者效率的人。 也许你团队中那位优秀的开发者之所以能够如此出色,是因为其他人正在腾出时间来使他能够做到这一点。 因为其他人创造了坚实的开发环境,促进了生产力。 因为其他人教导了他,并给了他成为这样的人的关键。
一个能够为整个团队提高效率的开发者,绝对是一名高级开发者。
我不能保证做这些事情就能让你成为高级开发者。
我无权告诉你们办公室的管理层考虑这些因素,并将这些因素纳入他们的决策中。 我只能说,如果他们需要我的建议,我会建议他们如何晋升开发者。
你现在能够晋升开发者吗? 你曾经这样做过吗? 请与我们分享你的想法!
我还想补充一点,一名高级前端开发者需要掌握后端的基础技能,以及 SQL 数据库知识。
一个简单的学习方法是,在 Win/Linux/Mac 上下载 .NET Core,然后开始对虚拟架构(模型)编写 LINQ 查询。
是的 - 高级开发者喜欢走出自己的舒适区,并带着新的灵感回到团队,同时不会尝试强加一些晦涩的技术。
同意! 令人惊讶的是,有太多应聘“高级开发者”职位的人刚从编程训练营毕业。 他们无法登录 Linux 服务器,检查文件的权限,或者解释 RGB 颜色值。 真的吗? 先学习几年再回来吧。
我认为这些观点都很好,但它们非常主观,难以衡量。
现在招聘前端开发者的难题在于,不同的公司对前端开发者的要求不同。 有些公司需要他们的前端开发者非常擅长创建风格指南,有些公司需要他们熟悉前端节点 js 应用程序,因此很难判断一个前端开发者到底是什么,更难以衡量一个高级前端开发者是什么。
我完全同意,我最喜欢的片段是“成为高级开发者并不意味着你必须无所不知,这意味着你能够帮助找到任何东西”。
Fabio
更多的思考素材,意识:https://css-tricks.org.cn/front-end-developer-aware/
“开发不仅仅是编写代码…”
#阿门
我还要补充一点,作为一名高级开发者,你应该能够理解公司业务方面的知识,并做出有利于公司盈利的决策。 此外,一名高级开发者或技术主管应该善于与人打交道。 在我的职业生涯中,我与非常有才华的工程师合作过,但由于他们缺乏沟通能力和人际交往能力,他们不受队友和同事的欢迎。 项目和整个流程因此受到影响。
一名高级开发者花费大量*时间在电子表格上... 不,谢谢!
我想补充一点
1) 一名资深开发人员会承认自己在技术和人际关系方面犯了很多错误,会记住并承认自己的错误,不会责怪自己或他人,从错误中吸取教训,并了解如何应用学到的知识,以便下次取得更好的结果。
2) 一名资深开发人员可以接受自己多年来参与的项目被取消;能够完全拥抱新的项目和团队;能够在深入学习不熟悉框架、语言和系统架构的过程中应用自己的经验,以设计和实施构建解决方案所需的任何内容。
3) 一名资深开发人员会在冲刺回顾期间公开真诚地感谢团队成员帮助他们解决问题或摆脱困境,并普遍认可其他团队成员的贡献。
#2 对我来说很难…我现在正经历着类似的事情,这真的不容易。
将标题改为“所以你想成为一名优秀的资深开发人员”,因为你不需要所有这些指针来简单地成为一名资深开发人员 xD
最让我感动的是
我以为成为一名资深开发人员至少需要 5 年的工作经验,或者更好,但实际上,这是 5 年工作经验后的结果。
除了资深开发人员之外,还有更专业的术语,但这并不意味着‘资深’是一个人们愿意炫耀的术语——不是吗?
但要被‘归类’为资深,肯定包括文章中的要点!
而且你可能是一名资深‘前端’Web 开发人员——我想听起来也很酷,对吧?
如果你只是为了薪水 $$$,那么这是一个有缺陷的概念。
你应该考虑的是,你首先要为作为人类的成长和成就做出贡献,并在一个你向你的受众提供出色的产品/服务的商业环境中!
这有多令人满足?:)
此致
Mic Sumner