全端工程师这个词是最近十年才出现的
我的感觉是因为前端技术的发展迅速
导致传统web开发技能树在前端大幅增加
在SPA流行之前,web开发技能很单纯就是后段语言
加上HTML & 基本CSS
JS在那个年代差不多只是用jquery跑简单的UI
一个专案可能数万行后段程式码
前端的JS只有几百行
在这样的时空中,web工程师实际上重心放在后端语言
随着SPA兴起,前端框架与技术的进步
现在的前端开发已经不再是简单的事情
需要专精的人才去处理
前端工程的复杂度早就不亚于后端工程
而全端工程师的诞生我认为与相关工具的进步直接关联
由于各种工具的辅助,大量节省工程师的时间成本
才可能会有全端工程师这样的职位
我个人认为全端工程师真正的价值
不是一个人可以同时做两件事
而是由于对两端都有涉猎
因此可以从系统整体面相规划设计
例如在实现功能的时候可以设计出弹性的API 规格
此外在中小型团队中,可以依照任务目标灵活调派人手
目前在我工作的团队中,每个人都是全端工程师
最基本的门槛是
前端技术方面,了解JS基础特性
后端技术则是着重于基本算法
系统设计方面要能够考虑到大型系统的运作及延展度
我自己面试别人的时候都还会问一个 JS 题
意外的是大概2/3的人答不出来,但是这个题目
是我觉得全端工程师在前端技术上的最低门槛
题目是
for(var i = 0; i < 5; i ++) {
setTimeout( function () {
console.log(i);
}, 0);
}
问:输出为何?
再问:如何输出0到4
至于后端问题我通常找leetcode medium 问
此外我们面试绝对不会问框架问题
因为我们认为优秀的工程师不应该受框架限制
而是能够快速学会任何框架
而且我们用的框架是内部设计
问了三大框架问题也没用