Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。

行业背景

正如上面所说,前端是一个非常新的工种,甚至很多资深IT行业人还不知道前端工程师到底是做什么的。在很多人眼里,前端就是做页面的,没有任何技术含量。在很多公司,并没有前端的职位,一个PHP程序员就能搞定从设计图到页面编码到后台编程所有工作。可是随着技术飞速发展,人们对技术要求水涨船高,单凭一个人搞定所有的事情已经变得非常困难了,那么前端工程师也就应用而生。

工作职责

前端工程师的职责是将静态的设计图还原成能在浏览器生动展示的活的界面,然后与开发者对接,将静态的页面变成动态的网站。 一个优秀的前端工程师,不仅要有好的设计还原能力,还要能够像软件工程师一样写出优雅的代码。视觉方面:一个动画是否流畅,一个交互过程是否友好,多终端多屏幕适配是否足够灵活。编码方面:代码格式是否符合规范,代码是否足够简洁冗余度最小,性能如何。这些都是前端工程师应该考虑的问题。除了这些基本的问题之外,一个优秀的前端工程师还应该有产品思维和设计思维,并将这两种思维和自己的应用能力相结合。能自主发现并弥补产品、设计的空白和不合理环节,可以很好的控制代码的复杂度,高效高质量的完成开发需求。

知识结构

一图胜似千言: 前端工程师知识结构图

技术

语言:HTML5/CSS3/JS 技术:linux、vim、koala、bower、git、sublime、grunt、atom、gulp … 框架:Bootstrap 、jQuery、Ext、Dojo、Prototype、Node.js、AngularJS、Backbone、Ember.js … 移动端:jQuery Mobile、zepto、Sencha Touch … 新型语言:Less、Sass、Haml … 曾经认为,前端不需要了解协议,后来看了看HTTP,发现带来的许多新知识; 曾经认为,前端学个毛后端语言,后来学了PHP、Python等等,发现现在和后端交流更容易,协作更方便; 曾经认为,前端不需要了解linux,后来因为环境熟悉了linux,现在已经各种离不开了(主要是离不开shell环境); 曾经认为,前端不需要学编译原理、数据结构; 但是每学一个新东西,总是能带来许多收获。 学了编译原理,无聊了能改进下公司平常用的模板语言(自创的高性能蛋疼模板语言); 学了点C,有兴趣了还能去扒一扒某些特性V8是怎么实现的; 学了HTTP协议,对性能优化有赶脚了好多; 学了PHP,Python,没事干自己能写许多工具,简化自己开发,写个ST2插件神马的; 学了学Hadoop,没事干跑点统计看看各种数据,看看自己能不能用点新东西; 学了vim/linux,不知道为啥我现在就总是vim了……还总是shell环境下…… [知乎]

社区

  • w3ctech               中国最大的前端技术社区
  • CSDN.NET            全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台
  • SegmentFault      最前沿的技术问答,最纯粹的技术切磋。在巨人的肩膀上,成为一名优秀开发者
  • Stack Overflow    Stack Overflow is a question and answer site for programmers

UED  (User Experience Design)

结束语

上联:为需求而生,为用户而死,为浏览器奋斗一辈子! 下联:吃CSS亏,上Js的当,最后死在兼容上! 横批:前端人生

想要Get更新潮的技能,学习有趣的知识,发现优秀的框架,查询有用的手册,使用高效的工具所有的一切尽在此网站:前端网址导航-WHYCSS



无觅相关文章插件,快速提升流量