您好:1.知识储备显而易见的是, 高级开发的英雄池更深, `知识储备`比初中级的更加丰富。 比如`架构设计`,`设计模式`, `自动化测试`, `性能相关`, `安全问题`, 等等都不在话下。 如果初中级工程师想要缩小到高级之间的知识差距, 可以从这些领域下手。 遇到问题,知道用什么技能来解决, 这一点很重要。 但是仅仅知道上面提到的这几点也是不够的。 知识储备并不是最大的区别, 它只是其中的`一个因素`。2.Coding代码是什么?代码是一种我们和计算机和同事之间交流的语言。 对计算机而言, 经过编译的代码只不过是一堆 `0` 和 `1`. 代码写的好不好看,对计算机而言, 其实没什么区别。但是对于和你一起工作的同事而言, 这点就很重要了。在一个团队里, 往往都是老司机开发核心功能, 萌新修修bug, 做一些比较简单的功能。 这也是初级和高级的一个区别。 中级介于初级和高级之间, 是比较特殊的一个阶段。 从经验来看, 这是一个比较靠近高级的级别, 主要和`经验`有关。一个中级的开发, 往往是开发过几个项目, 具有一定的开发经验, 踩过一些坑, 并有一套自己的解决的问题的方法。如判断是不是初级初级开发,一般是那种经验不多的, 刚毕业找到第一份工作的人。这个阶段, 往往专注于,代码能跑,不报错,能完成需求就完了。编写简洁以东的代码其实不是一件容易的事。 初级工程师不喜欢写这种代码, 取而代之的是自认为‘炫酷’, ‘高逼格’的代码。 所以可以从一些奇怪的苗条代码, 或者复杂难懂的抽象去识别。 他们觉得这种代码写出来很酷, 可以拿出来炫, 这么想其实是不对的。初级人员往往过于专注代码的功能性而牺牲了代码中人性的那一面。高级开发是什么样的呢高级开发写 简单, 直接, 有时候看起来甚至有点蠢的代码。遵循一个原则: Keep it simple, stupid.相比于初级, 高级开发编写代码的时候会从不同的角度出发, 比如 可维护性, 拓展性等。 除去本身的功能之外, 考虑的更多的是人性的那一面。