今天被问了一个问题:前端工程师的定位及未来的出路在哪里?既然你想做前端你觉得它的未来在哪里?当时一下被问住了,之所以说自己想做前端可能有以下几个原因:1.喜欢JS,它灵活强大,能方便的做很多事情;2.之前看了园子里几篇很不错的前端文章,前端工程师入门更易(精通确实很难),好的前端相对稀缺;3.前端更容易独立做点东西,未来更多的是可以借助其它平台开发,比如基于微信、微博、百度云开放平台等,在他们基础上加自己的前端能快速的形成解决某种需要的产品(没有实际的调研过,不知道这个想法是否正确)。于是又上网搜集各种资料主要是前端工程师的前景和知识体系及成长之路,觉得自己比较认同的摘录汇聚一下。
我在另一个答案里提到过我认为Web前端的职业前景不容乐观。这里暂时没有时间展开。先说个有趣的事情,国内Web前端的标杆人物克军(豆瓣)和玉伯(阿里)写了个“对联”如下:前端研究,研究个屁;前端设计,设计个鸟。就算是调侃吧,但也可见业内顶尖人士对此职业在纵深上的担忧。
另外说待遇的话,当然也有非常高的,玉伯在其他答案里提到过有超50万年薪甚至近百万的。不过我个人对这些高薪同学在公司的实际角色有所保留。总的来说,一般理解上的前端工程师在各互联网公司的职级相比其他技术岗位或者UED其他岗位我认为不够高。造成这样情况的有不少是历史原因。
另外说待遇的话,当然也有非常高的,玉伯在其他答案里提到过有超50万年薪甚至近百万的。不过我个人对这些高薪同学在公司的实际角色有所保留。总的来说,一般理解上的前端工程师在各互联网公司的职级相比其他技术岗位或者UED其他岗位我认为不够高。造成这样情况的有不少是历史原因。
第一大挑战还是兼容性。虽然微软已经决定将ie6安乐死,ie9/10看起来相当标准。向后兼容似乎轻松了,但向前兼容又开始越来越让人头疼了。打算搞一个web app,你会发现android上的webkit是多么混乱。在桌面浏览器上总是有css hack可以摆平,但在mobile上只能考虑退化方案。从兼容浏览器(外加套壳的浏览器)到兼容设备,实际上兼容性变得更复杂了。
第二大挑战是交互的复杂度。和目前UI/交互的要求相比浏览器引擎给我们接囗的确太低级了。于是今年前端技术的热门话题是各种javascript, css的预处理器、各种mvc框架、和微框架的讨论。
第三大挑战是代码可维护性。复杂度的提升直接影响代码的维护性。JS/CSS/HTML代码生命周期越来越长,也就越来越需要从代码质量、架构和工具上保证它们的可维护性。代码的历史问题是永远的痛点。
第四大挑战是性能。
第五大挑战是个人成长。
第二大挑战是交互的复杂度。和目前UI/交互的要求相比浏览器引擎给我们接囗的确太低级了。于是今年前端技术的热门话题是各种javascript, css的预处理器、各种mvc框架、和微框架的讨论。
第三大挑战是代码可维护性。复杂度的提升直接影响代码的维护性。JS/CSS/HTML代码生命周期越来越长,也就越来越需要从代码质量、架构和工具上保证它们的可维护性。代码的历史问题是永远的痛点。
第四大挑战是性能。
第五大挑战是个人成长。
说说我的感觉吧。我现在就是一个前端工程师。我觉得前景是不错的,不然我就不会选择这样的一个切入点。那么下面我来说说具体是为什么吧。
1,明白前端干什么。以前就可能是仅仅地切图,把设计变成代码。但是现在随着webapp兴起,以及利用web构建富客户端,包括更多交互丰富的离线应用,对于前端的挑战也越来越大,所以需要更硬底子的功夫。包括你多浏览器原理,http协议,还有js,css等最基础的认识等。所以要求不低。
2,明白你选择该职业的目的。有人说做ceo最好从产品经理入手。其实未必,大部分ceo,尤其是成功的,都从技术入手。前端开发,从维度上跨越了,设计,交互,数据交互,后台。因此是一个桥梁的作用,在未来需要了解的层面也多,地位不亚于任何一方。因此可以让你知道更多。
3,切入点好。我目前虽然还是实习生,但是我并非计算机专业,但是这不会妨碍我。因为目前前端职业要的是你有硬功夫,而且 谁强谁弱,一看代码组织,风格,一目了然。
1,明白前端干什么。以前就可能是仅仅地切图,把设计变成代码。但是现在随着webapp兴起,以及利用web构建富客户端,包括更多交互丰富的离线应用,对于前端的挑战也越来越大,所以需要更硬底子的功夫。包括你多浏览器原理,http协议,还有js,css等最基础的认识等。所以要求不低。
2,明白你选择该职业的目的。有人说做ceo最好从产品经理入手。其实未必,大部分ceo,尤其是成功的,都从技术入手。前端开发,从维度上跨越了,设计,交互,数据交互,后台。因此是一个桥梁的作用,在未来需要了解的层面也多,地位不亚于任何一方。因此可以让你知道更多。
3,切入点好。我目前虽然还是实习生,但是我并非计算机专业,但是这不会妨碍我。因为目前前端职业要的是你有硬功夫,而且 谁强谁弱,一看代码组织,风格,一目了然。
Web前端工程师的职业生涯,我觉得可以分为三步,初级前端开发工程师- > 资深前端工程师- > 前端架构师。每种职责都有其不同的角色和分工。
前端开发工程师(或者说“网页制作”、“网页制作工程师”、“前端制作工程师”、“网站重构工程师”),这样的一个职位的主要职责是与交互设计师、视觉设计师协作,根据设计图用HTML和CSS完成页面制作。同时,在此基础之上,对完成的页面进行维护和对网站前端性能做相应的优化。
资深前端开发工程师,相比较“前端开发工程师”而言,更加资深一些,当然其工作的职责也会相应的更加大一些。一般而言,资深前端开发工程师需要使用JavaScript或者ActionScript来编写和封装具有良好性能的前端交互组件,同时还要对Web项目的前端实现方案提供专业指导和监督并在日常工作之中对新人及相关开发人员进行前端技能的培训和指导。另外,还要跟踪研究前端技术,设计并实施全网前端优化。
对于前端架构师,更多意义上说像是一个管理的岗位,但是其职责要求却不仅只是管理。前端架构师需要带领组员实现全网的前端框架和优化,还要创建前端的相应标准和规范,并通过孜孜不倦的布道来完善并推广和应用自己的标准和框架。同时,还要站在全局的角色为整个网站的信息架构和技术选型提供专业意见和方案。
前端开发工程师(或者说“网页制作”、“网页制作工程师”、“前端制作工程师”、“网站重构工程师”),这样的一个职位的主要职责是与交互设计师、视觉设计师协作,根据设计图用HTML和CSS完成页面制作。同时,在此基础之上,对完成的页面进行维护和对网站前端性能做相应的优化。
资深前端开发工程师,相比较“前端开发工程师”而言,更加资深一些,当然其工作的职责也会相应的更加大一些。一般而言,资深前端开发工程师需要使用JavaScript或者ActionScript来编写和封装具有良好性能的前端交互组件,同时还要对Web项目的前端实现方案提供专业指导和监督并在日常工作之中对新人及相关开发人员进行前端技能的培训和指导。另外,还要跟踪研究前端技术,设计并实施全网前端优化。
对于前端架构师,更多意义上说像是一个管理的岗位,但是其职责要求却不仅只是管理。前端架构师需要带领组员实现全网的前端框架和优化,还要创建前端的相应标准和规范,并通过孜孜不倦的布道来完善并推广和应用自己的标准和框架。同时,还要站在全局的角色为整个网站的信息架构和技术选型提供专业意见和方案。
林灿斌,C/Web前后端/数据库/信息安全/移动客户端…
前端是负责输出到
客户端的页面的编写,为了提升用户体验(很滥的词不过都这么说)。
Web前端工程师一般都要求要能熟练使用HTML、CSS、JavaScript。题主既然问到了AJAX这样的问题,那我想题主甚至可能对JavaScript都不太熟悉,那么就不能称为Web前端工程师了,只掌握了HTML和CSS的话,只能叫 网页美工了。
不能打架,不能打架。AJAX的好处都有啥?谁说对了就给他!
下面我来说下AJAX的重要性:
1、 节省带宽和运算压力。像navibar、footer之类的,各个页面基本一致的,大量重复。使用AJAX局部刷新需要更新的content,节省服务器带宽和运算压力,在网站PV足够大的情况下,会有一定的提速左右。特别是一个长帖子/问题/博文,发布回帖/答案/评论时,使用AJAX submit数据,对比用form submit,速度和对服务器的压力,差距可以以倍来计算。
2、 用户体验,首先由于上面的原因,使用AJAX获取的数据会更少,而且不需要二次渲染navibar、footer之类的重复元素,也会 快一些。另外网页从一个跳转到另一个的时候,会整个闪成白色再重新载入新的页面,用户体验不好。像知乎这样,我可以非常方便地修改答案,体验就很不错。
3、看到知乎这个保存草稿的功能了吗?非常实用的功能,前段不用AJAX做你等着后端拿着form submit去实现吗?那得是多蛋疼的体验。
当然,也有一些不适用的场景,例如需要做SEO优化的场景。
Web前端工程师一般都要求要能熟练使用HTML、CSS、JavaScript。题主既然问到了AJAX这样的问题,那我想题主甚至可能对JavaScript都不太熟悉,那么就不能称为Web前端工程师了,只掌握了HTML和CSS的话,只能叫 网页美工了。
不能打架,不能打架。AJAX的好处都有啥?谁说对了就给他!
下面我来说下AJAX的重要性:
1、 节省带宽和运算压力。像navibar、footer之类的,各个页面基本一致的,大量重复。使用AJAX局部刷新需要更新的content,节省服务器带宽和运算压力,在网站PV足够大的情况下,会有一定的提速左右。特别是一个长帖子/问题/博文,发布回帖/答案/评论时,使用AJAX submit数据,对比用form submit,速度和对服务器的压力,差距可以以倍来计算。
2、 用户体验,首先由于上面的原因,使用AJAX获取的数据会更少,而且不需要二次渲染navibar、footer之类的重复元素,也会 快一些。另外网页从一个跳转到另一个的时候,会整个闪成白色再重新载入新的页面,用户体验不好。像知乎这样,我可以非常方便地修改答案,体验就很不错。
3、看到知乎这个保存草稿的功能了吗?非常实用的功能,前段不用AJAX做你等着后端拿着form submit去实现吗?那得是多蛋疼的体验。
当然,也有一些不适用的场景,例如需要做SEO优化的场景。
你的问题描述的方式让我觉得你不想去做 ajax 等与数据操作有关的事情,但从你在其他人回答的评论中的语言又表现出你是“迫于无奈”。不知道你的真实想法到底是什么……
不过,无论是哪种,都证明你对前端工程师这一职业不了解。下面的内容(摘自 https://gist.github.com/ourai/6411507)是一名优秀的前端工程师需要掌握以及具备的,供你参考——
开发技术
软技能
不过,无论是哪种,都证明你对前端工程师这一职业不了解。下面的内容(摘自 https://gist.github.com/ourai/6411507)是一名优秀的前端工程师需要掌握以及具备的,供你参考——
开发技术
- 程序
- 页面
- 标准规范
- W3C
- 知识储备
- 网页设计
- 排版
- 响应式
- SEO
- WCAG
- 微数据/微格式
- 网页设计
- 网页语言
- 标记语言
- HTML
- XHTML
- XML
- 样式表
- CSS
- XSL
- 标记语言
- 标准规范
软技能
- 项目及工程管理
- 开发工具
- IDE
- Sublime Text
- Notepad++
- EditPlus
- 调试工具
- Google Chrome
- Mozilla Firefox
- Internet Explorer
- IDE
- 测试工具
- 版本控制
- Git
- SVN
- 代码检查
- 框架/库
- jQuery
- 模块化
- CommonJS
- 模板
- 开发工具
- 团队协作
- 责任心
- 完成任务为首要目标
- 不断优化完善代码
- 完善产品的用户体验
- 与不同岗位人员的沟通技巧
- 责任心
- 业务知识
- 领导能力