两年前,我在一家员工不超过10个人的小企业做php程序员,算是从此正而八经的走上了程序员的道路,原本打算在就这么干下去的,但是薪水还不够买一平米厕所的。那时的我估计也就会用jquery写一个隔行变色之类的东东吧,但是我认为,程序语言都是相通的,熟悉一下语法,应当没有什么难的。在艾伦的几翻招唤下,终究还是跳了过去,转做前端。那时艾伦的项目虽然没有现在这么复杂,但是对那时的我来说,完全超乎我的想象了。一个项目,从头到尾,全是js代码,还分门别类的存放在不同的目录下面,完全不是我所理解的js的样子。
我见过的js都是写在一个网页里边的,这种拿js像php一样做应用开发,还真是大姑娘上轿,头一回。上班第一天,艾伦说要我先看看代码,熟悉一下环境。就这样熟环境,我一熟就是三个月。我想还是俏俏地撤了算了吧,免得到时候艾伦也难做。没想到艾伦对我的困境倒是看的很轻,安慰了我一翻,要我多花心思在代码上,别的不要多想,放下包袱之类的。那话把我感动的反正是稀里哗啦的。即便是亲兄弟,也不过如此啊。渐渐地,我开始能够做一些样式方面的小打小闹的事情。总比每天盯着满屏代码光看不写要强一点吧。经过前面三个月的痛苦的煎熬,后面就感觉好多了。我买了一本高级程序设计3的红皮书进行恶补,每天看几章,特别是针对面向对象那一章,边看边实践,从思想上对js的认识有了更深的理解。什么原形啦,作用域链啦,函数是一等对象啦等等一些以前只在php中才有的概念,原来js也可以有。因此,js能做出如图那样的规划和应用也就不足为怪了。
后来,原来一直做多媒体这一块的同事走了,艾伦就交给我来维护,也正是从那时起,我才真正开始写一些js代码。也开始接触phoneGap和html5相关的一些东西。时间过的很快,转眼就一年过去了,艾伦说我进步的还算可以,他笑言他的项目,即便是有前端经验的,也要三五个月才能开始接手写。虽然我知道他那是安慰我的话,但是至少给了我继续写下去的信心。艾伦也会挑一些容易需给我实现,让我过的充实一点。比如,那时写的忙碌光标,现在还在用,我就觉得挺有成就感的。再后来,我又重构了音频控制模块和一个Video播放器模块,渐渐地就开始可以写稍复杂一点东东了,比如视觉差之类的。但是与艾伦的差距,我只能说一直在追赶,从未超越过。
艾伦说他进步的快,一方面是因为有一个好的项目,另一方面是因为他看了大量的源码。然而我觉得对一个刚入门的新手来说,看源码未免太难了点,看源码,需要建立在自己已经有一定的项目经验和理论基础上,经过自己慢慢的摸索和积累,才会从中受益。由我的学习经验来说,先看一些基础书,像我上面提到的那本红宝书就很不错,内容全面,浅显易懂。然后就是看一些简单的库,最好不超过1000行,学学他们是怎么用面向对象的方法实现功能复用的。最重要的还是要多实践 ,把看到的东西多写写,或许会有新的发现。不要有会用jquery就觉得自己是高手的想法,也不要认为自己有几年写网站的经验,就觉得自己是前端界的老鸟,学无止境。最近艾伦把jquery的源码都看的烂熟了,对里边的许多精妙的用法,都能用在项目中,我又得努力追才行。学如逆水行舟,不进则退啊。
从事前端一年多的感受