初级开发人员需要掌握的 12 个高级开发人员特质🔥
在任何领域,无论是艺术、体育还是软件开发,达到顶峰的最快方法就是研究那些已经处于顶峰的人......然后做他们正在做的事情,而你没有做。
如果你以编写代码为生,那么就需要了解一下高级开发人员。这意味着你需要了解他们拥有哪些你不具备的技能、习惯和特质。
在过去 3 年中,我花费了数千小时与世界各地的顶尖软件工程师一起工作,我发现高级开发人员有 12 种特质,您可以立即采用这些特质来快速将您的成长提升到一个新的水平。
让我们从第一点开始……
1. 专注
专注意味着对某些事情说“不”,这样我们就可以做其他事情。
理想情况下,对那些不重要的事情说“不”。对那些真正重要的事情说“是”。那些能让船更快前进的事情。
这对很多开发者来说真的很难,因为它违背了我们的本能。这意味着你必须接受自己无法做到所有事,而且并非所有机会都是平等的。
你不可能学习每一个新框架。你不可能阅读每一份新闻通讯。你不可能参加每一个会议。而且你也没有必要这么做。
你的时间有限,你的精力也有限。
成为一名高级开发人员意味着选择你的战斗。
人们以为专注就是对你必须专注的事情说“是”。但这根本不是它的真正含义。它的意思是对其他一百个好主意说“不”。——史蒂夫·乔布斯
有趣的是,你选择的越好,进步就越快。高级开发人员每天和你一样有24小时。但他们完成的工作更多。
如何?
少做点事。
当新事物出现时,问问自己:“这真的重要吗?”还是这只是另一种趋势?很有可能,它只是又一个伪装成机会的干扰。
高级开发人员说“不”的比说“是”的多。他们完成的项目比开始的项目多。而且,他们在学习新框架之前,就已经精通了他们已经使用的框架。如果你想更快地晋升为高级开发人员,你需要培养的第一个特质就是专注。
2.二阶思维
有一件事能让人联想到“初级开发者”,那就是“我们先开发一下,然后自己去发现”的态度。初级开发者往往倾向于先写代码,然后再思考。
如果你刚刚起步,这可能是一种良好的态度,但是当你开发生产级软件时,有些技术决策你将无法改变,或者说无法轻易改变。
例如,你选择Vue作为前端框架。
然后,需求变了。你开始觉得 React 会是更好的选择。当然,你可以切换到 React。但这既不容易,也不便宜。
高级开发人员都知道,沉迷于自己的知识很容易。但如果你迷恋自己最熟悉的框架和库,你就会开始做出糟糕的技术决策。
他们会仔细考虑自己选择的后果。这意味着,在试图理解问题时,他们会问“五个为什么”。
或者思考他们的解决方案可能存在的缺点。
例如,现在我们添加了 Redux,全局状态管理起来可能会更容易一些。但我们必须让新开发人员熟悉 Redux。学习曲线很高。
而且,你猜怎么着,我们的 JavaScript 包会变得更大,这对性能不利。
考虑次要情况会让你成为更优秀的开发人员。这也会帮助你应对技术面试。
🚨 PS:您是否希望快速晋升为高级开发人员,获得优质的资源、反馈和责任感?点击此处加入我们的免费社区——高级开发学院。🚨
3.实用主义
当初级开发人员阅读一本关于最佳实践的书时,他们会立即尝试将其应用到任何版本的每一行代码中。他们会虔诚地遵循这些最佳实践。
如果你无法独立做出技术决策,那么遵循预先定义的规则会更容易。但软件开发并非宗教。
一个很好的例子就是测试。
当初级开发人员了解 TDD(测试驱动开发)时,他们会开始尝试测试所有内容,力求实现完整的代码覆盖。但事实上,完整的代码覆盖效果只会越来越差,只会浪费时间。
高级开发人员深谙如何平衡最佳实践和上市时间。何时该走捷径,何时不该走捷径。
快速修改代码会产生 bug 和技术债。如果代码上下文发生变化,却仍然墨守成规,最终会导致错误的决策。
你需要保持平衡。
根据具体情况,愿意重新考虑您的技术选择。
4. 无需证明
由于缺乏自信,初级开发人员总是试图向别人证明自己。高级开发人员也一样,他们对自己的价值和技能缺乏信心。
他们的自信建立在从他人那里得到的认可之上。
这是一场必输的比赛。
他们会试图在某次技术讨论中展示自己的知识水平,在别人发言时发言,或在深夜或周末推送代码。
事实上,所有这些行为都会造成不良的团队环境,并适得其反。在最好的情况下,它们会让你看起来不像实际的资历那么深。
有两种方法可以解决这个问题。
第一个就是不要再花太多精力去寻求外界的认可。因为事实上,你不需要向任何人证明自己,只需要向自己证明。
第二是与你头脑中的消极声音和平相处。
你可能对自己要求极高。完美主义、对失败的恐惧,以及对“真正的”开发者的错误认识,正在摧毁你的自尊。正因如此,无论你多么努力,你总是感觉力不从心。
是时候摆脱你的思绪了。
专注于精通你的技能,其他的都会水到渠成。你会立刻对自己和技能更加自信。你也不再需要向陌生人证明自己。
5.掌握基础知识
每当我在 LinkedIn 上看到开发者的个人资料,上面写着“React”开发者或“Angular”开发者时,我就知道他们不是高级开发者。他们可能在某个框架上是高级开发者,但总体来说算不上高级开发者。
框架开发人员永远不会成为高级开发人员。
框架并不能让你成为高级人才,因为框架只是锦上添花,而不是蛋糕本身。它只是冰山一角,而不是冰山底部。
我甚至推测,当前软件开发人员(甚至是高级软件开发人员)中冒名顶替综合症流行的背后并不是缺乏天赋或缺乏努力。
基本面很薄弱。
这也是为什么像调试或性能优化这样的话题对大多数开发人员来说就像一场猜谜游戏。他们不习惯深入研究他们所使用的库和工具。
要成为高级开发人员,您不仅必须了解事物背后的“什么”,还必须了解事物背后的“为什么”。
例如,高级开发人员不仅能够构建 React 应用程序,还能理解 React 为何以某种方式构建,以及如何与编写它的语言(JavaScript/TypeScript)和运行平台(Web 浏览器)相融合。
好消息是,一旦你掌握了基础知识,一切的水平都会提高。
🚨 PS:您是否希望快速晋升为高级开发人员,获得优质的资源、反馈和责任感?点击此处加入我们的免费社区——高级开发学院。🚨
6. 端到端交付
公司避开初级开发人员的首要原因是,他们需要大量的外部帮助才能完成工作。外部帮助意味着你需要麻烦高级开发人员来完成你的工作。
初级开发人员被认为“昂贵”,因为他们无法独立交付。
相反,高级开发人员可以端到端交付。给他们一堆需求,他们就能搞定剩下的。这并不意味着他们是独狼,他们通常很擅长团队合作。
这并不意味着高级开发人员会为了推动事情发展而快速破解。
那不是一个“真正的”高级人员。
但这并不意味着他们深入了解软件开发生命周期的每个部分。
但是,高级开发人员了解软件开发生命周期中的所有主要部分,并且可以为每个部分(前端、后端、部署)做出贡献。
如果您是希望升级的初级/中级开发人员,端到端交付是您需要关注的一个特质。
7.心智模型
高级开发人员与初级开发人员之间的主要区别之一是他们能够处理的复杂程度。
资深人士可以理解更复杂的代码库和要求。
他们能够理解二阶情况。代码库的变化将如何影响性能、成本,甚至团队。
他们之所以能做到这一点,并非因为他们记住了每一个实现细节。这是不可能的,因为人类的记忆力非常有限。
他们这样做是因为他们将代码的复杂性抽象成了思维模型。这些是表达现实的简单方法。
开发人员如何构建高质量的心智模型?
通过研究框架和库背后的原理,并学习它们背后的设计模式。根据你的技术栈,市面上有很多不同的设计模式。比如 SOLID 原则,或者 MVC……
但我认为最好的开始方式是选择您正在使用的框架并尝试超越代码。
问问自己,这个框架的创建者为什么要这样构建它?它是基于新的概念,还是仅仅是古老原则的实现(通常都是这样)?
通过回答这些问题,你将构建软件开发的思维模型,并能够应对更多复杂情况。这是快速晋升为高级开发人员的最有效方法之一。
🚨 PS:您是否希望快速晋升为高级开发人员,获得优质的资源、反馈和责任感?点击此处加入我们的免费社区——高级开发学院。🚨
8. 高级开发人员掌控故事
高级开发人员最擅长的一件事就是领导技术讨论并影响周围的人。无论是业务利益相关者、产品经理还是其他开发人员,高级开发人员都知道如何引导他们朝着正确的方向前进。
他们通过结合自信、技术专长和沟通技巧来实现这一目标。
高级开发人员也能够设定严格的界限。
他们可以不带情绪地表达不同意见。他们可以在会议期间为自己(和他人)辩护。他们可以积极地协商薪资。
他们讲述着自己的故事。
如果另一位开发人员在代码审查期间开始指责他人,资深开发人员知道如何阻止他们。如果高层管理人员试图干涉开发人员的工作并进行微观管理,资深开发人员知道如何在不损害双方关系的情况下予以阻止。
没有关于如何成为一名更加自信的开发人员的分步指南。
这需要反复练习。第一步就是不要总是说“是”。开始在薪资谈判中努力争取自己的利益。
9. 长远思考
初级开发人员只考虑“现在”。他们目光短浅。当他们走捷径时,他们的代码就容易出现这种情况。初级开发人员会扩展一段代码,却不考虑如何正确地重构它,或者干脆忽略测试和性能。
但初级员工也会对自己的职业生涯考虑得很短浅。
这可能意味着频繁跳槽或破坏人际关系,也可能意味着忽视。
比如,因为现在工作稳定,就没怎么提升技能,也没怎么推销自己。结果六个月后被裁员,才后悔莫及。
成为高级开发人员的一部分就是开始进行长远思考。
第一步就是改变你的思维模式。初级开发人员的大多数短期思维并非源于懒惰,而源于自我怀疑。
他们内心深处仍在思考,成为一名开发人员是否适合自己。或者,他们是否选择了正确的职业。
这些疑虑使他们无法长期承诺。
好事需要时间,高级开发人员知道这一点,并相应地调整自己的想法。
如今,人工智能威胁着软件开发的终结,这种短期思维比以往任何时候都更加普遍。既然很快就会消失,为什么还要投入呢?
相信我,只有当我全身心投入到我的开发职业中时,事情才会开始好转。
我说:“就是这个。”
我不再向外张望。我告诉自己:这是我现在的工作,也是我未来十年的工作,所以让我好好做吧。
我开始投资我的技能,因为现在我知道它们会带来回报。
即使你未来20年不打算写代码,拥有长远的眼光也会给你带来巨大的益处。高级开发人员之所以能达到高级水平,是因为他们对自己的技术专心致志。如果你渴望达到高级水平,也应该效仿。
🚨 PS:您是否希望快速晋升为高级开发人员,获得优质的资源、反馈和责任感?点击此处加入我们的免费社区——高级开发学院。🚨
10. 卓越是一种习惯
我认为肯特·贝克说过那句名言:“我不是一位伟大的程序员,我只是一位拥有良好习惯的优秀程序员。”习惯很重要,因为它经得起时间的考验。
因为你对 JavaScript 框架的任何知识迟早都会过时。技术在变化,但你的习惯会永远伴随你。
好消息是,人类是习惯的动物。
在我们的大脑中建立新的常规并不容易。
但一旦我们将它们内化为习惯,就更容易坚持下去。利用这一点的最佳方法是,设定目标,并将其分解成日常行动。然后通过重复,将这些行动转化为习惯。
例如,如果您想提高测试水平,请每天编写一个单元测试。
如果你想在日常会议中准备得更充分,思路更清晰,那就写日记吧。如果你想找一份新的开发人员工作,需要提交 100 份申请,那就每天提交 10 份。
养成新的习惯,你向高级水平迈进的步伐就会不断稳步。
11.保护你最重要的资产
成为一名高级开发人员意味着不仅要长期考虑您的代码和技术决策,还要考虑您的健康。
因为健康就是财富。
我在我的视频中反复谈论这一点。
开发人员的工作极其久坐。你一天中的大部分时间都坐在电脑前的椅子上。这对你的健康非常不利。
此外,办公室里还有各种垃圾食品,比如薯片、汽水和糖果。这意味着,除非你有意识地努力,否则很难保持健康和体形。
但是,如果您想在编写软件方面拥有长久而富有成效的职业生涯,并且不想最终患上背部问题、糖尿病甚至更糟糕的疾病,那么您需要开始关注自己的健康。
欲得金蛋,莫杀鹅。欲求更高效率,先照顾好自己。
这并不意味着你必须开始每周去健身房五次。
或者疯狂节食。但每周至少要运动2到3次。你可以去健身房,跑步,或者参加团队运动。我现在正在做
在饮食方面,减少糖和精制碳水化合物的摄入。肉类也不要吃得太多。
也要考虑你的心理健康。
忽略“吃饭、睡觉、编码、重复”之类的建议,在工作之外建立自己的生活。
开始一个新的爱好。联系一下朋友。休息一下。
短期来看,你的进步可能会慢一些。但从长远来看,你将能够在游戏中坚持更长时间。
🚨 PS:您是否希望快速晋升为高级开发人员,获得优质的资源、反馈和责任感?点击此处加入我们的免费社区——高级开发学院。🚨
12. 闭合循环
最后,高级开发人员深知因果报应。他们知道,无论自己多么努力,多么聪明,在通往巅峰的道路上,总会有无数人给予他们帮助。
这不仅不会抹杀他们的功绩,而且也是对其他人的认可。
这样他们就形成了一个完整的圈子。
他们帮助其他开发人员,并且不求回报。
他们这么做,并非因为能让你升职、获得地位或赢得赞赏。他们这么做,是因为这是正确的事情。
就连科比·布莱恩特也会抽出时间来指导年轻球员,让他们接触篮球。你也可以抽出时间去帮助新晋开发者。
帮助刚起步的人会让你重新燃起热情。初学者初次接触事物时所感受到的热情和好奇心极具感染力。
另一件事你可以变成日常习惯!
好的,就是这样。掌握这12个特质,你就能快速晋升到高级甚至更高的职位。
接下来,我希望你做以下两件事:
1. 你认为高级开发人员有哪些特质值得我们添加到我们的列表中?请在下方评论,我会尽力回复!
2. 如果您是一位雄心勃勃、努力提升水平的开发人员,并且正在寻找志同道合的社区,请单击此处加入我们的免费 JavaScript 开发人员社区,以快速晋升到高级水平。
文章来源:https://dev.to/dragosnedelcu/12-senior-developer-traits-junior-developers-need-to-master-285m