【译】工程师如何打怪升级

初级、中级和高级工程师并非经过你从事编码工做的年限来判断的。初级工程师有时可能比高级工程师工做时间还要长。可否成为更高等级的工程师彻底取决于你对专业技能的掌握程度,这也不是说高级工程师必须在每一方面都是专家,可是能够确定的是,高级工程师必定比初级和中级工程师更加专业。 编程

不只仅是编程能力更加专业,高级工程师和初中级工程师相比还有其余区别。这区别究竟是什么呢?设计模式

知识

很明显,高级工程师须要掌握更多的知识。学习设计模式、架构、自动化测试、性能、安全等知识是初级工程师迈向中高级工程师的必经之路。安全

知道软件开发过程当中须要作什么是一件很是重要的事情。可是当你掌握了上面所说的所有知识时,你并非已经成为高级工程师了,这些知识只是不一样等级工程师之间的区别之一。架构

编码

不少人认为编码是人和计算机之间的一种交流,其实是人和人的交流而后用于指导计算机。代码最终还须要编译成二进制码。工具

你的代码须要保证可读性,这样之后其余开发者才能在这基础上作其余工做。最好能作到让一个历来没有看过你的代码的团队一打开就能当即进行新功能开发或者修复bug。这也是初级和高级工程师的区别之一。性能

这里咱们忽略了中级工程师,由于中级工程师在编程能力的比较中处于灰色地带。由于中级工程师介于初级与高级之间,而且更倾向于高级。编码能力更更加依赖于经验,而中级工程师一般至少参与过一次完整的软件开发流程。他们已经从一些简单的错误中吸收了教训。学习

如何辨别初级工程师

初级工程师一般没有开发经验。有些是刚毕业,第一次全职作开发。初级开发者的心态一般就是「能用就行」。能用的软件和好用的软件在他们看来都同样。测试

写出简洁的代码是一件困难的事情。这也是初级工程师不具有的能力,他们写的代码每每比较繁琐。你能够经过诡异的单行代码以及庞杂的抽象逻辑来识别初级工程师。这是初级工程师炫耀的方法,让其余开发人员知道他们的能力,但这是错误的作法。编码

初级工程师编码时专一于计算机端,而忽略了人力端。架构设计

高级工程师是怎样的

当查看高级工程师的代码时,你也许会想:这是所有代码吗?剩下的在哪?高级工程师写的代码老是简单、直接的。这时编程时能够修炼的最强技能之一。高级工程师遵循KISS原则:Keep it simple, stupid

高级工程师在编码方式和初级工程师有所不一样,他们会优先考虑代码的可维护性和可扩展性。两种级别的工程师编码时的心态也彻底不一样,高级工程师更多考虑的时后续维护代码的人,而初级工程师考虑的是使代码能够被计算机执行。

不止于编程能力

除了编程能力以外,还有一些其余因素能够告诉你一名工程师的级别。

初级工程师一般只是作一些简单的任务。他们不负责任何架构设计。中级工程师也不设计解决方案,他们一样是执行任务。与初级工程师不一样的是,他们并不须要太多的监督和指导,只要分配给他们较为常规的任务,他们就能独立完成。高级工程师则能够独立的开发一款应用。

这并不意味着高级工程师在开发过程当中就不会碰到问题,每一个开发人员天天都会遇到大量的问题,对于高级工程师来讲也是如此。

不一样之处是高级工程师知道如何正确提问以及怎么解决问题。中级工程师在对于常规问题也知道如何正确提问,但遇到更加复杂的问题时则须要寻求帮助。

高级工程师从不迷失方向,他们知道如何以正确的方式跟踪问题。不是说高级工程师不须要向其余人寻求帮助。有时最正确的选择就是向相关领域的专家寻求帮助。

中级工程师也须要具有正确提出问题的能力,除非分配给他们的是须要很深刻的专业知识的复杂任务。

你不能期望初级工程师老是准确的提出问题。由于他们缺少经验,他们须要更有经验的工程师来指导。咱们要为初级工程师提供必要的资源,以及不断推进他们朝着正确的方向前进。

如何晋级

咱们都但愿提高本身的等级,成为更好的工程师,可是要怎么作呢?

初级到中级

因为初级工程师缺少经验,所以他们至少要经历几回完整的软件开发流程。这一过程当中他们不遇到不少坑,而后须要在下次避免再踩这样的坑。

编码时,初级工程师要学会使本身的代码变得更加简洁。多为下一位接手这段代码的人考虑。你须要学会怎么调试代码,这会帮助你更好的理解它的运行过程。

此外,你须要对一些最佳实践更加熟悉,同时你须要学习架构、性能、安全等知识,从而跨越到达到中级工程师的知识鸿沟。

中级到高级

从中级工程师到高级工程师可能会比较困难。有些开发人员整个职业生涯都停留在中级工程师。

高级工程师知道什么能够作什么不能够作。这是最难学的一门课程,你只能从过去犯的错误中学习。

若是你想要达到高级水平,你必需要准备好承担没有人能处理的任务。你应该考虑的是如何把工做作得更好,而不只仅是怎么完成。

做为高级工程师,你还有一项工做就是要帮助缺少经验的工程师,当他们不知道怎么作时,你就是他们坚强的后盾。

高级工程师的技术栈可能不会使你感到惊讶,除了编程能力,他们对公司所用的工具和应用的使用都是很是熟悉的。

结论

初级、中级、高级工程师的区别不仅是工做年限。固然,你能够确定的说,高级工程师要比初级和中级工程师更加专业,知识更丰富。但这不是决定工程师等级的惟一因素。

高级工程师写代码更加简洁,而且编码时的心态与初级开发者不一样。可是除了编码,知识如何提出并跟进问题也是一项必要的能力。只有高级工程师才能凭借丰富的经验从容的应对各类问题。

初级工程师想要成长就要专一于编写更加简洁的代码,而且多经历完整的开发流程。从中级进阶到高级则须要学会处理更多困难的问题。你应该愿意承担更有挑战的任务,并成为技术栈的主人。高级工程师的另外一项工做就是做为其余开发人员的后盾。

最后送给你一句Martin Fowler的话:“任何傻瓜都能编写计算机能够理解的程序,好的工程师编写人类能够理解的代码。”

原文连接

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

译者点评

本文做者从编码能力和处理问题的能力阐述了不一样级别工程师之间的区别。我的认为做者对于中级工程师的能力和国内的互联网公司的要求仍是有些区别的。至少我接触的中级工程师都要具有必定的系统设计能力了。而高级工程师则须要具有更加全面的问题处理的能力。不过对于大多数人来讲,可能头衔已是中级了,可是并无掌握文中提到的那些知识,这反而成为了中级到高级的鸿沟。相信你们也都意识到了学习的重要性,既然入了这行,就一块儿活到老学到老吧。

相关文章
相关标签/搜索