长沙专业外贸网站建设,阿里云域名注册登录,不用代码的网站建设,优化设计答案大全有一句话在开发人员圈子广为流传#xff1a;“初级开发人员的标志就是需要在中级和高级开发人员的指导下完成工作。”所以#xff0c;我们不要苛刻初级开发人员写的代码对错严谨#xff0c;毕竟每个开发人员都有这样的一个过程。据译者观察#xff0c;初级开发人员往往认为… 有一句话在开发人员圈子广为流传“初级开发人员的标志就是需要在中级和高级开发人员的指导下完成工作。”所以我们不要苛刻初级开发人员写的代码对错严谨毕竟每个开发人员都有这样的一个过程。据译者观察初级开发人员往往认为自己写的代码都是高质量的而中级开发人员认识到了软件知识会影响代码质量中高级开发人员则认识到硬件知识会影响到代码质量高级开发人员反而认为自己写的部分代码质量不够高需要恶补硬件知识和编译器等相关知识……至于骨灰级开发人员可以写出高质量代码并能够充分考虑各种情况。本文后端开发者 Daan 讲述了初级、中级和高级开发人员之间的区别。 作为初级、中级或高级开发人员并不仅仅跟多少年的编程经验相关。初级开发人员甚至可以比高级开发人员年龄要大。这一切都取决于技能。不过这并不意味着高级开发人员必须是所有方面的专家但可以肯定地说高级开发人员要比初级、中级开发人员熟练得多。
既然高级开发人员与初级、中级开发人员的区别不仅在于编程技能那么到底有什么区别呢
知识
很显然高级开发人员比初级、中级开发人员掌握更多的知识。了解设计模式、架构、自动化测试、性能、安全性等这是初级开发人员缩小与中级、高级开发人员之间的知识差距的好方法。
了解软件开发中的事情应该如何进行是很重要的。但是仅仅知道这些知识并不能让你成为高级开发人员。知识并不是开发人员之间最大的区别它只是其中的一个因素。
编程
不管大多数人是怎么想的编程并不是与计算机进行通信。编程是关于与人类交流和指导的计算机。最终代码被编译并转为一连串的 0 和 1。
代码必须对将来使用它的其他开发人员有意义。一个以前从未见过代码的新团队应该能够阅读代码并开始研究新功能或进行 bug 修复。这就是初级和高级开发人员之间的巨大差异所在。
在这一比较中我将把中级开发人员排除在外因为在编程技能方面中级开发人员处于一个灰色地带。显然中级开发人员介于初级和高级开发人员之间他们可能更倾向于高级开发人员。这主要与经验有关因为中级开发人员可能至少经历过一次整个开发周期。他们犯过许多最简单的错误并从中汲取了教训。
如何识别初级开发人员
初级开发人员缺乏经验。有些人刚刚毕业正在开始他们的第一份全职工作。初级开发人员的心态通常是能够让代码工作就万事大吉了。工作软件和良好的软件对他们来说没什么不同。
编写简单的代码其实是一件很困难的事情这恰恰就是初级开发人员不擅长的事情。初级开发人员倾向编写花哨的代码。你可以通过古怪的代码、过于复杂的抽象来识别出初级开发人员。这就是初级开发人员炫耀的方式好让其他开发人员知道他们编写的代码有多牛逼。其实他们这一做法是错误的。
初级开发人员只专注于代码的计算机方面而忽视了人性方面。
那么高级开发人员呢
当你查看高级开发人员编写的代码时你心里可能会嘀咕就这些吗代码的其余部分在哪里呢高级开发人员编写的代码看上去简洁、直接了当甚至还可能让人觉得很愚蠢。而这正是开发人员在编程时可以拥有的最大品质之一。高级开发人员遵循的是 KISS 原则保持简洁愚蠢。 译注KISS 是英文 “Keep it Simple and Stupid” 的首字母缩写意思是 “保持简单和愚蠢”其中 “愚蠢” 不是 “傻”它还有 “迟钝”、“不敏感”、“乏味”、“无价值” 等综合含义。另一种对 KISS 的解释是“Keep It Simple,Stupid” 由于中间加了逗号意思就变成了 “保持简单傻瓜”是一种祈使语态带有调侃的色彩。 好的目标不是越复杂越好反而是越简洁越好。这就是 KISS 原则。符合 KISS 原则的目标都是关键的而非包罗万象目标必须确定优先顺序而关键的目标则是资源和努力的重心。总结开发人员在编程过程中的经验大多数应用程序的设计应保持简洁和单纯而不掺入非必要的复杂性这样的应用运作成效会取得最优因此简单性应该是软件开发中的关键目标尽量避免不必要的复杂性。 高级开发人员以不同于初级开发人员的方式思考他们的代码。高级开发人员编写的代码会考虑到可维护性和可扩展性。这与初级开发人员的思维方式完全不同高级开发人员考虑的是必须与代码打交道的人而初级开发人员只是考虑如何让代码在计算机上工作。
不仅仅是编程技能的问题
除了编程技能外还有一些其他因素可以告诉你谁是哪种类型的开发人员。
一般来说初级开发人员执行最简单的任务或影响较小的任务。他们不参与任何架构设计。中级开发人员也不负责设计解决方案他们只是执行任务。与初级开发人员的不同之处在于只要分配给他们相对常规的任务他们就会执行这些任务而无需过多的监督。而高级开发人员则完全可以自己开发应用程序。
但这并不意味着高级开发人员在开发过程中没有任何问题。实际上每个开发人员每天都会遇到很多问题这点是不会改变的。对于高级开发人员来说也是概莫能外。
区别在于高级开发人员知道如何提出正确的问题以及如何处理这些问题。当涉及到相对常规的任务时中级开发人员可以提出正确的问题但在更复杂的任务上就力有未逮需要高级开发人员的帮助了。
高级开发人员永远不会迷失方向他们知道如何以正确的行动来跟进问题。但是这并不意味着高级开发人员不能向其他开发人员寻求帮助。有时最好的方法就是向其他在该领域有经验的开发人员寻求帮助。
中级开发人员也应该能够提出正确的问题只要他没有被分配到需要深入知识层面的高度复杂的任务。
你不应该指望初级开发人员能够立即提出正确的问题。由于初级开发人员缺乏经验他们需要更有经验的开发人员的指导。初级开发人员需要获得必要的资源或向正确的方向大力推进。
晋升下一个层次
作为开发人员我们都想提高自己变得更好。但是你可以采取哪些步骤来晋升到下一个层次呢
从初级开发人员到中级开发人员
由于初级开发人员缺乏经验因此至少要经历几次整个开发周期这一点是很重要的。这样一来你会掉进很多陷阱中并学会如何在下一次避免它们。
说到编程你应该学习如何编写简单的代码。想想下一个将要处理这段代码的人。你还应该学习如何调试因为这将使你能够更好地理解这一过程中发生的事情。
此外你应该熟悉最佳实践并了解架构、性能、安全性等。缩小到达中级水平所需的知识差距。
从中级开发人员到高级开发人员
从中级开发人员到高级开发人员可能会相当困难。有些开发人员在整个职业生涯中始终处于中级水平。
高级开发人员知道什么可以走捷径什么永远不可以走捷径。这些都是从过去所犯的错误中汲取的教训。
如果你想要成为高级开发人员就必须准备好接受没有人知道如何解决的任务。但你应该知道的不仅仅是如何完成工作。
作为高级开发人员你的工作还包括帮助经验较少的开发人员。当他们不知道如何做某些事情时你就是他们的后备力量。
高级开发人员掌握了他们的技术栈这可能不会让你感到惊讶。记着成为高级开发人员可不仅仅是编程技能还要了解你所在公司中使用的所有工具和应用程序。
结论
初级、中级和高级开发人员之间的区别并不全在于有多少年的经验。当然可以肯定地说高级开发人员比初级、中级开发人员更熟练但知识并不是最重要的因素。
与初级开发人员相比高级开发人员编写的代码更简单并且思维模式也不同。但这不仅仅是编程技能。知道要问什么问题以及如何跟进这些问题是至关重要的。只有那些拥有丰富经验的高级开发人员才知道在如何在任何情况下做到这一点。
作为一个初级开发人员你应该专注于如何编写简单的代码并经历多个开发周期。要从中级开发人员晋升到高级开发人员你应该专注于学习而不仅仅是解决常规任务。你应该愿意承担最艰巨的任务成为技术栈的大师。高级开发人员的另一个职责是为经验不足的开发人员提供后援力量。
我将引用 Martin Fowler 的一句话作为结束语“任何傻瓜都可以写出计算机能理解的代码而优秀程序员可以写出人能读懂的代码。”Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
作者介绍
Daan荷兰的后端开发者密码学爱好者。
原文链接
The Differences Between a Junior, Mid-Level, and Senior Developer