|
前端开发和web前端,前端前端这两个词在招聘启事里经常混着用,前端前端但真较起真来,前端前端它们压根不是前端前端一回事。我见过太多人拿着web前端的前端前端简历去面“前端开发”岗,结果被问得一脸懵——问题就出在,前端前端他们把“做网页”当成了“做前端”的前端前端全部。 说个我身边的前端前端例子。去年有个朋友转行,前端前端报了个培训班,前端前端三个月速成。前端前端他学的前端前端全是HTML、CSS、前端前端JavaScript,前端前端能独立切图,前端前端能写简单的交互效果,觉得自己已经是个“前端工程师”了。结果去一家做企业级应用的公司面试,人家问他:“你怎么处理前端状态管理?用过Redux还是MobX?”他愣住了。又问:“你了解WebSocket吗?做过实时数据推送吗?”他更懵了。最后面试官很客气地告诉他:“你更适合做web前端,而不是前端开发。” 这话听起来有点伤人,但确实点破了本质。web前端,狭义上指的就是浏览器里跑的那套东西——页面布局、样式、DOM操作、Ajax请求,核心目标是让网页在浏览器里正常显示、交互流畅。它关注的是“表现层”,是用户直接看到摸到的那部分。而前端开发,范围要宽得多。它不光是浏览器,还包括移动端Hybrid应用、桌面端Electron程序、小程序,甚至Node.js跑在服务器上的脚本。它要管数据流、状态管理、性能优化、工程化构建、自动化测试,还得考虑跨端兼容。 拿一个真实场景对比。假设你要做一个在线文档编辑器,类似简化版Google Docs。web前端的活儿,是把工具栏、页面布局、光标闪烁效果这些UI做出来,让用户能打字、能加粗、能换行。可一旦用户输入的内容要实时同步到其他协作者屏幕上,事情就变味了。你得处理操作转换(OT算法),得维护本地和服务端的状态一致性,得考虑离线缓存策略,甚至要自己实现一个虚拟滚动来渲染上万行文本。这些,都是前端开发的范畴。很多只会web前端的人,到这一步就卡住了——他们能画出漂亮的界面,却搞不定背后的数据流和复杂交互逻辑。 我见过一个挺讽刺的现象。有些团队招人时写“web前端工程师”,实际干的活儿却是纯页面切图,连框架都不用。而另一些团队写“前端开发工程师”,要求却高得离谱,既要会React又要懂Canvas,还得会调WebGL。这两种岗位,薪资能差出一倍不止。原因很简单——web前端的技术栈相对固定,HTML/CSS/JS三件套加上jQuery或Vue就能应付大部分场景。但前端开发要求的是“解决问题的能力”,技术只是工具。你得理解浏览器渲染原理,才能优化首屏加载;你得懂网络协议,才能处理好弱网环境下的数据请求;你得有算法基础,才能在复杂交互里不卡顿。 所以别再纠结这两个词的定义了。它们之间不是包含关系,而是深度和广度的差别。web前端是入门,是基本功,是每个想干这行的人必须跨过的门槛。但如果你只想停留在“能做出网页”的水平,那web前端就够用了。可如果你想往高处走,想成为那种能独立撑起一个产品核心功能的前端开发,那得做好心理准备——要学的东西多着呢。别被“web”这两个字框住,真正的战场,在浏览器之外。 |