作为开发人员的初、中、高级并不仅仅与拥有多少年的编程经验有关。有时候初级开发人员甚至可能比高级开发人员年龄大。同样,这也这并不意味着高级开发人员必须成为所有人的专家。不过可以肯定地说,高级开发人员比初级和中级开发人员更加熟练。但不仅仅是编码技能使高级开发人员与中级和初级开发人员区别开来。
接下来让我们一起来探究一下,究竟可以怎样来判断开发人员的初、中高级?
知识面
显然,高级开发人员比初级和中级开发人员拥有更多的知识。多了解设计模式、架构、自动化测试、性能、安全性等是初级开发人员与中级和高级开发人员缩小知识差距的好方法。
知道如何完成软件开发中的事情非常重要。但只是知道所有这些东西并不能使你成为高级开发人员。知识不是开发人员之间的最大区别 - 这只是其中一个因素。
编码
尽管大多数人认为,编码不仅仅单纯是计算机通信。编码是关于与人交流和“操控”计算机。最终,代码被编译并转换为零和一。
代码必须对将来使用它的其他开发人员有意义。让从未见过原始代码的新团队能够打开代码并开始处理新功能或错误修复。这是初级和高级开发人员之间的巨大差异。
我将在这个比较中省略中级开发人员,因为在编码技能方面,中级开发人员是一个灰色地带。显然,它介于初级和高级之间。它可能更倾向于高级方面。这主要与经验有关,因为中级开发人员可能已经完成了整个开发周期至少一次。他们会犯许多简单的错误,但也能从中吸取教训。
如何辨别初级开发人员?
初级开发人员缺乏经验。有些刚毕业,正在开始他们的第一份全职工作。初级开发人员的心态通常是让代码工作。可以工作的软件和好的软件对他们而言似乎没什么太大区别。
编写简单的代码很难。这是初级开发人员不做的事情。初级开发人员多会编写一些比较“奇特”的代码。您可以通过那些看起来有些古怪的单行和过于复杂的抽象化来识别初级开发人员。这是初级开发人员炫耀并让其他开发人员知道他们可以编码的好方法。但这样的做法其实是错的。
初级开发人员专注于代码在计算机的方面但却牺牲了人性化的一面。
高级开发人员怎么样?
在查看高级开发人员的代码时,您可能会想:这就是全部吗?代码的其余部分在哪里?高级开发人员编写简单、直接,甚至是“愚蠢”的代码。但这其实是开发人员在编程时可以拥有的最好的品质之一。一位资深开发人员遵循KISS原则:Keep it simple, stupid。
高级开发人员与初级开发人员在用不同的方式思考他们的代码。由高级开发人员编写的代码将考虑可维护性和可伸缩性。这是一种与初级开发人员完全不同的心态 - 老年人正在考虑必须使用代码的人,而大三学生只是考虑让它适用于计算机。
不仅仅是编码技巧
除了编码技巧,还有一些其他因素可以告诉你谁是什么类型的开发人员。
通常情况下,初级开发人员会做一些影响较小的或较为简单的任务。他们不做任何架构设计。中级开发人员同样也不做解决方案,他们只是执行任务,但不同之处在于,在分配相对常规的任务时,他们就会以较少的监督去执行这些任务。而高级开发人员可以完全自己开发应用程序。
这并不意味着高级开发人员在此过程中没有任何问题。每个开发人员每天都有很多问题,而且不会改变。这对高级开发人员来说并没有什么不同。
不同之处在于,高级开发人员知道如何正确地发现问题以及如何处理这些问题。中级开发人员可以在他们相对日常的任务中提出正确的问题,但需要更多的任务帮助。
高级开发人员永远不会迷失,他们知道如何用方法的行动来跟进问题。这并不意味着高级开发人员不能向其他开发人员寻求帮助。有时,最好的方法是向其他有该领域经验的开发人员寻求帮助。
中级开发人员也应该能够提出正确的问题,只要他没有被分配到需要深入知识水平的高度复杂的任务。
你不应该指望一个初级开发人员立即提出正确的问题。由于初级开发人员缺乏经验,他们需要更有经验的开发人员的指导。初级开发人员需要获得必要的资源或向正确的方向大力推进。
进入下一个级别
作为开发人员,我们都希望自我提升并变得更好。但是,您可以采取哪些步骤来达到新的水平?
初级到中级
由于初级开发人员缺乏经验,因此至少经历几次整个开发周期非常重要。通过这种方式,你可能将陷入大量陷阱并学习如何在下次避开它们。
在编码时,你应该学习如何编写简单的代码。想想下一个将要处理这段代码的人。你还应该学习如何调试,因为这将使你更好地了解过程中发生的情况。
此外,你应该熟悉最佳实践并了解架构、性能、安全性等。缩小达到中级所需的知识差距。
中级到高级
从中级到高级可能会非常困难。一些开发人员可能会在整个职业生涯中都保持中等水平。
高级开发人员知道哪些角落可以切割,哪些角落不应该切割。这些都是过去犯错吸取的教训。
如果你想要达到高级水平,你必须准备好接受没有人知道如何解决的任务。您应该了解的不仅仅是如何完成工作。
作为高级开发人员,你的部分工作也是帮助经验不足的开发人员。当他们不知道如何做某事时,你就是其他开发者的后援。
高级开发人员掌握他们的技术堆栈可能并不令你感到惊讶。不仅仅是编码技巧。了解您所在公司内使用的所有工具和应用程序。
结论
初级、中级和高级开发人员之间的差异并非全部来自多年的经验。当然,可以肯定地说,高级开发人员比初级和中级开发人员更熟练。但知识并不是最重要的因素。
高级开发人员编写更简单的代码,并且与初级开发人员的思维方式不同。但它不仅仅是编码技巧,知道要问什么问题以及如何跟进这些问题是至关重要的。只有具有丰富经验的高级开发人员才能在复杂的实际情况下做到这一点。
要成为中级开发人员,您应该专注于编写简单的代码并经历多个开发周期。要从中级上升到高级开发人员,你不仅需要专注于学习而不仅仅是修复日常任务,同时还应该愿意承担最艰巨的任务并成为你的技术堆栈的主人。别忘了,高级开发人员的另一个责任是成为缺乏经验的开发人员的后援。
我将留下Martin Fowler的一句话:“任何傻瓜都可以编写计算机可以理解的代码,但优秀的程序员编写的是人类可以理解的代码。“(Any fool can write code that a computer can understand. Good programmers write code that humans can understand.)
以上信息来源于网络,由“京东云开发者社区”公众号编辑整理,
不代表京东云立场。
欢迎点击“链接”了解更多精彩内容