一直想写点关于前端开发职位本身的文字,但写了好几次都没发。最近又在持续的招聘,对应聘和招聘有些感想,零散的写多少算多少吧。
关于“前端开发工程师”这个职位
当一个词开始泛滥,就会被人忘记它的本意。我只讲我认为的解释。首先,它是“开发工程师”,也就是程序员。其工作内容的本质,就是写代码。所以,程序员应该具备的素质,比如逻辑能力,写代码的水平等等,算是它最最基础的要求。
在此之上,则是另一个要求:“界面开发”。对“看得见”的东西的感觉要敏锐。这偏偏是大多数重于理性思维的普通开发工程师,所无法具备的一项能力。坦率的说,这也是前端开发工程师与众不同,可以引以为傲的地方。前端开发职位,正是一个将看不见的逻辑转化为看得见的图形的重要角色,也可以说,一个优秀的网站产品,“最终”的成败系于前端开发这一环。
如何入行前端开发
由于现在这个劣币驱逐良币的年代,前端行业里滥竽充数太多,真正优秀的又都各占着坑不大挪窝,所以有必要仔细回答一下这个问题,以期更多有潜质的人能加入我们。我按当前状态来分类:
如果,你正在从事“网页设计”、“网页制作”方面的工作。我得先说明一下,“会做网页”不等于“前端开发”。再重复一遍:前端开发是写代码的,是用代码来构建网页界面和交互。如果还不明白,我举个例子。在宜家买个电脑桌,带回来需要自己把几块板拼成电脑桌。这个过程你会做,但绝对不会有人把你称作家具木匠。这只不过是有现成的材料,按照图纸把成品拼装起来而已。前端开发,就相当于给一块木头,要从刨木头弹墨线开始做。也不要以为今后WYSIWYG工具发达了,就没前端堆代码这碗饭。但凡纯手工打造的都是上乘精品,再过一百年,这个道理都会在的。(这样说,感觉自己好像深山里的老师傅,hoho)
如果,你正在从事“软件开发工程师”方面的工作。那你遇到的就是另一个问题了:对于界面的敏锐度。其实前端开发也不用做设计,所以不需要知道该如何“做菜”,但一定要知道好吃不好吃。能够知道什么界面的是好看,什么界面是不好,这其实并不容易。我其实也很困惑,为什么大多数人对界面好看不好看没有什么感觉。但苹果告诉我们,界面好看到极致,确实是可以比一般的产品多出一些价值的。
如果,你正在从事“前端开发”方面的工作。那就需要问问自己几个问题了:对于前端开发所必须的技术,你掌握多少?“够用就行”的知识量,是无法胜任“真正的前端开发”的。这里有一个很重要的问题:我接到的很多简历,确实可以看到对方过去一直在从事前端开发工作,但给我的案例都是非常糟糕的。如果说,过去的工作环境让你无法做出自己想做的东西,我认为这不是值得体谅的借口。我也面试过很多来自不好的公司的人,他们同样给了我他们自己平时做的实验性作品。诚然工作环境局限会让一个人很容易止步,但我真正欣赏的其实是对前端开发本身充满热情的人。之前的“堆代码”,只是我的一种戏称。如果你真的觉得前端是无聊的堆代码,那其实也无法指望在将来有不断的进步。其实,任何一份工作都是这个样子的,只有热情才能将人推向完美。
如果,你只是一个“前端开发爱好者”,比如,只是一名学生,还没有工作经验。其实我经常会遇到这个来自菜鸟的问题:怎么学CSS或JS。那,如果认真的打算作为职业来学习,有几个简单的忠告:
1. 通读权威指南。不要瞎读,外面烂书太多。倒不是说烂书学不到知识,它们之所以是烂书,是因为它们缺乏一种“正确的价值观”。什么是卓越的方法,什么是优雅的代码,这些都是有“品味”和“格调”的。由于我近期看的书不多,也不想为别人打广告,所以我只能给出一个简单但绝对不会错的答案:看《权威指南》。
2. 多做自己想做的练习。比如自己做一个简历网站或是博客,把想用的技术都用上去,做了一版再做一版。不要指望通过接外包项目之类的能给你带来技术上的提高,替他人做嫁衣其实让你很难很好的发挥的。
3. 多向他人学习。这不是说你得缠着个高手整天帮你解答问题。但凡技术高手,都是自学、google、自己琢磨+和人讨论的。计算机技术,向来不存在“教会(呃,第一个字念一声)”这一说。多和别人交流,共同提高,这才是正确的做法。
我还会其他的技能
我也时常会接到简历,声称会设计,会flash,会PHP或.NET。淘宝倒是一直要求应聘的前端开发一定要会一门非前端编程语言。我想他们的本意或许是在强调我开篇的第一点:前端开发是开发工程师。回到开初的问题,会一些周边的技能,对前端开发是否有帮助?答案当然是肯定的。但我在面试时从来对这些方面只字不问。对于一个优秀的前端开发,最重要的仍然是对前端技能本身的精通,而我相信,当你全身心投入在前端技能上时,是不大可能将其他的技能也同样做到精通的。既然不精通,我也没必要测试了。如果来者说会这些,我知道了,我也相信,就可以了。反过来,如果你真是对前端技能精通,是不可能对这些周边知识一无所知的。其实,它们都是和前端开发工作紧密结合的,很容易触类旁通。就像一个优秀的网页UI设计师,是不可能对HTML一窍不通的。
只会CSS或只会JS
一般而言,前一种情况比较多:CSS简单嘛。aoao同学说,百度是愿意要的,当前前提是“足够精通”。而淘宝的招聘广告则是狠狠的说:两者都要好。我个人是觉得,可以容许在前端开发中再细分为界面工程师和JS工程师的。但前提是,这个team已经有足够的钱来养一个大大的前端开发团队。至少对于小公司(比如偶们公司),仍然希望来者身上有足够多的剩余价值可以被榨取(hoho)。
先写这么些吧。其实,还有一些关于前端开发职业发展的想法,等我下次无事可做时再说吧。
vapour: 2009-10-26 7:55 am
只可意会,不可言传。
kevin: 2009-10-26 12:31 pm
不看别人在Reader中推荐你,我还不知道这个小麦真是你,不知道你去了土豆
龙子: 2009-10-26 2:07 pm
爱好前端的飘过~~~
leplay: 2009-10-26 3:05 pm
土豆也不小啦~ 接着学习 js 去。
clone: 2009-10-26 3:21 pm
对前端极度热爱的同学拜读过!
perfectworks: 2009-10-26 4:31 pm
权威指南必须是厕所常备书籍啊
key4ever: 2009-10-26 7:35 pm
努力写代码
dansion: 2009-10-26 11:38 pm
怎么能不提html呢?
晴枫: 2009-10-27 1:27 pm
兴趣是最好的老师,前端需要多实践来提高
paper: 2009-10-28 1:08 pm
走过,路过,千万可别错过~~~
飘过,顶过,千万可别留过~~~
舞妖: 2009-10-29 10:04 am
只会CSS属于小精通。。
努力学习JS的飘过。。。
mikeyao: 2009-10-29 11:06 am
同时精通css和js的人不多吧?我们公司的做法是,js由后台程序员带了,前台页面包括css和浏览器兼容性有网页设计师做(设计稿到最终的页面代码)。
hax: 2009-10-30 4:17 am
某个ued部门的头头在面试的时候问我html/css/js哪个更精通,我回答我都很精通,他貌似对我的回答很不满意。。。
说正经的,js好歹是一门编程语言,因此与html/css在知识结构上有些不同。不过如果仅仅是网页编程,只要精通jquery就好,不必一定要精通js。
Donna: 2009-10-30 2:46 pm
话是这么说,做前端的只要求会做制作,这排除大公司,一般的公司,你做前端不仅仅是要做制作,设计,交互,seo都要求会。
我一直处于制作的阶段,但是还是感觉底气不足,在外面吃不消。
笑笑: 2009-10-31 12:11 pm
这文章不错
Twitter Weekly Updates for 2009-11-01 - 岁月如歌: 2009-11-1 12:59 pm
[...] http://www.mikkolee.com/261 小麦说出了很多心里话 # [...]
army8735: 2009-11-3 9:22 am
土豆也不小了……
像淘宝那样要求会一门非编程语言,我感觉是为了让前端人员更好的和后端人员合作。不懂session不知道post、get请求的话还是很难办的。
单向度: 2009-11-12 5:45 pm
仁兄的一席话让人茅塞顿开,望以后出更加有指导性的文章,疯狂渴望中!
小麦: 2009-11-15 11:24 pm
@hax 鉴于你JS如此的精通,你CSS肯定不够精通。哇咔咔。
橘左近: 2009-11-17 5:30 pm
什么时候聊下前端该如何和UI设计合作,对拿到的PSD有什么要求等等
jkfzero: 2009-11-20 1:05 pm
能不能介绍顺便介绍一下前端工程师的职业路线。
比如 |->前端开发工程师->| |->产品设计师
| | |
前端程序员->|->UED工程师->—- |–|->用户体验专家
| | |
|->前端架构师->—– | |->*****
Sivan: 2009-11-27 7:39 pm
还不到一年就毕业,的确对这个职位很向往,而又不知道自己的水平到底达到一个什么标准。每当看到招聘信息那些“全面人才”的要求,就觉得自己还有很多欠缺。
浅谈前端新人的职业规划 - 笨活儿的Web前端和网页设计: 2009-12-6 11:00 pm
[...] 这其实大致描述了在前端领域可能面对的挑战——视觉,交互,前端开发。这也正是大部分互联网公司UED部门的职位划分。平常所说的前端,一般指狭义的“前端开发”,此文标题里所说的“前端新人”,也是指作为程序员的各位刚入行的前端开发者。程序员有什么成长轨迹,前端新人自然也八九不离十——一日千行代码,钻研细节成为技术大拿,自写程序贡献开源社区,出书立著;学习管理经验,负责团队项目架构,跳槽或创业,当老板赚大钱…… [...]
辉舞世间: 2009-12-7 10:10 am
看了挺有感触的,发现我还只对CSS达到了精的地步,真正的通还差一点点……
Thankwsx: 2009-12-8 7:45 pm
YAML 一个德国的CSS framework
http://www.yaml.de/en/documentation/changelog/version-3x.html
小麦: 2009-12-9 11:16 pm
@Thankwsx:收到,多谢~
lisfan: 2010-1-1 5:06 pm
。。。。。。对前端又了解些了,步入真正的前端还有一大步要走,目前也仅仅只是CSS精而已
uoian: 2010-3-31 4:27 pm
受教了。我也在做前端开发,不停学习中…
季氏安安: 2010-6-24 2:37 pm
不精通CSS,也不精通JS的飘过…