很多工作了二年左右的前端开发,其实处于一个很尴尬的境地。说他们是前端开发工程师吧,其实水平有限,只会一些html、css、js、jQ,顶多再会一些vue语法应用之类的。但你说他们是前端新人呢,也不适合,毕竟也干了二年多。
很多公司招聘前端开发,都会要求什么模块化、架构设计、开发逻辑、各种开发思想等等。这些东西他们在学校里也没教,培训机构里也不讲。所以很多工作二三年的前端,其实也很迷茫的,他们也想上进,也想提高自己,但总有些...无处下手的感觉。
这个问题,表面上看是如何提高自己的技术能力。但在本质上,是前端开发如何成长。
大家也都看到了,网上很多几块、十几块、几十上百块的学习视频,我也各种渠道看过一些,必须要说其中很多的质量是很不错的,还有很多技术分享,讨论、讲座。你看了很多之后,会发现好像并没有什么大的提升。该不会的还是不会,该不懂的还是不懂,只是知道了很多名词。如果这也算成长的话,那这成长未免也太慢了。
那么在我眼中的前端成长是什么呢?
1、不是你掌握多少个框架;
2、不是你做过多少个项目;
3、不是你待过多大的公司;
而是随着工作年限的增加,你的解决问题的能力有没有增长。这个话题就有点抽象了哈,可能有同学会理解为,【是不是在说经验的增加】?
不是的,经验 !== 能力。
在我个人主观看来(每个人看法不同),能力至少由广义+狭义组成,
狭义的能力,
_具体的技术
_html
_css
_js
_jQuery
_vue、react、node...
_更多具体的技术
\_标准
\_http
\_css
\_tcp/ip...
广义的能力,
_编程思想
_前端架构设计
_前端工程
在一整个人的能力中,【狭义只占20%,广义的占80%】。当然了,这是我个人这么多年来的主观体会和感受。可能在比例上会有出入,但大趋势上肯定不会有问题。
相信同学们自己也能感受到,前端变化快的东西,什么jQuery、vue、react、webpack、npm、yarn等等,都是在【具体的技术】这个范畴里。这个范畴里的东西经常会变,jq被vue、react推翻;gulp被webpack推翻;现在yarn又要来推翻npm之类的。而很多技术都是由大公司推动的,例如react是fackbook的,google经常搞各种新东西出来,所以你会看到前端开发界经常有新东西出来。
但是【标准】就不一样,这么多年来,也只出来一个html5,没听说哪个公司推翻了html5自己搞一个出来。
广义的能力里,
_编程能力,主要是对各种API的熟练程度、调试方法、算法应用,数据结构等。
\_前端架构设计,
往小里说,就是项目文件、目录的结构,函数接收、返回参数的顺序,对象和方法的松紧耦合,数据在程序中的流向...
往大了说,一个模块你写的很好,你未必能搞定100个模块。数量与难度的关系不是简单的乘法。这就需要你能从100个业务模块中抽象出业务逻辑,形成逻辑模型。这时就需要设计模式了,什么MVC、观察者、原型...等。
\_前端工程化
很多人把前端工程化理解为webpack用的熟练,其实这只是前端工作流的自动化而已。无非是机器代替你做一些重复的工作罢了。
工程是什么?
是很多人在做一件很复杂的事情。
所以前端工程化,其实是协作问题,跨部门,跨业务,跨团队,跨应用。代码风格协同,代码质量。例如,你的应用要获得兄弟部分的应用的日活数据,你怎么去得到?恩?要沟通、要协作。
所以你通过招聘简章也能发现,越是小公司的技术要求越是具体;越是大公司它的要求越是宽泛。因为大公司里业务复杂、流程复杂、规模复杂,所以大公司对前端的技术要求更偏向于广义的能力方面。而又因为很多同学进入大公司之后,他接触不到大的、复杂的项目,所以就出现了“面试造飞船,入职拧螺丝”的情况,其实就是这个原因。
那么写到这里,同学们也应该明白,自己的技术提升方向在哪里了,【就是往广义的能力方向去学习】,而不是多学几种语言、多学几种框架什么的。
因为篇幅所限,这篇文章写到这里基本也就要结束了。
如果这方面还有什么其它的疑问,可以加我vx:blazeloulan,或在文章末尾留言给我。我感脚,我还是可以给出一些建议的。