我对高级开发人员的定义
对你所做的事情充满热情
成为“问题解决者”
学习编程语言和框架的基础知识
成为导师并拥有导师
保持最新状态
离开你的舒适区
为你的观点而战
社交
也要注重软技能
结论
在我担任软件开发人员期间,我结识并共事过许多其他开发人员。他们中有的刚刚开始学徒生涯,有的大学毕业后才开始第一份工作,有的已经拥有多年的工作经验,甚至有的拥有十多年的软件开发经验。
在我职业生涯的早期,我问过自己什么是“高级”开发人员,以及如何获得这个头衔?我以为这与工作经验的年限有关,如果我有 3 年以上的工作经验,我就会自动获得这个头衔。
如今,在与许多其他开发人员合作之后,我对“高级”软件开发人员这个称号有了明确的看法。
首先我来总结一下我作为一名高级软件开发人员的显著特征:
- 对你所做的事情充满热情
- 成为“问题解决者”
- 学习编程语言和框架的基础知识
- 成为导师并拥有导师
- 保持最新状态
- 离开你的舒适区
- 为你的观点而战
- 社交
- 也要注重软技能
现在让我们更深入地探讨这些主题。
对你所做的事情充满热情
如果你对所做的事情充满热情,其他大部分分数都能自然而然地达到。在我看来,只有热爱自己所做的事情,才能成为一名优秀的软件开发人员。这也意味着你应该选择一个你目前(或将来)非常擅长的技术栈或专业。
当然,你也应该学习专业之外的其他知识。你的目标应该是成为一名精通自己专业领域的T型软件工程师。
在这篇博文中,我将主要关注 Web 开发技术栈,因为我对此有最丰富的经验,并且对它们有个人的看法。
成为“问题解决者”
你应该热爱在无限的时间内解决具有挑战性的问题。你应该拥有力量、雄心、技能和热情来解决职业生涯中可能出现的任何问题。
学习编程语言和框架的基础知识
这对于软件开发者来说至关重要。学习编程语言或框架的基础知识通常并不复杂。大多数情况下,你可以在短时间内快速实现功能,甚至完成一些小型项目。但如果你需要调试、调整框架或修复错误,情况就会变得棘手。
例如,许多人使用 Angular CLI,但并不熟悉其幕后的所有步骤。或者,许多人使用 Angular 和 TypeScript,但不知道如何读取压缩包中的 JavaScript 代码。
基本上,您可以按照以下基本步骤来学习基础知识:
阅读一些关于软件编程的基础书籍
我建议读一些软件开发的经典书籍,比如《代码整洁之道:敏捷软件工艺手册》或《程序员修炼之道》 。这些书会提供编写优秀软件的基本模式、指南和最佳实践。
深入研究你的编程语言
在 Web 开发中,JavaScript 是你应该掌握的语言。最终,你的浏览器会运行 JavaScript 代码(即使它是使用 Angular 等框架和 TypeScript 等编程语言编写的),你需要能够理解这些被执行的代码。如果你需要分析某个功能在你的框架中是如何实现的,这一点也很重要,所以你应该能够阅读底层 JavaScript 源代码。
对于 JavaScript,我建议您阅读JavaScript:精彩部分。
掌握你的框架
与编程语言一样:深入研究框架中使用的高级机制。例如,对于 Angular,我推荐博客“深入 Angular”。
了解你的 IDE/编辑器/命令行
充分利用 IDE、文本编辑器和命令行的键盘快捷键、插件和命令,尽可能提高效率。如果您使用 Visual Studio Code,请查看我的文章《如何使用 Visual Studio Code 提高工作效率》。
学习版本控制
我主要使用 Git,可以向您推荐免费的在线电子书Pro git。
成为导师并拥有导师
在我看来,只有当你指导他人并且自己也有导师时,你才能称自己为“高级”开发人员。
你应该在公司、项目甚至互联网上找到可以向你学习、提升的人。你也可以找一位“远程”导师,通过阅读博客、观看演示文稿、收听播客或阅读推文来指导你。
不要害怕自己并非事事都做到最好,几乎总有人比你更优秀。(另请参阅“冒名顶替综合症”)
如何指导他人:
- 要有耐心,不要因为别人缺乏知识而评判他们
- 让对方说话并积极倾听
- 展示高级开发人员可以实现的成功之路
- 投入足够的时间并在需要时提供帮助
保持最新状态
我的建议是利用这些渠道来让自己了解最新情况:
- 叽叽喳喳
- YouTube
- 播客
- 会议
- 博客
- 聚会
- (在线)课程
离开你的舒适区
许多开发人员试图避免离开自己的舒适区,而“高级”开发人员不应该害怕离开自己的舒适区。以下是一些示例:
- 您害怕与很多人谈论技术问题?——> 在会议或聚会上发表演讲并适应它。
- 你不喜欢写后端代码,只对前端感兴趣?——> 那就去学习后端技术吧。如果你了解“另一面”,你就会受益匪浅。
- 您是否避免接触 CI/CD 管道,因为您不了解它,而其他一些开发人员对此更有经验?--> 花时间学习基础知识,这样您就可以帮助自己,并且不依赖其他开发人员。
为你的观点而战
我认为,“高级”开发人员应该有清晰的观点,并且能够在客户或其他开发人员面前为之奋斗。对我来说,如果我把技术决策“发号施令”给团队,而每个人都不加解释地接受并开始执行,那我肯定不会满意。
如果双方能够就技术方案进行生动活泼的讨论,那么讨论会更加有趣。这可以帮助架构师获得新的见解,团队也可以积极地影响决策。
社交
不要躲在显示器后面。走出去,和其他开发者交流,你会从中受益。此外,利用上面提到的社交平台与其他开发者联系。
我还建议您建立个人品牌并让其他人关注您:
- 拥有一个可以展示你的项目的网站
- 使用 Twitter、Facebook、YouTube 或 Instagram 等渠道,向您的关注者介绍有趣的话题
- 创建一个博客,开始撰写技术文章
- 尝试在会议上进行演讲
也要注重软技能
编写优秀的代码固然重要,但能够向客户等“非技术人员”解释技术细节也同样重要。你应该能够以通俗易懂的方式绘制架构图,或用文字描述。此外,你还应该具备良好的工作时间管理能力,能够优先安排任务,并以最高效的方式完成它们。
结论
正如你所见,成为一名高级软件开发人员并非易事,无法在短时间内实现。多年的经验至关重要,但你必须花时间专注于上述方面。在我看来,如果你只有多年的工作经验,却没有在开发方面有所成长,那么你根本无法成为“高级”开发人员。
当然,这只是我的拙见,所以请让我知道您对“高级”开发人员的定义是什么,以及您与他们合作有什么经验?
文章来源:https://dev.to/mokkaapps/my-definition-of-a-senior-developer-3k8l