最近招前端职位的,招了好久都没合适的。为什么前端会这么难招,这里总结一下。
前端并不比后端简单,中国的企业包括大企业很多时候意识不到这点。未来的重点是人机交互,这也是为什么微软,苹果,google都大力发展新的科技人机交互,这些都是前端的范畴。
同样编写代码,我觉得语言差异不大,目前前端基本上是标准混乱,虽然增加了学习复杂性但实际和后台差不多. 重点不在css, dom,js 和后端语言差异, 前端难在表现层和代码的结构上。这点后端真的没法比, 而且就中国来说,用的都是国外的语言,框架,开源的技术, 基本对计算机发展没起到什么作用,无论是前端和后端不存在后端技术比前端更难的说法。
- 前端是一个比较新的行业,不像C、Java之类的在学校就可以学到(当然能学到多少是另一回事),目前我还没听说哪个学校会专门为CSS、Javascript开一个课程。相比后端或者设计人才,在学校的时候就希望往前端方向发展的人要少的多。这个圈子的人专业都不对口。
- 前端真正高速发展不过几年,相较C、Java,历史积累的技术经验少,很多前端牛人的技术都是自己在项目中锻炼出来的,但他们可能又没有时间和精力去总结升华自己的经验。新入门的同学品尝不到“前辈”的积淀,又没有合适的项目练手,成长缓慢。
- HTML是一个“一看就懂”的语言,“不需要学习”;会写color:red就号称会CSS(我一直说那是English,不是CSS);会写标签页切换就敢称会Javascript。后端同学用div+span或table就可以把页面拼出来,再加上jquery,效果还不错;设计同学可以方便的把ps转到dw里,代码都不用手写,就可以交给后端继续开发了。都觉得前端“不过如此”,圈子浮躁,愿意持续关注和往深度研究的人少,“精通”更是奢望。
- 对于后端同学,不愿或没时间对Javascript深入研究;设计同学一看到函数、变量就头大;而直接入前端行业,没有其他后端语言基础的同学,又难以更深入的理解Javascript。Javascript是一门“夹缝语言”,能够安心把Javascript学好用好的人更少。
- 本着多快好省的原则,一部分Javascript需求被Flash包揽,另一部分被开发人员告知“无法实现”后夭折。重Javascript、并持续开发的项目少,参与的人自然也少。
- 技术靠谱的人,无论前后端,都是有性格有想法的,不会因为只言片语就被人挖走。在他们看来,人靠谱、事靠谱、钱靠谱的项目也很难找。
前端的难度
1. 表现层
现在前端还是2D,慢慢以后3D发展,对表现层要求更高,很多算法没有3-4年根本没法做。其次人机交互的提升,鼠标事件,触摸事件 kinnect 等等以后的技术对表现交互要求很高。实际上,要想做好必须要有一个设计师的出发点来审美,否则很难做好。说白了就是创意。设计,实现。再也不是后端那种工厂接口写好完善的代码就可以的了。
最重要一点就是前端必须找出最优解才可以,否则就很难用。而后端只要代码完备实现功能,不一定要最优解解决问题。
2. 代码结构
数据必须和表现层绑定在一起层显出来才是数据,否则看不到数据后台传过来对用户来讲没什么用。由于数据是和前端绑定在一起,而后端不需要呈现只负责储存和传输,那么对代码的复杂度来讲肯定低很多,不同的呈现组件都需要不同的方法在绑定数据,当交互越来越复杂,结构也越来越复杂,就像国外很多框架都是为了解决代码结构组织。但是做到实际的自己项目只能自己去解决这些问题。不像后端,数据库都是自己用现成的,后端做数据库也很难,但目前国内好像没有自己做过什么数据库的,都是直接拿来mysql之类就用. 还有一点就是前端技术目前成熟度不高,比较混乱,做出好东西很不容易。
就是说想要做出前端的好东西,没有创意,设计、技术再厉害也很难设计出优秀的作品,前端是需要天分的。