转自: http://www.mikkolee.com/261
一直想写点关于前端开发职位本身的文字,但写了好几次都没发。最近又在持续的招聘,对应聘和招聘有些感想,零散的写多少算多少吧。
关于“前端开发工程师”这个职位
当一个词开始泛滥,就会被人忘记它的本意。我只讲我认为的解释。首先,它是“开发工程师”,也就是程序员。其工作内容的本质,就是写代码。所以,程序员应该具备的素质,比如逻辑能力,写代码的水平等等,算是它最最基础的要求。
在此之上,则是另一个要求:“界面开发”。对“看得见”的东西的感觉要敏锐。这偏偏是大多数重于理性思维的普通开发工程师,所无法具备的一项能力。 坦率的说,这也是前端开发工程师与众不同,可以引以为傲的地方。前端开发职位,正是一个将看不见的逻辑转化为看得见的图形的重要角色,也可以说,一个优秀 的网站产品,“最终”的成败系于前端开发这一环。
如何入行前端开发
由于现在这个劣币驱逐良币的年代,前端行业里滥竽充数太多,真正优秀的又都各占着坑不大挪窝,所以有必要仔细回答一下这个问题,以期更多有潜质的人能加入我们。我按当前状态来分类:
如果,你正在从事“网页设计”、“网页制作”方面的工作。我得先说明一下,“会做网页”不等于“前端开发”。再重复一遍:前端开发是写代码的,是用 代码来构建网页界面和交互。如果还不明白,我举个例子。在宜家买个电脑桌,带回来需要自己把几块板拼成电脑桌。这个过程你会做,但绝对不会有人把你称作家 具木匠。这只不过是有现成的材料,按照图纸把成品拼装起来而已。前端开发,就相当于给一块木头,要从刨木头弹墨线开始做。也不要以为今后WYSIWYG工 具发达了,就没前端堆代码这碗饭。但凡纯手工打造的都是上乘精品,再过一百年,这个道理都会在的。(这样说,感觉自己好像深山里的老师傅,hoho)
如果,你正在从事“软件开发工程师”方面的工作。那你遇到的就是另一个问题了:对于界面的敏锐度。其实前端开发也不用做设计,所以不需要知道该如何 “做菜”,但一定要知道好吃不好吃。能够知道什么界面的是好看,什么界面是不好,这其实并不容易。我其实也很困惑,为什么大多数人对界面好看不好看没有什 么感觉。但苹果告诉我们,界面好看到极致,确实是可以比一般的产品多出一些价值的。
如果,你正在从事“前端开发”方面的工作。那就需要问问自己几个问题了:对于前端开发所必须的技术,你掌握多少?“够用就行”的知识量,是无法胜任 “真正的前端开发”的。这里有一个很重要的问题:我接到的很多简历,确实可以看到对方过去一直在从事前端开发工作,但给我的案例都是非常糟糕的。如果说, 过去的工作环境让你无法做出自己想做的东西,我认为这不是值得体谅的借口。我也面试过很多来自不好的公司的人,他们同样给了我他们自己平时做的实验性作 品。诚然工作环境局限会让一个人很容易止步,但我真正欣赏的其实是对前端开发本身充满热情的人。之前的“堆代码”,只是我的一种戏称。如果你真的觉得前端 是无聊的堆代码,那其实也无法指望在将来有不断的进步。其实,任何一份工作都是这个样子的,只有热情才能将人推向完美。
如果,你只是一个“前端开发爱好者”,比如,只是一名学生,还没有工作经验。其实我经常会遇到这个来自菜鸟的问题:怎么学CSS或JS。那,如果认真的打算作为职业来学习,有几个简单的忠告:
1. 通读权威指南。不要瞎读,外面烂书太多。倒不是说烂书学不到知识,它们之所以是烂书,是因为它们缺乏一种“正确的价值观”。什么是卓越的方法,什么是优雅 的代码,这些都是有“品味”和“格调”的。由于我近期看的书不多,也不想为别人打广告,所以我只能给出一个简单但绝对不会错的答案:看《权威指南》。
2. 多做自己想做的练习。比如自己做一个简历网站或是博客,把想用的技术都用上去,做了一版再做一版。不要指望通过接外包项目之类的能给你带来技术上的提高,替他人做嫁衣其实让你很难很好的发挥的。
3. 多向他人学习。这不是说你得缠着个高手整天帮你解答问题。但凡技术高手,都是自学、google、自己琢磨+和人讨论的。计算机技术,向来不存在“教会(呃,第一个字念一声)”这一说。多和别人交流,共同提高,这才是正确的做法。
我还会其他的技能
我也时常会接到简历,声称会设计,会flash,会PHP或.NET。淘宝 倒 是一直要求应聘的前端开发一定要会一门非前端编程语言。我想他们的本意或许是在强调我开篇的第一点:前端开发是开发工程师。回到开初的问题,会一些周边的 技能,对前端开发是否有帮助?答案当然是肯定的。但我在面试时从来对这些方面只字不问。对于一个优秀的前端开发,最重要的仍然是对前端技能本身的精通,而 我相信,当你全身心投入在前端技能上时,是不大可能将其他的技能也同样做到精通的。既然不精通,我也没必要测试了。如果来者说会这些,我知道了,我也相 信,就可以了。反过来,如果你真是对前端技能精通,是不可能对这些周边知识一无所知的。其实,它们都是和前端开发工作紧密结合的,很容易触类旁通。就像一 个优秀的网页UI设计师,是不可能对HTML一窍不通的。
只会CSS或只会JS
一般而言,前一种情况比较多:CSS简单嘛。aoao同学说,百度是愿意要的,当前前提是“足够精通”。而淘宝 的 招聘广告则是狠狠的说:两者都要好。我个人是觉得,可以容许在前端开发中再细分为界面工程师和JS工程师的。但前提是,这个team已经有足够的钱来养一 个大大的前端开发团队。至少对于小公司(比如偶们公司),仍然希望来者身上有足够多的剩余价值可以被榨取(hoho)。
先写这么些吧。其实,还有一些关于前端开发职业发展的想法,等我下次无事可做时再说吧。
关于最后一点个人实有感觉,写了很多js也少许有点心得。但是也只是从代码的角度来看js基本不涉及到ui的设计,更不用说用
户体验了。如果到需要修改css涉及到真正用户能看到的东西依然没有什么敏感性。2者的不同还是能体会的到的,所以还是
比较迷茫什么是真正的前端开发工程师。