今天有人问我这样一个问题:“看你学历也不错,为什么选择前端啊?”。之前被人问过好多次这个问题,甚至自己也在问自己。
每当我听到这个问题,心情是很复杂的:
气愤。你们可能误解前端了。
在过去,前端给人感觉就是做网页的。写写 html,css,复杂点的页面还需要写一些脚本。工作难度主要集中在处理浏览器兼容性上。但总体上,技术含量不高。
如今,前端早已不是这样。浏览器性能和功能越来越强大,技术标准越来越完善,大公司(Google,Facebook,Microsoft)都在推动web技术的发展,越来越多的PC应用被迁移到浏览上,firefox、chrome都在推出webOS,浏览器提供的编程接口越来越接近操作系统的编程接口,web技术是目前唯一能够真正解决跨平台问题的技术。
web开发是趋势,时代需要,世界需要。如果让我从PC客户端开发、web开发做选择,我毫不犹豫选择web开发。
就像张克军在知呼说的那样的,前端工程师正在逐步向产品工程师转变。参见 张克军 在知呼上给出
答案。
兴奋。那么多人误解,说明有市场,有机遇。
很多人对前端的理解还停留在10年前的阶段。从这几点就可以看出来:
1. 国内的大学几乎没有开设前端相关的课程。
2. 大学生中很少有人在在校期间学习前端开发。
3. 毕业时更是少有人把前端作为职业,以我为例,就是我们那一届的唯一一个。其他同学选择都是,算法(自然语言处理、数据挖掘等),架构,数据库等这类“有技术含量”的工作。
以上说明,虽然想做前端的人很多,但真正有实力、聪明、踏实的人不多。
另一方面,国内互联网除了那几家大公司外,在前端设计、实现方面要落后国外10年(我写的10年,也许没那么久)。需要大量优秀的前端人才来填补这个缺口。
另外,在前端、视觉设计、交互设计、产品的职业划分上也并没有形成一套成型的划分体系。前端工程师的价值,在不同公司可能会有很大的差异。
在这样的背景下,名校出身的毕业生找一个不错的前端职位是很容的。
犹豫。也许前端真的不是那么有价值
客观的来说,前端的技术难度不大。也就意味着在整个产品研发研发团队中,前端所创造的价值基本都不是核心价值。玉伯在
《阿里前端的困局与突围》 中很犀利的分析了这个问题。也指出了前端工程师未来的发展方向,包括:
1. 前后端体系的融合,技术平台化。也就是开发工程师不分前后端,你需要有技术专长,但真正的价值是解决问题的能力。Google,Facebook 的精英文化,可以使用这种方式,国内有哪个公司可以呢?
2. 前端技术带来的体验革新,成为某些产品的核心竞争力。这样产品本来就不多,碰到了算幸运好,碰不到怎么办?未来几年web标准的开发进程会怎样,谁又能准确估计。也许需要我们前端工程师自己努力,自己通过前端技术,创造核心价值,推动整个浏览器市场的技术革新。
3. 无线领域。新机遇,技术标准化做的更好。但目前核心价值几乎还是由navtive技术把持着,html5还无法真正的站上台面。
4. Node.js领域。需要自己投入精力研究,如果可以证明使用Node.js可以为公司解决大量成本,或者大幅度提升系统性能。那前端工程师也有机会创造核心价值了。
这些问题对于初入行的人来说是不用担心,我自己,一个工作不到两年的前端,本不够担忧这些问题,毕竟自己离那道天花板还有一段距离。未来还有很长的路要走。
淡然。别人怎么看,行业怎么样,其实也不那么重要。
关键还是要选择一个自己喜欢的职业。前端还是有它自己的魅力的。我们可以在代码与设计之间切换工作。我们不用整天对着命令行,整天写同样的代码。我们所做的工作离用户最近。我们的工作直接影响着产品的用户体验。我们比除了交互设计师以外的所有人都懂交互设计,甚至有些前端自己就负责交互设计的工作,比如我自己。
没人规定必须做一辈子前端。但在人生的当前的阶段,我还是喜欢这个职业的。
我的理想是创造一款让世界知道的产品,我觉着前端可以让我离这个梦想更近,那就选择了。
欢迎转载,但请保证转载后内容排版美观、易读,且保留本文连接:
http://kingzs70.github.io/blog/2013/06/03/why_frong_end