开发人员的技能范围很广-资历通常不能决定自己的能力。那么,什么使它们比同龄人优越呢?是什么使他们与平庸之辈分开?
拥有5年,10年甚至15年的“工作经验”并不一定能保证您是一个有效,高效的高级开发人员,甚至不是应得的称号。年轻的高级开发人员也不容易,但是高级开发人员的梯队拥有某些共有的特质和知识。
这不是商业秘密,而是可以发展的知识点和思维方式。以下是一些特征,可以轻松帮助区分真正的高级开发人员和具有资历的开发人员。
编程范例
程序,面向对象和函数式编程是编程范式的三重组合,以及面向对象设计的SOLID和干净的编码技术,这些构成了代码创建背后的思维模式的很大一部分。
许多初级开发人员在编码过程中会错过的是编程是一种语言,这意味着它已经超出了语法规则。它是一种可以以多种方式构造的通信工具,编程范例有助于在代码的通信方式上树立一定的立场。
任何人都可以写代码,就像任何人都可以在亚马逊上写一条短信或一篇简短的书评一样。但这种写作水平与斯蒂芬·金的小说不一样。编程范例就像小说作者的情节结构一样,是高级开发人员代码背后的指导力量。所有语言都是由公式组成的,高级开发人员在内部理解公式,而许多初级和中级开发人员还没有体验到这一点。
创造能力
当我们第一次开始使用for循环和if-else语句时,我们倾向于以复制和粘贴代码的形式找到答案。他们如何理解它区分了新初级和低级中间开发人员的技能。
然而,高级开发者更进一步。他们能够在沙箱中创造出像迷你神一样的东西,而无需谷歌全能知识库的帮助。他们知道自己在做什么,也明白自己行动的含义。他们看到了意外情况,或者至少预见到了意外情况,并且理解了代码中的漏洞以及如何改进它。
如果他们的知识有差距,他们就不仅仅是看表面。对工具箱中的所有内容都有更深入的理解。对于高级开发人员来说,代码世界看起来不一样。
客观批评
每个人都偏向于他们为什么知道。初级和中级开发人员倾向于根据个人经验而不是与代码相关的推理。他们的个人喜好,风格,命名约定和思维方式成为他们可能遇到的任何建议或评估的核心。
这没什么错,因为这都是成长过程的一部分。只有在有足够的一系列相反的经验来为开发人员提供一个中心效应时,才能获得真正的客观性。没有正确的编码方法,只有基于情况和场景的有效方法。高级开发人员明白这一点。他们承认他们的代码可能不是最好的,还有改进的空间。
高级开发人员通常会成为有效的代码管理员,标记同事造成的混乱并标记架构中的薄弱环节。他们能够退后一步,并在未来突发事件中看到更大的前景,同时根据预期的负面影响做出选择。它们不受任何一种编码或范例风格的束缚-而是专注于解决方案而不是工具。
优秀软件与工作软件的区别
作为开发人员,我们编写运行的代码。我们中的一些人停在那儿,过一天。另一些人则更进一步,试图把事情清理干净。最好的开发人员是这样的专业人员,他们在编写代码时会编辑和重写我们的代码——在代码运行过程中接受错误和错误,但他们会尽快改进代码,因为他们知道好软件和工作软件的区别。
大多数老板只关注软件是否正常工作,但优秀的高级开发人员更清楚这一点。他们了解技术债务和代码气味的隐形成本。他们了解如何平衡工作软件与优秀软件的需求—以便按时完成项目交付和延期的路线。
他们广博的知识和对框架和语言的理解使他们擅长于区分优秀软件和工作软件——以及如何创建两者——并在情况需要时给予他们提出创造性解决方案的能力。
教的能力
“平庸的老师直接告诉你。好的老师解释。高级的老师演示。伟大的老师激发了灵感。” -威廉·亚瑟·沃德
真正的资深开发人员对他们有着一定的热情,这激发了他们在该领域经验不足的同行,帮助他们提升自己。
编程本身是一个思想的集合,高级开发者有能力将这些思想转化为简洁易懂的东西。他们在不同的界面和媒体之间交流和翻译代码的能力证明了他们对自己选择掌握的语言的真正理解。
成为任何事情的老师都需要一定程度的精通。 尽管“经验”可能以简历的项目形式和在不同公司的时间长短来体现,但教学是一项技能,只有真正了解其技能的人员才能使用
最后的话
真正的高级开发人员是一个多面的动物,有时在其主要工具包之外的区域伪装成初级或中级开发人员,但在编程思想上具有坚实的基础。
但是,上述特征存在于其个性和知识深度中。 它具有比一般程序员更快地遍历未知代码区域的优势。 他们通常是大局思维者,并以开明的思维方式查看代码。
他们将提倡纯净的编码习惯,并引导他们的同伴避免遭受破坏的偏见。 他们善于对待同龄人的错误,并宽容地接受自己的错误-旨在教育和学习而不是消灭自我
他们可以是任何年龄,来自任何背景,并具有数年的“经验”。他们是真正的问题解决者和长期思考者。
谢谢你的阅读
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。