今天被问了一个问题:前端工程师的定位及将来的出路在哪里?既然你想作前端你以为它的将来在哪里?当时一下被问住了,之因此说本身想作前端可能有如下几个缘由:1.喜欢JS,它灵活强大,能方便的作不少事情;2.以前看了园子里几篇很不错的前端文章,前端工程师入门更易(精通确实很难),好的前端相对稀缺;3.前端更容易独立作点东西,将来更多的是能够借助其它平台开发,好比基于微信、微博、百度云开放平台等,在他们基础上加本身的前端能快速的造成解决某种须要的产品(没有实际的调研过,不知道这个想法是否正确)。因而又上网搜集各类资料主要是前端工程师的前景和知识体系及成长之路,以为本身比较认同的摘录汇聚一下。javascript
我在另外一个答案里提到过我认为Web前端的职业前景不容乐观。这里暂时没有时间展开。先说个有趣的事情,国内Web前端的标杆人物克军(豆瓣)和玉伯(阿里)写了个“对联”以下:前端研究,研究个屁;前端设计,设计个鸟。就算是调侃吧,但也可见业内顶尖人士对此职业在纵深上的担心。
另外说待遇的话,固然也有很是高的,玉伯在其余答案里提到过有超50万年薪甚至近百万的。不过我我的对这些高薪同窗在公司的实际角色有所保留。总的来讲,通常理解上的前端工程师在各互联网公司的职级相比其余技术岗位或者UED其余岗位我认为不够高。形成这样状况的有很多是历史缘由。
第一大挑战仍是兼容性。虽然微软已经决定将ie6安乐死,ie9/10看起来至关标准。向后兼容彷佛轻松了,但向前兼容又开始愈来愈让人头疼了。打算搞一个web app,你会发现android上的webkit是多么混乱。在桌面浏览器上老是有css hack能够摆平,但在mobile上只能考虑退化方案。从兼容浏览器(外加套壳的浏览器)到兼容设备,实际上兼容性变得更复杂了。
第二大挑战是交互的复杂度。和目前UI/交互的要求相比浏览器引擎给咱们接囗的确过低级了。因而今年前端技术的热门话题是各类javascript, css的预处理器、各类mvc框架、和微框架的讨论。
第三大挑战是代码可维护性。复杂度的提高直接影响代码的维护性。JS/CSS/HTML代码生命周期愈来愈长,也就愈来愈须要从代码质量、架构和工具上保证它们的可维护性。代码的历史问题是永远的痛点。
第四大挑战是性能。
第五大挑战是我的成长。
李秉骏,web前端开发者/创业者/正在经历大学的学生
说说个人感受吧。我如今就是一个前端工程师。我以为前景是不错的,否则我就不会选择这样的一个切入点。那么下面我来讲说具体是为何吧。
1,明白前端干什么。之前就多是仅仅地切图,把设计变成代码。可是如今随着webapp兴起,以及利用web构建富客户端,包括更多交互丰富的离线应用,对于前端的挑战也愈来愈大,因此须要更硬底子的功夫。包括你多浏览器原理,http协议,还有js,css等最基础的认识等。因此要求不低。
2,明白你选择该职业的目的。有人说作ceo最好从产品经理入手。其实未必,大部分ceo,尤为是成功的,都从技术入手。前端开发,从维度上跨越了,设计,交互,数据交互,后台。所以是一个桥梁的做用,在将来须要了解的层面也多,地位不亚于任何一方。所以可让你知道更多。
3,切入点好。我目前虽然仍是实习生,可是我并不是计算机专业,可是这不会妨碍我。由于目前前端职业要的是你有硬功夫,并且
谁强谁弱,一看代码组织,风格,一目了然。
Web前端工程师的职业生涯,我以为能够分为三步,初级前端开发工程师- > 资深前端工程师- > 前端架构师。每种职责都有其不一样的角色和分工。
前端开发工程师(或者说“网页制做”、“网页制做工程师”、“前端制做工程师”、“网站重构工程师”),这样的一个职位的主要职责是与交互设计师、视觉设计师协做,根据设计图用HTML和CSS完成页面制做。同时,在此基础之上,对完成的页面进行维护和对网站前端性能作相应的优化。
资深前端开发工程师,相比较“前端开发工程师”而言,更加资深一些,固然其工做的职责也会相应的更加大一些。通常而言,资深前端开发工程师须要使用JavaScript或者ActionScript来编写和封装具备良好性能的前端交互组件,同时还要对Web项目的前端实现方案提供专业指导和监督并在平常工做之中对新人及相关开发人员进行前端技能的培训和指导。另外,还要跟踪研究前端技术,设计并实施全网前端优化。
对于前端架构师,更多意义上说像是一个管理的岗位,可是其职责要求却不只只是管理。前端架构师须要带领组员实现全网的前端框架和优化,还要建立前端的相应标准和规范,并经过孜孜不倦的布道来完善并推广和应用本身的标准和框架。同时,还要站在全局的角色为整个网站的信息架构和技术选型提供专业意见和方案。
林灿斌,C/Web先后端/数据库/信息安全/移动客户端…
前端是负责输出到
客户端的页面的编写,为了提高用户体验(很滥的词不过都这么说)。
Web前端工程师通常都要求要能熟练使用HTML、CSS、JavaScript。题主既然问到了AJAX这样的问题,那我想题主甚至可能对JavaScript都不太熟悉,那么就不能称为Web前端工程师了,只掌握了HTML和CSS的话,只能叫
网页美工了。
不能打架,不能打架。AJAX的好处都有啥?谁说对了就给他!
下面我来讲下AJAX的重要性:
一、
节省带宽和运算压力。像navibar、footer之类的,各个页面基本一致的,大量重复。使用AJAX局部刷新须要更新的content,节省服务器带宽和运算压力,在网站PV足够大的状况下,会有必定的提速左右。特别是一个长帖子/问题/博文,发布回帖/答案/评论时,使用AJAX submit数据,对比用form submit,速度和对服务器的压力,差距能够以倍来计算。
二、
用户体验,首先因为上面的缘由,使用AJAX获取的数据会更少,并且不须要二次渲染navibar、footer之类的重复元素,也会
快一些。另外网页从一个跳转到另外一个的时候,会整个闪成白色再从新载入新的页面,用户体验很差。像知乎这样,我能够很是方便地修改答案,体验就很不错。
三、看到知乎这个保存草稿的功能了吗?很是实用的功能,前段不用AJAX作你等着后端拿着form submit去实现吗?那得是多蛋疼的体验。
固然,也有一些不适用的场景,例如须要作SEO优化的场景。
10年时我写过篇BLOG有提及过这个
水想前端(一):鸟瞰 。
在咱前端的头上,有三座大山:
设计、后台、兼容性。
一前一后都不如别人专业,而兼容性问题,看得出问题、却看不出水平。不由仰天长叹:我勒个去!
从这点上来看,前端挺像秘书,作的是润滑剂,但却有点吃力不讨好。
---
而从如今看来,前端的发展道路太多太多了,他是个发展太快的领域,因此如今呈现出一片混乱的局势——这同时也是前端的机遇,乱世总能作更多事情的。
在我看来,这一片混乱的局势才是挑战的主要来源。
面临的挑战有:
- 来自多终端的挑战:内容型网页的响应式设计。单纯IE与标准浏览器的角逐已经开始告一段落,开始进入更混乱的手机/平板/桌面三分天下的局势。页面重构童鞋们任重道远。
- 功能与开发效率的平衡:前端开始在非大众产品上崭露头角,尤为是后台管理系统、组织信息反馈系统等。这时我才无论什么low Level API呢,君不见ExtJS, YUIjs等哥斯拉久盛不衰?这时前端童鞋面临的每每是先后端甚至包括数据层面通吃的局面,这未尝不是挑战。(我一直以为,这方面才是最适合后端转前端的路线)
- 混合式APP的大潮:无论是桌面端仍是移动端,都愈来愈多软件/应用开始使用混合式的开发,从而在保证核心功能体验的同时、提高整体的开发效率。(Hybrid App,反正个人理解是原生代码与WebView混合)
- 做为可互动终端:使得信息传达能更具体化、可视化、互动化。最典型的就是数据可视化方面的挑战(固然我以为不止于此)。d3js的团队从protovis全力转入到d3js中就可见一斑:d3js更增强调可视化呈现的动画、以及即时反馈的交互能力。这在我看来也是WEB的将来之一。谁说WEB就必须是大众使用的呢?一个统一的标准总比每次都订作图形引擎来得要好。
张帅,发现问题,解决问题,创造价值 | Web dev…
1. 沟通。前端工程师在项目中处于一个中间位置,对下要和后端工程师商定接口,对上要和产品、设计有良好的沟通。不管哪个环节中出现的问题,都会在前端最早表现出来,良好的沟通能够保证尽早发现并解决这些问题。
2. 写出可维护的代码。前端三大语言html,css,javascript都是十分灵活的,写出能够工做的代码并不难,真正难的是保证代码的可维护性。代码可维护性涉及的问题包括,(html)标签语义化,标签结构化,(css) 规则体系化,组件化,(js)框架的选择,模块化,高内聚,低耦合。
3. 写出高性能的Js代码。包括字符串操做,dom操做,ajax操做。须要考虑性能问题的环节实在不少。
4. 兼容性。兼容性问题仍在拖慢前端工程师工做进度的主要问题,等ie6死掉,国产浏览器外壳质量作的好一些,状况可能会有所好转。
5. 技术更新快。前端技术更新速度十分快,html5,css3,nodejs, commonJs,按需加载,等等都是最近几年出来的。google又搞出一个Dart语言,鬼知道它会会真的把js取代了。
欧雷,世界公民css
你的问题描述的方式让我以为你不想去作 ajax 等与数据操做有关的事情,但从你在其余人回答的评论中的语言又表现出你是“迫于无奈”。不知道你的真实想法究竟是什么……
不过,不管是哪一种,都证实你对前端工程师这一职业不了解。下面的内容(摘自
https://gist.github.com/ourai/6411507)是一名优秀的前端工程师须要掌握以及具有的,供你参考——
开发技术
- 程序
- 标准规范
- 知识储备
- 做用域/闭包
- 数据结构
- 算法
- 编程范式
- 设计模式
- 软件架构
- 安全
- 富互联网应用程序
- 编程语言
- JavaScript
- ActionScript
- CoffeScript
- 页面
软技能
- 项目及工程管理
- 开发工具
- IDE
- 调试工具
- Google Chrome
- Mozilla Firefox
- Internet Explorer
- 测试工具
- 版本控制
- 代码检查
- 框架/库
- 模块化
- 模板
- 团队协做
- 责任心
- 完成任务为首要目标
- 不断优化完善代码
- 完善产品的用户体验
- 与不一样岗位人员的沟通技巧
- 业务知识
- 领导能力