技术leader做了几年,也见过不少的开发,自己总结了一些在我看来高中低级工程师的区别。当然我这里说的高中低是针对除大厂外的(腾讯,网易,阿里巴巴,头条等)。为什么要排除呢?首先大厂招人会更严格,其次大厂的要求更高并且因为大厂的名气在可以招到更多优秀的开发,所以整体拉平的话就会发现大厂的高中低工程师的整体水平都更高(甚至有大神级的专家工程师,资深专家之类的)。但这并不是我要说的标准,我想总结的是大厂外的比较平常可见的高中低工程师的自己一些见解。
在我来看客户端开发可以分成两个维度去分析,一是逻辑开发,一是引擎开发
逻辑开发:
逻辑开发就是具体的游戏或应用的内容开发,根据策划或产品的需求开发具体内容的人员。
低级工程师:
低级工程师一般是刚毕业或工作一两年的重复工作的开发,这部分的开发能基于项目框架做一些系统的开发,再好一点的话会在在指导下能进行一些性能的优化,了解设计模式
中级工程师:
中级工程师一般都是工作了3年以上了,并且能看懂当前的框架,认识当前框架的更好的实现方式,而且能知道框架的优劣,并且能自发的完善自己的系统并且做一些性能优化,能指导低级工程师一些系统开发方式,能熟悉用设计模式开发系统
高级工程师:
高级工程师一般是工作5年以上的开发,不止是能看懂框架,能知道框架的优劣,而且能根据这个优劣能自发的优化出更好的框架,做更多组件方便其他开发工作,基本高级工程师就要能独当一面,能做整个框架的开发和维护了。并且能带领几人一起完善整个游戏的开发。能灵活利用设计模式,并且能创意的结合各种设计模式
引擎开发:
引擎开发一般包括动作系统开发,图形渲染,物理系统,粒子系统,地图管理(搜索,寻路等)AI等引擎相关的系统
低级开发:
了解游戏引擎有哪些系统,并且熟悉其中一到两个系统的开发
中级开发:
熟悉游戏引擎各系统,并且精通某一两个系统,能解决线上问题或游戏出现的问题。深入认识引擎原理
高级开发:
熟悉游戏引擎各系统,并且知道各系统发展史,以及各种方式的优缺点,更优的是可以基于这些方式方法做自己的优化,结合到具体项目中能优化到极致,非常深入的了解引擎的一到两个系统
专家:
如果说要再高深点,当然是专家级,系统非常精通或者是某些现代引擎的系统的缔造者或者某些算法的发明者,这种就极为稀罕了,但是也是想深挖技术的人员想达到的水平。
总结:
上面只是粗略的划分,当然每个引擎系统都有各自的具体高中低开发的具体能力,这个留待以后再聊
如果觉得这里面说的不对或缺少的,欢迎留言探讨。
网友评论