进击的前端之路

721 阅读6分钟

相信作为一个前端从业人员,很多人在不同的阶段都会遇到自身定位上的一些困扰。比如我到底在前端这个行业里,处于一个什么样的水平?前面的路,该怎么走?这些问题我也一直在思考,下面跟大家分享我的看法。

前端分哪些阶段?

我觉得可以拿阿里大厂的职称评级作为前端阶段的参考,从p4-p7,分别是初级中级高级资深,往上的专家就不说了。


初级前端

  1. 工作年限:小于1年
  2. 能在leader的指导下完成开发任务

这个阶段的同学,以积累项目经验为主,多主动做事,学会学习和提问的方法。

中级前端

  1. 工作年限:1-3年
  2. 布局:熟悉各种布局方式,比如:响应式、双飞翼、圣杯、不定高上下居中、弹性布局等,能给具体的业务场景选择较为合理的布局方式。
  3. js:熟练使用es3-6版本的各种函数和语法,比如:数组的方法filter、reduce、shift等,对象的方法is、assign、keys、values、defineProperty等,异步处理语法Promise、async await、generator等,对于js执行机制有一定了解。
  4. 框架:起码熟悉一个流行框架,比如:vue、react、angular,怎么算熟悉呢?拿vue举例,能用vue-cli搭建一个 vue项目,能知道vue-router我应该选择什么模式,能判断我是否应该采用vuex,对于如何做到页面资源按需加载的几种方案有了解,知道哪些内容应该封装成组件,最后能根据业务要求完成项目。
  5. 工具:对于一个项目的底层构建工具生态都有一定的了解,比如:能完成基本的webpack、babel、gulp、less等工具的配置
  6. 服务端:有一定了解,比如:了解后端开发一个接口背后的实现的基本流程curd、用node实现过基本的静态服务、用node实现过基本的curd
  7. 其它:对网络通信层有一定的认知

中级前端是一个‘知其然但不知其所以然’的阶段。从我的实际工作经历观察来看,往往这个阶段阻挡了一大批人。有的人甚至工作了七八年,工作经验非常丰富,各种web端、移动端、小程序、app、桌面端等项目都参与过,各种框架vue、react、angularJS都非常熟悉,看似十分全能,实则仍然局限于会用的阶段,仍然只能算是一个中级前端,也很少有企业会给这样的候选人开出高级前端的工资。

中级前端应该是前端行业里数量最为庞大的人群,市面上绝大多数企业的前端,应该都处于这个阶段(几个大厂除外)。这个阶段是最为关键的阶段,在这个阶段停留了五六年、七八年的前端大有人在,这是非常大的一个风险。

人们都说程序猿吃的是青春饭,我觉得很对,至少对于所有的中级前端来说肯定是,想想到了三十几岁,怎么去跟潜力更大,精力更旺盛的小伙子小姑娘们竞争。所以这个阶段的前端们,应该更有紧迫感,加油。

这个阶段的同学,需要注重对知识面的拓展,对底层原理的理解,孜孜不倦,早日迎来质变。

高级前端

  1. 工作年限:3-5年
  2. 布局:精通各种布局方式,深刻理解每种布局方式的原理,深刻理解浏览器的渲染机制
  3. js:深刻理解js的执行机制,理解Promise、async await、generator等异步语法的实现原理,能够灵活应用函数柯里化、闭包等技巧,熟悉函数式编程,能够灵活应用各种设计模式,熟练使用typescript之类的语法糖
  4. 框架:至少阅读过一种框架的源码,并对此有足够深入的理解
  5. 工具:了解webpack、babel、less、gulp等工具背后的原理,具备编写loader、plugin、babel-plugin、gulp-plugin等插件的能力,至少对一种ast引擎有了解,比如Acorn,能基于ast引擎进行开发
  6. 服务端:能基于一门服务端语言进行独立开发,对于mysql、oracle、mongo、redis有足够的了解,了解分布式、微服务、bff、serverless等,对大型网站架构有较深入的认知
  7. 其它:深入了解网络通信,比如:dns、http、https、udp、websocket,熟练使用各种常见算法,比如:深度遍历、广度遍历、二叉树等,熟练使用正则表达式,

高级前端与中级前端的区别在于,这个阶段,更多的精力在于钻研前端的一些原理,看问题能快速看到问题的本质。任何一个高级前端,应该都具备独当一面的能力。

这个阶段的同学,能力很强,想再进一步,需要机遇,需要转变单兵作战的思维习惯,需要更加积极主动去发掘并解决问题。

资深前端

  1. 工作年限:5-7年
  2. 价值:作为资深前端,不一定从技术而言,比高级前端强多少,更关键在于,对于企业,资深前端能创造更多的价值。比如:给团队搭建完善的前端工程化体系,针对复杂的业务场景给出高质量的解决方案,善于发现团队中的痛点并解决。说白了核心就是给团队提效提质,提效意味着人力成本节省,提质意味着系统稳定性强,用户体验佳。
  3. 影响力:无论在公司内还是行业内,开始建立自己的个人影响力,同时提升公司前端团队的影响力

这个阶段的前端,是会‘找事’的前端,单纯的提升技术,并不能达到这个阶段,而应该思考如何最大化整个团队的价值。常常这个阶段的前端,都能给团队带来一些新技术、新方案,解决团队面临的一些问题和痛点。不过也需要警惕自身陷入一种对新技术、新方案的一味追捧,需要思考清楚‘what’、‘why’、‘how’的问题。


总结

初中高级的前端的整个过程,在于学以致用,把用发挥到极致。但从资深前端开始,要学会无中生有,要不断挖掘团队的能力,要像森林中的猎犬一样,善于发现‘猎物’,创造机会,解决问题,打造自身和团队影响力。