初、中和高级程序员究竟差在哪?

post thumb
翻译
by 马杰-天津/ on 21 Aug 2019

初、中和高级程序员究竟差在哪?

社区译者:马杰-天津

原文地址:https://medium.com/better-programming/the-differences-between-a-junior-mid-level-and-senior-developer-bb2cb2eb000d

你如何更上一层楼?

作为一名初级、中级或高级的开发人员,并不仅仅意味着他们在编程年限长短的差异。有时候初级开发人员的年龄甚至可能比高级开发人员还要大。这一切都取决于技术。这并不是说高级开发人员必须是所有方面的专家,但毋庸置疑高级开发人员肯定远比初级和中级开发人员能更加熟练。

除了编码技能使高级开发人员与中级和初级开发人员区别开来,那还有什么区别呢?

  • 知识

显然,高级开发人员比初级和中级开发人员拥有更多的知识。掌握设计模式,架构,自动化测试,性能,安全性等知识是初级开发人员与中级和高级开发人员缩小差距的好方法。

了解软件开发中应该如何做是很重要的。但是仅仅知道这些东西并不能使你成为一名高级开发人员。知识并不是开发者之间最大的区别,它只是其中一个因素。

  • 编码

尽管大多数人认为,编码并不是与计算机进行对话。编码只是将人与人的交流用来指导计算机,并且最终代码被编译成为0和1。

代码能让将来使用它的其他开发人员顺利理解,即使从未见过代码的新团队也应该能够打开代码后就开始处理新功能或错误修复,这是初级开发人员和高级开发人员之间的巨大差异。

我没有考虑中级开发人员,因为在编码技能方面,中级开发人员是一个灰色地带。显然,它介于初级和高级之间。它可能更倾向于高级方面。这主要与经验有关,因为中级开发人员至少经历过一次完整的开发周期。他们犯了许多最低级的错误,并从中吸取了教训。

如何识别初级开发人员?

初级开发人员是缺乏经验的。有些刚毕业刚刚开始全职开发工作。他们的心态通常是让代码运行起来就行。他们认为能运行的程序就是好的程序。

编写精简的代码是很困难的。这是初级开发人员所做不到的事情。初级开发人员会编写一些奇怪的代码,通过一行复杂抽象的代码就辨别出是一个初级开发人员。这是初级开发人员想向其他开发人员炫耀他们可以编码的多好,但是这是错的。初级开发人员专注于计算机如何运行代码而牺牲了人性化的一面。

高级开发人员高明在哪?

当你查看高级开发人员的代码时,你可能会想:这就是全部吗?代码的其余部分在哪里?高级开发人员编写简单,直接,甚至是愚蠢的代码。这才是开发人员在编程时可以拥有的最大品质之一。一位资深开发人员遵循 KISS 原则:保持简单,愚蠢(Keep it simple, stupid)。

高级开发人员以不同于初级开发人员的方式思考他们的代码。高级开发人员会考虑代码编写的可维护性和可伸缩性。这是一种与初级开发人员完全不同的心态,高级开发人员考虑到那些使用他代码的人,而初始开发人员只让代码能正常运行。

其实不仅仅是拼编码技巧

除了编码技巧,还有一些其他的因素能展示出你是什么层级的开发人员。

一般来说,初级开发人员执行最简单的任务或影响较小的任务,他们不做任何架构设计。中级开发人员也没有设计解决方案,他们只是执行任务。与初级开发人员的不同之处在于,只要按照常规分配给他们任务,他们就可以在不怎么监督的情况下完成这些任务。而高级开发人员可以完全自主的开发应用程序。

这并不意味着高级开发人员在此过程中没有任何问题。每个开发人员每天都有很多问题,这是常态。对高级开发人员来说也并没有什么不同。但不同之处在于,高级开发人员知道如何提出正确的问题以及如何处理这些问题。中级开发人员可以在相对常规的任务中提出正确的问题,但在更复杂的任务中需要帮助。

高级开发人员却永远不会迷失,他们知道如何正确的跟进问题。这并不是说高级开发人员不能向其他开发人员寻求帮助。有时候,最好的方法就是向在该领域有经验的其他开发人员寻求帮助。

中级开发人员也应该能够提出正确的问题,只要他没有被分配到需要深知识水平的高度复杂的任务。

不要寄希望于一个初级开发人员能够立即提出正确的问题。由于初级开发人员缺乏经验,他们需要更有经验的开发人员的指导。初级开发人员需要获得必要的资源大力促进他们找到正确的发展方向。

如何进入更高段位?

作为开发人员,我们都希望自我提升并变得更好。但是,进入到更高层级需要哪些步骤呢?

  • 初级到中级

由于初级开发人员缺乏经验,因此至少要经历几次完整的开发周期是非常重要的。通过这种方式,你将掉入到大量陷阱中并从中学习如何在下次避开它们。

在编码时,你应该学习如何编写简单的代码。替下一个将要处理这段代码的人考虑一下。你还应该学习如何调试,因为这将使你更好地了解程序运行过程中发生的情况。

此外,最好用实践的方式去学习架构,性能,安全性等。缩小达到中级所需的知识差距。

  • 中级到高级

从中级到高级可能会非常困难。一些开发人员在整个职业生涯中只能保持在中等水平。

高级开发人员知道哪些地方可以切掉,哪些地方不应该切掉。这些都是过去犯过错误的教训。

如果你想要达到高级水平,你必须准备好接受没有人知道如何解决的任务。你应该了解的不仅仅是如何完成工作。作为高级开发人员,你的工作也是帮助经验不足的开发人员。当他们不知道如何做某事时,你就是他们的后备力量。

高级开发人员掌握他们的技术堆栈可能并不令你感到惊讶。比编码技巧更重要的是了解你所在公司内使用的所有工具和应用程序。

结论

初级,中级和高级开发人员之间的差异并非全部来自经验的多少。毋庸置疑高级开发人员比初级和中级开发人员更熟练。但知识并不是最重要的因素。

与初级开发人员相比,高级开发人员编写代码更容易,并且具有不同的思维方式。除了编程技术,知道要问什么问题以及如何跟进这些问题是至关重要的。只有具有丰富经验的高级开发人员才知道如何在所有情况下做到这一点。

要成为初级开发人员,应该专注于编写简单的代码并经历多个开发周期。要从中级到高级开发人员,应该专注于学习而不仅仅是日常任务。你应该愿意承担最艰巨的任务并成为技术领域的领导者。另外,高级开发人员要担当缺乏经验的开发人员的后备力量。

我留下马丁·福勒的一句话:“任何傻瓜都能写计算机能理解的代码,优秀的程序员编写人类能够理解的代码。”

Tags: