程序员工作五年,后面四年在重复第一年的事情,该怎么办
关注程序员耳东,编程转码真轻松
提供前端面试辅导服务、零基础前端自学辅导服务;免费修改前端简历,免费回答小问题
最近在帮助一些粉丝跳槽准备校招春招和社招的金三银四,发现一个比较显著的问题就是:大部分人都在工作第一年的时候进步非常迅速,学到了很多东西,从第二年或者第三年就开始变得很机械了,工作节奏基本上就是一个接一个的需求,写着重复的套路代码,使用着同样的工具,没有创新也没有成长
等到跳槽面试的时候,才大声惊呼:我这几年究竟在做什么?我好像一直在重复之前的经验
这种囧境该怎么破呢?因为我大部分粉丝在公司都是做中后台系统的,所以我拿比较典型的中后台管理系统来展开说明这个问题
先看看我们平时是怎么做需求的,先是需求评审,然后排期,最后开始写代码开发
开发的过程中,写写组件,调调样式,单页应用的话再设计下router和store,最后前后端联调,提测上线
这对于一个有几年工作经验的前端工程师来说,基本上已经手到擒来了,做久了真的会很乏味,这就是传说中的一年经验重复好几年
但是对于一个有进取心和追求成就感的工程师来说,需要回头看看,整个过程中我们可以沉淀什么,可以在哪里找到成长的机会?
我们回顾一下平时工作的开发流程,慢放一遍过程看看能不能找到可以深钻的点
需求分析
首先接到需求之后开始分析需求,分析需求的过程中我们做了这么几件事:
了解需求的背景
它服务于哪个目标,它是为了提效还是未来增量,这个东西可能很多程序员并不会注意,以为程序员只管写代码就好了,其实这是非常错误的
知道我们的代码为什么可以写,可以让程序员更好的了解业务,也可以让你站在更高的维度去看待写代码这件事情,同时因为你对需求背景的了解,也可能跟产品经理讨论出更好的实现方式,避免一些不必要的工作量
需求需要改哪几个页面和代码仓库
如果说改的页面比较类似,是不是可以考虑抽象成模板,仓库太多的话是不是可以改造为monorepo,这块也算是个技术亮点
哪些组件可以复用,自己写还是找开源
比较有经验的程序员在需求分析阶段把哪些组件可以复用就能确定下来,哪些组件可以找开源的哪些组件得自己写,如果自己写的业务组件多了是不是可以搞个组件库发布一下,然后组件这块的设计性能啥的也值得深入研究一下
需求是否需要考虑移动端适配?
有些做PC项目的程序员长时间不做移动端项目,可能完全不知道移动端应该如何适配,如果说我们可以在做PC项目的时候就考虑到移动端适配,并且沉淀一些库什么的那就最好 出需求的排期
需求排期这块,很多经验不太深的程序员经常估错,要么太长要么太紧,这块其实也有东西可以研究,并且随着经验的增长,如何去管理好排期、如何给别人排期、排期太紧的话去砍哪部分的工作量,也是值得考究的
开发过程
开发过程应该是大部分程序员最熟悉的阶段了,我们来看看这个过程中有哪些点值得深钻,我只写一些我现在能想到的,可能有一些我还没想到,欢迎补充
项目跑起来
写代码的第一步是得把项目跑起来,这里就涉及到几个问题 项目用的是什么库跑起来的,webpack?vite?还是rollup?项目启动快不快,不快的话是不是可以优化
写样式
现在项目中已经很少裸写css了,基本都是scss、less,那么这些玩意是干嘛的,你们项目中的复用率怎么样,能不能跨项目用
路由、store
这个需求是不是需要新增路由或store,直接单页应用就可以解决还是做成多页的?
函数式编程
前端尤其是React,现在非常推荐函数式编程,这块也是一个值得深入的点
接口请求
哪些数据是跨域的?jsonp?转发?接口超时?本地开发时数据是如何mock的,要不要跟后端的数据联动?是不是要上TS?
老项目
开发过程中有没有老项目,和当前技术栈不一样的,要不要搞个微前端或者重构?
SSR
对于一些偏C端并且用户体验加载速度要求高的页面,是不是得上个SSR
单元测试
说实话我确实没咋写过单元测试,但是如果感兴趣这块确实可以研究下
发布上线
开发完了之后就要上线了,上线的时候有这些点也可以深钻
项目打包
打包构建的速度够不够快,有没有优化的空间
线上监控
如何监控到线上前端页面崩溃和线上后端接口挂掉,避免线上事故扩大化
用户体验问题
这里就涉及到一些性能问题,比如页面加载速度、首屏等等
总结
以上分析的这些,其实有很多值得钻的点,过程中可能会涉及到看源码,也可能会涉及到造轮子等等,都是不错的成长方法,这些也都是我正在实践的,如果觉得工作无聊没有挑战,可以看看