思考前端职业定位,决定自己的未来,前端经验分享

前言

最近进驻平安银行工作(外包),感觉跟以前的公司大有不同,这里我分享一些个人的前端经验,希望能带给准备进驻前端行业或正在前端行业的一些人有所帮助,谢谢各位来捧场哈,近来由于在平安银行的交接和管理制度,也有N久没有写博文了。

前端局势

前端的局面其实在大多数公司是得不到认可的,尤其小城市、小公司最为明显。在天朝,每年应届毕业大学生大部分的web开发都是面向后台,基本很难找出愿意致力于前端开发的学生。基本原因有以下几点:

社会定位较低

大部分人的意识里,前端开发人员似乎是个比较卑微的角色,看似没有晋升机会,除了写页面还是写页面,说白了会直接衍生出“不就是个写页面的嘛”,这种思想在国内是莫大的悲哀。

学习资源匮乏

大部分学校或学院没有开设专门针对前端开发所需的技能课程,至少我毕业的高职院没有css/javascript的课程,这会直接导致我们技能的匮乏,需要掌握前端,最基本的(html + css + js)是必须技能,而这个学习是绝对存在过程的,我不相信什么3天学会html,7天玩转css,15天搞定js等,小熊认为经验以及实践是绝对的硬道理。其间我见过一些走“歪路”的同事,比如js并不大清楚就用上jQuery,当然并不是会,而是直接复制现成代码,稍微好负责点会百度发问,但这种学法是扭曲的,会缓慢化自己的学习之路。

后台的角度

相比后台语言,前端js并没有特别规范的内置框架,除非掌握好第三方框架(jQuery/ExtJs/MooTools/YUI/Kissy/Dojo),除去框架,而要把js引擎本身内置对象的属性要全部弄通,绝对是个长时间工程(之所以说js引擎是因为每个浏览器的内置js引擎不一定一样,这也就是js兼容问题,这种客户端程序的分歧在后台当然不存在,如果你对js引擎有兴趣,可以看看小熊的《汇总各浏览器核心(js引擎及排版引擎)深究》)。如果开发项目没有统一的编程方式以及内置框架等,将导致代码的繁杂、臃肿、不规范,也让前端排斥力变得越发不可收拾。有时候页面出错,我也曾听过后台人员会指责前端某些不规范程序会不会影响后台程序这种话,虽然我会直接否决,但有没有想过是什么造成了后台人员都这么想咱。

知识广域多元性

如果说一个基本的前端会DHTML(html+css+js)的技能,那么一个优秀的前端应该掌握的绝对不止这些,我认为:

  • html的语义化,xhtml的规范,html5的新生(特别提出,个人并不苟同DIV+CSS的说法,而是更偏向(x)html+css的说法)。
  • css的兼容(css3的了解以及瓶颈)、js的兼容与性能(ES5的新增以及将来的DOM3/4级属性扩展)。
  • 未雨绸缪,了解各类浏览器前沿(比如:IE9,IE10的未来趋势浏览器增加或fixed了哪些功能)。
  • 媒体处理,诸如切割图片,制作雪碧(精灵)图片,了解png/gif/jpg的各种瓶颈。
  • 富媒体技术,SVG/FLEX/CANVAS,优秀的前端应该至少会其中一种,能制作矢量图形以应变部分特殊需求展示页面。
  • REGEX(正则表达式)了解。
  • TCP、HTTP协议、抓包、各浏览器并发瓶颈等了解(可借助fiddle/httpwatch学习),尤其是资源传输优化(详细可以参考我的《网站优化经验(一) - 在浏览器键入url按回车后发生了啥》),项目架构等。
  • 用户体验优化,交互体验以及设计,视觉设计等。
  • 了解服务器架构(IIS/Apache/Nginx)、配置(Expires/Rewrite),瓶颈(并发)等。
  • 起码熟悉一种后台语言(ASP/PHP/JSP)(小熊比较熟悉PHP,偶是PHP转的前端)。
  • 至少了解数据库,比较容易上手的MySQL(不知道有多少已经了解过HTML5离线数据库等,想必以后会用上)。

学习历程

说完上面的多元化,我不知道会有多少人会问我,至于学这么多么?记得住么?没有时间之类的等等。是的,这是一个艰辛的历程,需要学会绝对需要好的领路人以及坚毅的学习耐力,每个知识点都有不同的要点,需要玩转web开发,将知识融会贯通是必走的道路,学习html需要掌握每个标记的语义,应用环境;学习css需要知道每个浏览器的实现(其实知道IE6/7/8等的不同怪癖就行了),再有基础的实力后,学习css3,借助书本可以看看小志的《CSS那些事儿》和牛哥的《HTML5与CSS3权威指南》;学习js需要掌握基本的js语法,与其他编程语言的区别,可以借助书本学习(小熊推荐初学者看看《JavaScript DOM编程艺术》,中级的话《javascript 高级程序设计》,高级可以随便看了,《高性能javascript》也不错)。

