最近面了一些公司,拿到一些 offer,这些 offer 的岗位做的事情可以分为工具、业务两种,最终我选择了业务开发的 offer。这篇文章来讲下原因。
前面一篇文章讲过前端工作的五个层次:引擎层、runtime 层、工具层、业务层、搭建层。
引擎层:定制容器,包括 JS 引擎、渲染引擎等。一般是 C++ 来做,这类工作主要集中在跨端领域。
runtime 层:定制前端框架、SDK。小程序和跨端引擎等都要对接前端框架,需要做一些修改。音视频等领域需要专业的团队提供 SDK 供业务开发用。
工具层:定制工具链。包括编译、调试、文档等。处理的对象是代码,为业务开发提供工具支持。
业务层:实现产品需求。基于前端框架和工具链完成产品经理的需求。
搭建层:实现搭建工具,支持拖拽的方式生成代码,并投放到不同环境。服务对象是非开发者。
这是前端工作的大概分类。
引擎层一般是 c++ 开发或者懂 c++ 的前端开发来做,做 runtime 层的定制前端框架、做 SDK 的人也很少,大部分前端还是做业务层的开发,还有一小部分人做工具层的开发。(搭建层其实和工具层做的东西类似,只不过服务对象不是开发者)
其实我个人的话,最开始是做业务开发,但是近几年更多是做一些工具层的事情,比如在阿里跨端团队就是专门做工具链的,包括:
因为想去华为做编程语言才离职的,但最终没去,所以又面了一些前端的岗位,拿到了一些 offer。
这些 offer 的岗位按照前面的前端工作层次划分,分为 3 类:
最终,我选择了去一家外企做业务开发,原因有两个:
其实,主要还是第二个原因,比起工作内容,我觉得有更多自己的时间更重要一些。因为我已经具备了在工具领域自主探索的能力,并不需要靠做工具的工作来进入这个领域。
当然,这是我个人的一个选择,并不是说也建议大家这样选。
如果要给建议的话,大概有 2 个:
这篇文章主要是讲了前端工作的分类和我对工具 or 业务的 offer 的选择。
每个人的经历不同,想法不同,做的选择也会不同。如果让你来选择,你会想做业务多一点,还是做工具多一点呢?