将前端开发和服务器端开发做一个比较,前端开发没有服务器端开发“深”,服务器端开发没有前端开发“广”。经常听到做前端的同行抱怨需要学的东西太 多,东学一点西学一点,什么都会,但也什么都不精。很直接的结果就是沦为打杂的程序员,对能力没自信,在团队说话也不够有分量。于是越来越多的同行们得出 了一个结论:“通十行不如精一行!”
其实这是个误区。精通一行?在前端开发领域,不通十行就无法精一行。
先来说说“精一行”这个很重要的概念吧。具体细化到什么程度叫做“一行”?是具体到前端/服务器端,还是具体到设计/DIV+CSS /JavaScript/RIA?细化的粒度越小,我们需要掌握的也就越少。很多工程师为了能够快速“精”一行,尽量让“一行”的粒度细化。可是,有两个 问题:
精的粒度越小,我们的就业范围就越小。显而易见,如果你精通的范围越小,你的实用价值也就越小。
这个行业的界限非常不明显,各个领域互相渗透。比如说。你想成为ActionScript 3方面的专家,你选择了走Developer的路。Designer相关的知识可以不用考虑太多。你不用去学配色,不用去学PhotoShop质感处理, 不用去学AI,不用去学CD,不用去管用户交互,不用去管版式设计,你只管程序就OK。而且,我只想成为ActionScript 3方面的专家,我只要学好ActionScript,而且是ActionScript 3,ActionScript 2我都可以不用去学,多轻松啊!是吧?真是这样吗?当你决定只去钻这一个方向的时候,你会发现原来ActionScript还要与前台和服务器交互, ActionScript自己不是万能的,它需要与其他程序配合。好吧,那么前端的和后端的你可以不学吗?如果不学,你会发现自己很多时候搞不明白整个流 程,你的工作会困难重重。是的,只是知道就可以了,并不需要精。技术与技术之间会互相依赖、交叠和渗透,就算你只想成为一名视觉设计师,如果你不懂 div+CSS,你设计的图前端工程们可能很难实现。也就是说,想要做个好的视觉设计师,掌握一些CSS的知识也是必要的。
我们再回到前面的盛大招聘的例子。盛大招聘的前端工程师有些什么要求?前端各种技术该有的都有了,为何还要求会服务器端技术?是它们不懂技术乱提条 件吗?相反,是它们懂技术,知道“精一行,得通十行”的道理。它们的招聘岗位又怎么样呢?有细分到 ActionScript 3工程师、jQuery工程师、YUI工程师、PS设计师、AI设计师吗?没有,分工如此细的岗位是不存在的。没办法,只专精一个极细领域的岗位的需求是 极少的,我们不得不选择“粗粒度”的精,也就是说,不必精十行,至少要通十行。
专精很难,甚至不可能,一专多能才是现实的。在前端开发这个领域,一专多能更是非常必要的。