本文转载自雷锋网。作为程序员,身边的同事有工作6年的中级程序员,也有工作3年的高级程序员。您可能想知道,初级、中级和高级开发人员之间有什么区别?ClemOnojeghuo在Unsplash上拍摄的照片无论您是初级、中级还是高级开发人员,不仅仅取决于您拥有多少年的编程经验。初级开发人员甚至可以比高级开发人员年长。归根结底,都是技术决定的。这并不意味着高级开发人员必须是全栈专家,但可以肯定地说,高级开发人员的技能远高于初级和中级开发人员。但是,区分高级开发人员与中级和初级开发人员的不仅仅是编码技能。那么它们之间有什么区别呢?知识显然,高级开发人员比初级和中级开发人员拥有更多的知识。学习设计模式、架构、自动化测试、性能、安全性等是弥合初级开发人员与中高级开发人员之间知识鸿沟的好方法。了解如何在软件开发中做事很重要。但是仅仅知道这些东西并不能使你成为高级开发人员。知识库不是开发人员之间最大的区别,它只是因素之一。编码尽管大多数人认为编码是什么,但它不仅仅是与计算机通信。编程就是与人交流,指挥电脑工作。最终,代码被编译为0和1。对于将来使用它的其他开发人员来说,代码必须易于理解。以前从未见过代码的新团队应该能够运行代码并处理新功能或错误修复。这就是初级开发人员和高级开发人员之间最大的区别所在。在这种比较中,我不会考虑中级开发人员,因为中级开发人员在编码技能方面是一个灰色地带。显然,它介于初学者和高级之间,可能更倾向于高级。这主要与经验有关,因为中级开发人员可能至少经历了一个完整的开发周期。他们犯了许多最简单的错误并从中吸取教训。如何识别初级开发人员?初级开发人员缺乏经验。有些人刚刚毕业并开始了他们的第一份全职工作。初级开发人员的心态通常是让代码工作。有效的软件和优秀的软件在他们看来是一样的。编写干净的代码很难,超出了初级开发人员的能力范围。初级开发人员经常编写花哨的代码。您可以通过古怪的代码行和过于复杂的抽象来识别初级开发人员。初级开发人员倾向于以这种方式炫耀自己的技能,试图让其他开发人员知道他们的代码有多好,这是错误的。高级开发人员呢?在查看高级开发人员的代码时,您可能会想:就这些吗?剩下的代码呢?高级开发人员编写干净、简单甚至愚蠢的代码。这是开发人员在编程中可以拥有的最重要的品质之一。高级开发人员遵循KISS原则:保持简单、愚蠢(Keepitsimple,stupid)。高级开发人员和初级开发人员对代码的看法不同。高级开发人员在编写代码时会考虑可维护性和可扩展性。这是与初级开发人员完全不同的思维方式:高级开发人员考虑的是必须使用代码的人,而初级开发人员只是考虑让代码在计算机上运行。不仅仅是编码技能除了编码技能,还有其他因素可以告诉您他们是什么类型的开发人员。通常,初级开发人员执行最简单的任务或低影响的任务,他们不进行任何架构设计。中级开发人员也不设计解决方案,他们只是执行任务,不像初级开发人员,只要分配给他们相对常规的任务,他们就可以在较少的监督下完成。高级开发人员可以完全独立开发应用程序。这并不意味着高级开发人员在此过程中没有问题。每个开发人员每天都有很多问题,这一点不会改变,高级开发人员也一样。不同之处在于,高级开发人员知道如何提出正确的问题以及如何处理这些问题。中级开发人员可以针对相对常规的任务提出正确的问题,但在处理更复杂的任务时需要帮助。高级开发人员永远不会迷路,他们知道跟进问题的正确行动。这并不意味着高级开发人员不能向其他开发人员寻求帮助。有时最好的方法是向在该领域有经验的其他开发人员寻求帮助。中级开发人员也应该能够提出正确的问题,只要他没有被分配到需要深入知识水平的高度复杂的任务。您不应该期望初级开发人员提出正确的问题。由于初级开发人员缺乏经验,他们需要更有经验的开发人员的指导。初级开发人员需要获得必要的资源,或者被大力推向正确的方向。更上一层楼我们都想提高自己,成为更好的开发人员。但是你如何行动才能进入下一个层次呢?初级到中级由于初级开发人员缺乏经验,经历几个完整的开发周期很重要。一路上,您会掉入许多陷阱并学习如何避免它们。在编码方面,您应该学习如何编写简单的代码。想想下一个将要处理此代码的人。您还应该学习如何调试,因为这将使您更好地了解程序运行时发生的情况。此外,您应该熟悉架构、性能、安全等方面的实用知识,弥补达到中级水平所需的知识差距。中级到高级从中级到高级是相当困难的。一些开发人员在整个职业生涯中都会停留在中等水平。高级开发人员知道什么该做,什么不该做,这些都是从过去的错误中积累的教训。如果你想进步到高级,你必须准备好承担别人不知道如何解决的任务。你应该知道的不仅仅是如何完成工作。作为高级开发人员,您的部分工作是帮助经验不足的开发人员。当其他开发人员不知道如何做某事时,您就是他们的后盾。高级开发人员拥有自己的技术堆栈,而不仅仅是编码技能。您需要了解公司中使用的所有工具和应用程序。结论初级开发人员、中级开发人员和高级开发人员之间的区别并不取决于您工作了多少年。当然,可以肯定地说高级开发人员比初级和中级开发人员更熟练,但知识并不是最重要的因素。高级开发人员编写的代码更简洁,并且与初级开发人员的思维方式不同。但不同之处不仅在于编码技能,知道要问什么问题以及如何跟进这些问题也很关键。无论在什么情况下,只有经验丰富的高级开发人员才知道该怎么做。如果你想成长为初级开发人员,你应该专注于编写简单的代码并经历多个完整的开发周期。要从中级开发人员晋升为高级开发人员,您应该专注于学习,而不仅仅是完成固定的日常任务。你应该主动承担最艰巨的任务,成为技术组的带头人。高级开发人员的另一项职责是协助经验不足的开发人员。最后,我将以MartinFowler的一句话结束:“Anyfoolcanwritecodethatacomputercanunderstand.Goodprogrammerswritecodethathumanscanunderstand.”(任何傻瓜都可以写出计算机可以理解的代码。好的程序员写出人类可以理解的代码)
