打开网页,映入眼帘的是万紫千红的互联网世界。当你在享受RSS订阅时,当你在Blog上分享你的旅游经历时,当你通过电子商务为你的女友订购玫瑰花时,当你通过E-mail处理日常事务时,你是否想过是谁创造了这一切?是谁为那些冗长深奥的二进制代码赋予了如此有生命力的皮囊?
一、web前端开发路漫漫
通常人们认为Web 1.0时代始于1994年,标志性的事件就是1994年年初斯坦福大学的博士杨致远(Jerry)和David Filo发布了一份他们最喜爱的Web网站列表,这份列表最初的名称是“Jerry&David的Web指南”。两个月后,它又有了一个新的、带有挖苦意味的名称—“Yet Another Hierarchical Officious Oracle”(不过是又一份等级制的非正式的神谕),或者缩写为Yahoo。Yahoo是Web史上的一个伟大瞬间,国内的网易、新浪等门户网站均是Web 1.0时代的杰出代表。在Web 1.0时代,网站的主要功能还是发布信息,通过专业人士编辑某些信息,然后将其发布到站点上供用户浏览与检索,用户的参与程度不高,用户主要做的事情是浏览,因此访问这些站点的客户端工具被称为浏览器。
Web 2.0从什么时候开始并没有一个确切的说法。多数人认为它是从2001年互联网泡沫破灭后逐渐兴起的,以Blog、RSS、SNS这些概念的提出为代表。
如果说Web 1.0是以数据为核心的,那么Web 2.0则是以人为出发点的互联网,用户的参与程度大大超过Web 1.0。现在互联网上的大部分资源都是由用户自己发布并管理的,用户在互联网上的作用越来越大—他们贡献内容、传播内容,而且提供这些内容之间的链接关系和浏览路径。从这个角度看,互联网变得更有序,每个用户都在贡献—要么贡献内容,要么贡献内容的秩序。人们对于Web 2.0,众说纷纭,但是有一点可以肯定,Web 2.0是以人为核心的网络,提供方便用户“织网”的工具,鼓励用户提供内容。根据用户在互联网上留下的痕迹来组织浏览的线索,提供相关的服务,给互联网不断产生新的价值。Blog、Wiki、RSS、SNS等都是Web 2.0时代的价值体现。
随着互联网进入Web 2.0时代,用户体验越来越受企业及用户的关注,前端设计师所要担负的责任越来越重,所需要掌握的技术范围也在不断扩大。现在的前端设计师早已不是一名写HTML、关注页面展现的网页设计师了。
二、千军易得,一将难求
不知道人力资源经理是否有这样的感慨,要找一个称职的前端设计师是多么的困难,而领导却往往无法理解为何找一个做页面的人会这么困难?原因很简单,现在的前端设计师已经不仅仅是做页面的程序员了。有别于原先的网页设计师,如今已经出现了许多新兴的、针对Web开发人员的前端设计职位:交互设计师、用户体验设计师、前端架构师,等等。这说明如今的前端开发人员已经不仅仅局限于关注用户所看到的界面的美观程度,他们更需关注的是是否能让用户获得良好的体验。现在,出色的前端设计人员(或者说前端架构师)已经是“千军易得,一将难求”,造成这样的局面有许多深层次的原因。
1、社会定位
业内多数公司都存在这样一些不幸的现象:除了少数的前端设计师之外,大部分的前端设计人员都没有得到公司领导应有的认可,前端开发人员所要担当的责任及履行的义务和他们所获得的待遇处于一种不对等的状态,这样的环境造成了前端开发人员的职业发展受到了严重影响。某些领导甚至这样认为做页面很简单,没有工作经验的人也能胜任前端开发的职位,还省时、省力、省工。大多数应聘者都表示希望或者擅长做后端开发,在大家的意识里,前端开发人员似乎就是公司中地位较低微的人员,没有什么晋升机会,只会写页面。如今,很多人认为前端开发人员的工作只是做页面,这无疑是一种悲哀。
2、 教育资源的匮乏
为什么说教育资源匮乏呢?现在也有很多高校开设了“网页设计”课程,不是吗?这又回到了我们之前提到的问题,前端设计师不仅仅是网页设计师,他首先必须是一位合格的程序员,必须具备相关的计算机基础。但是现在大多数学校计算机相关专业的课程设计都是以语言及算法为核心的,并没有针对与Web有关的课程设计,即便有,也只是选修课程。因此,学生在进入社会后,要从事与Web相关的工作,大多数人都只能通过自学来补充知识。
说到自学,问题更严重了。放眼现在的各种关于前端设计的书籍,要么单纯讲HTML,要么单纯谈论CSS,有的甚至具体谈论某一个脚本框架的使用(如关于jQuery的一些书籍)。这些书籍都只涵盖了前端设计中的某一个小小的点,并不能很好地展现整个前端设计知识体系的全貌以及整个学习的线索。
3.、旁人眼中的不规范
由于某些历史原因,现在的前端开发在人们眼中的直观印象是:繁杂、不规范,诸如此类,这也间接导致了前端开发职位的吸引力不大,干活吃力又不讨好。当后端技术如ASP.NET、Java、Rails等框架变得越来越强大、越来越抽象的时候,前端技术的潜在发展也日益复杂。Web的前端技术包括W3C的所有结构体系技术,还包括W3C之外的一些技术(如Flash)及表现逻辑。它不仅仅是HTML+CSS+JavaScript,所谓的Web标准也不仅仅是DIV+CSS,能正确使用这些技术服务于Web和用户才是Web前端应该深入的问题。
三、前端开发学习难
我们先来看看作为一名合格的前端人员应该掌握或具备哪些技能:
首先就得熟悉HTML,掌握W3C的标准,要学就得学最规范的标准。浏览器最少也要了解四五种,如IE、Firefox、Chrome等。样式也得掌握,以CSS2为主,多看看欧美牛人的风格DIV布局,特简约的那种。可用性也很重要,甭管有事没事总把用户放在心里,再买本工艺美术理论方面的书,有事没事就翻翻,设计个按钮就得花个七八天的时间。交互更重要,现在不是Ajax,就是RIA的,你要是用alert弹框啊,你都不好意思跟人家说去,这样学下去,得学多少年啊?两年时间?那是入门。四年以上?你还别嫌多,就是复杂。认真掂量下这些技术,学好其中的任何一门都要花好几年工夫。什么叫成功的前端开发人员?就是不但代码写得好,还要懂设计,懂美学。所以,前端开发的口号就是:不求最好,但求最全。
1. 角色的特殊性
也许有人会问:“为什么一个做页面的人要掌握这么多知识?”前端设计师这个职位有其特殊性:前端作为与用户直接接触的一层,与用户的相关度高,需求变化频繁。用户不会关心数据库是MySQL还是Oracle,也不会关心你是用Java还是用.NET,用户关心的是按钮是否在正确的地方出现、提示信息是否排列整齐等之类的问题。这意味着什么?这意味着前端更需要设计良好的架构。但是由于其自身的特殊性,想要做出良好的抽象是比较困难的,当然也需要日积月累的实践。
2. 知识的多元性
对于刚入行的朋友来说,前端开发领域所需要学习的知识非常多,它们犹如一块块零散的拼图碎片,看似存在联系又独立存在。这些知识往往关联性不高,常常还是一些跨领域的知识的融合,这些因素均造成整个前端开发领域的知识的学习很难速成。此外,由于许多前端开发人员的知识面单一,直接造成了前端架构的无序和混乱。可以说前端开发的学习曲线比较特殊,会存在一个明显的阶梯性的成长过程。在很长的一段时间内,你甚至会感觉自己停滞不前,但是请不要灰心,当你对相关的知识有了一定程度的积累时,你的水平就会上一个新的台阶。
四、如何定位自己?
前面发表了很多关于前端开发的消极言论,比如,提到前端开发人员费力不讨好、前端开发的一些不规范现象、前端开发的学习曲线比较特殊等。这些是否暗示这个职业没有发展前途呢?答案是否定的,虽然目前前端开发领域确实存在这样那样的不足,但是笔者认为这个行业的未来是光明的。那作为一名前端开发人员要如何对自己进行定位呢?下面是一些建议,和大家分享一下。
第一,这是份很有前途的职业。选择新行业,选择新企业,选择新部门,这很适合一些刚入行的朋友们。互联网行业相对于传统行业算是新行业;如今的互联网公司也在蓬勃发展,公司的种类与数量都在上升;前端开发这块领域也正被业内重新认识,一些中高端和一些崭新的前端职业的出现就是一个可喜的标志。
第二,想一下自己是否适合和喜欢这份工作。Web 前端工程师并不是设计师,笔者更倾向于将这个岗位定位为开发人员。在这个岗位上每天接触到的更多的仍然是代码。如果你喜欢的是设计,那么应该适当调整自己的学习重点。Web 前端工程师应该是那种完美主义者。术业有专攻,多想想自己的职业规划,要有长远的打算,不能总是停留在网页设计这个初级阶段,要逐步地涉及用户体验、前端架构等领域。
第三,通过努力找到好的雇主。如果你将自己定位为 Web 前端工程师,那么去投靠对该岗位有一定认识的公司比较合适。现在国内的很多互联网公司已经逐渐开始重视中高端前端开发人员的培养,这是一个良好的契机。在这样的公司里会有明确的职位说明和职责范围,以及完善的培养计划。