工作环境

小熊这里说一下关于工作环境的一些想法,我不知道有多少人看过小睿的《你为什么非要硬着头皮进大公司——给应届毕业生的几点建议》,但是在我进驻平安作为前端敏捷开发人员后,我觉得这篇文章说的没有错。“小公司需要全才,大公司需要专才。”这句话我相信也有不少人听过,小公司之所以需要全才,尤其是创业型公司,他们需要节省成本,希望会聘请一个前后台都会的程序员,甚至,会要求你会(以下是我第二份工作的经验以及技术所触范围):

  • SEO网络营销优化(内部优化:语义化,服务器伪静态/robots/sitemap编写;外部优化:交换链接、编写伪原创软文)
  • 后台(可能会要求你给网站写个发布文章的功能,大多数cms都有)
  • 前端(浏览器兼顾)
  • 美工(图片处理,网站整体视觉设计,用户体验优化)
  • 版本控制(当时还有个编写内容的人,整个技术部只有2人,我试着搭了个SVN服务器做版本更新所用)
  • OFFICE处理能力(各种03/07版的word/excel的处理)

这点不假,这个是我第二份工作的经验,基本以上都是当时做过的事,当时多亏阿当的书顺利让我从PHPer转型成前端F2E人员。当然待遇好不到哪去,但最重要的是,我积累了丰富的知识,让我能独立开发一个网站,这是财富以及短时间所赶不来的不是么?而我现在所在的平安银行则学的是另一方面(偶的职位是js敏捷开发,也算是专长js职位的吧):

  • js跨域处理,经常要跟腾讯或淘宝平台做合作项目,最常见的不过iframe自适应。
  • js的一些页面传值处理,有时候需要调用JSTL语句获取后台值(对于我这个只会PHP而不会JAVA,让我非常有动力学习JAVA)
  • 少量的css兼容(比起以前,现在是少之又少了,如果不是我自己做了jser.in的网站,我怕我都要还给书本了 - -,挺期盼能有写css的时候)
  • 各种表单处理、触发,传值,页面信息交互。

当然我不觉得这些算啥,但也让我好好在跨域问题上有个良好的平台学习。

给初学者以及应届毕业生的一点方向

不管咱是打算混饭吃还是“开发即娱乐”,小熊建议初入门或应届毕业生应该先进驻小公司打造自己的技术底子,虽然薪水不会太高,但技术到位了,自然不会缺乏猎头来上门邀请的机会;

其次,前端应该定位自己最擅长的一部分技术,比如“交互设计师、用户体验设计师、JS前端架构师、CSS前端架构师、ISO前端架构师、富媒体架构师”,前端基本上每个技能都是会一点的,而优秀的前端不仅都会,而需要决定自己最擅长的一项技能(小熊抉择的是JS工程师哈)。

现在这个社会是行行出状元(曾经有个公司HR问我是否专精HTML5,说只针对国外客户,要求会HTML5就可以了,至于国外客户浏览器兼容你懂的哈哈),再举个例子,我有个师兄曾经是做css的,毕业就在大公司一直做了2、3年,后来离开公司后,再进入前端行业的小公司,发现自己落后的不行,除了css还是css,js跟不上脚步,所以天朝缺的并不仅专精,而是站在扎实基础之上的专精。

  1. avatar
    路人甲#69

    这个网站做的不错,有点前端的意思.呵呵,有些文章说的还是不错的,这个解释前端的,也还算中肯.前端的路确实难走.对于基础知识之上的专精,还是蛮有理解的...

  2. avatar
    Jayuh#68

    快写博客,坚持!

  3. avatar
    天凉#65

    偶也是PHP转的前端

  4. avatar
    明升88#64

    已经半年多没有更新了哦~

  5. avatar
    三五笑话#63

    新年马上到了,提前祝新年快乐,博客越办越好!

  6. avatar
    潜行者m#61

    强烈建议博主在主题 head 中,加上 link rel="alternate" type="application/rss xml" 这,可以直接通过浏览器或者其他程序识别出订阅源,订阅更加方便一些。你懂。

    • avatar
      ibearB1

      感谢提醒,很好的建议

  1. 目前还没有trackbacks.

  2. Trackbacks被禁用了

发表评论 进楼快捷键: ctrl+Enter取消回复

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>