欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

前端工程师的成长故事

最编程 2024-05-01 09:18:48
...
本文作者:百度 智能办公平台 蔓青
本文分享的侧重点在于:在成长过程中,我们可能会经历哪些阶段,可以通过哪些维度来理解,并结合蔓青的真实经历分享一些还不错的小经验,可能会存在少许前端技术相关的知识点,但是应该不影响整体的分享效果。
蔓青2014年在学校就开始接触前端,16年4月在菜鸟实习,17年7月校招进入百厂到现在。进来之后大概是经历了一年半左右,从 T3 走到 T5,18年底开始负责一些事情,并辅助团队建设。


本次分享大体包括两部分,一个是自己的成长经历描述,分为适应期,热血期,焦虑期,还有突破期。其次是一些具体的经验分享,后续仔细讲。

成长历程

1. 适应期

这是刚进入职场的小萌新的时期,主要是 16 年在菜鸟实习,以及刚进入百度前一两个月的一小段经历,这个时期在我身上,主要是从校园到职场的过程。

这个时期的背景:
自己虽然在学校有接触前端,但都是小打小闹的类型,没有系统的做过大项目。而且经历过那个其实的可能有感受,当时是出于前端技术混乱的一个阶段,自己还是停留在使用 JQuery 操作 dom,对于现代前端每天都会用的 npm 都不是很清楚,跟别说 Vue 或者 React 了。在沟通合作方面,对项目的一个开发运作流程也不是很清楚,还停留在别人让做什么就做什么的阶段。

然后自己当时进去是在做什么呢?
  1. 在业务上,做的是一个快递的电子面单编辑器的东西。当时的技术栈是 vue + typescript,作为一个 npm 是啥都不知道的人,基本上也只是打打辅助,帮忙修修小 bug。
  2. 然后还有个基础建设的任务,说实话现在已经不记得是做了啥了。在被负责的同学催了无数次,只能说找葫芦画瓢,提交上去,后来发现,提交的内容基本上被改得我也不认识了。
  3. 另外还有个小工作,作为实习生,一个比较偏打杂类型的东西,就是帮各大业务部门上线各种合同协议上线的功能,很简单,就是 word 转 html 然后帮忙优化优化样式,上线。

现在回过头看,这个经历真的就是平平无奇的,技术上其实也没感受到太大的进步,但是有一些特质是有了一些苗头的,对于自己之后的成长有很大的帮助。
在做合同上线的时候,发现都是机械劳动,柄着偷懒是程序员美德的一个想法,这种事情肯定是说能不自己做就不自己做。但是有过类似想法的同学都知道,想让业务方自己操作,但是去让一个不懂技术的人写几行代码上线真的就太难了。
然后自己经过各种研究,发现当时的淘宝有套 CMS 系统,能直接上线 html。这在当时相当于是一个跨部门的调研,在自己尝试几次之后,书写了转换攻略,以及一份 css 文件给整成了模版,教学相关同学使用,后续就完全交出去了。后续在其他的业务中也有借鉴这种模式。

说完上面的故事,其实这里有两个个特质,是值得去沉淀的:
  1. 不只是满足于分配的任务,可能还会主动做一些额外的事情,虽然是个简单的实习生还什么都不懂
  2. 能从普通的小事里面发现更优解决方案
总结下来就是会搞事情,这个特质一直持续到了后面的整个成长过程中


2. 热血期

在过了一个基本的适应期之后,业务开始逐渐熟悉,然后就进入了下一个阶段,热血期,这个时期听名字就知道,是充满激情与热情的一个时期。


首先还是说一下大背景,这是在进入百度之后的几个月后,发现团队内部的历史包袱还是比较重的,项目基本是 Riot 框架开发,就是一个过气的小网红,甚至有残留的 jQuery,更别说现代的工程化组件化这些东西了,以及团队对于新人的培养机制也是有待加强的阶段。

那这个时期自己做了什么呢?具体做的业务就不详细说了,也就是一些 web 端,移动端的开发。当时自己感觉很多东西看得不顺眼。然后在项目项目中给了一定的任务,但没有太大的约束,就有空间去各种捣鼓。不仅说业务上接触了 pc 端移动端,以及 hybird 的混合开发,在基础建设层面,也沉淀了不少通用组件,梳理了团队代码规范,还弄了几个脚手架,照着 antd 的市场弄了个内部的脚手架市场。额外的甚至还玩了玩 three js 的 3d 动画,学了学 oc 的基本语法,并给我们 iOS 客户端提交了代码。


总的来说就是一句话,这个时期,不断的基于现有的业务,衍生出了很多可以沉淀的东西,也有去提前调研一些先进的感兴趣的东西,并贡献进了基础建设层面。

回过头看,这个时期,是技能点突飞猛进的阶段。基本内部提交记录每天都是满的,没怎么休息过,每天下班或者周末回家,都是没啥事就开开心心写代码。到现在为止,也是系统记录的加班时间,跟自己每天的代码提交记录是完全对不上的。这个时期的所作所为,为后面把控全局能力提供了一定的视野基础。

总结来看呢,这个时期有两个点自我感觉不错的:
  1. 对待项目,是一个主动,积极热情的态度,不光只是应付了事。
  2. 专注,虽然刚刚说做的事情多,但是每个事情其实都是一步步,专心的去完成的。

3. 焦虑期
上个时期大概维持了一年多吧,其实也没有太明确的界限之分,然后就进入了下个时期。


随着参与业务的增多,以及逐渐从配角变成主要负责人,什么事情都想亲力亲为,逐渐有些应付不过来。而且发现之前在热血期虽然捣鼓了很多东西,但是落地的效果比较一般。而且更加悲惨的是,当时自己的老大离职了,团队人员变动也挺大的,在这个阶段,自然而然的就有些焦虑。

这个时期做了什么东西呢?
首先是一个推进工程化落的的过程,毕竟刚刚说落地效果不佳,就找部门其他团队商量对策不断改进,最终全部门接入。其次是还有些项目,开始承担项目负责人的角色,不光是前端开发,还把控整个项目的进度节奏。以及有一个小小的实验点,就是有一个稍微简单的项目,使用 node 做后台,算是 js 打入了一个新领域。
当然这个时期其实也做了很多对不起大家的事情,挖了很多坑到目前都没有填完。比如带着部门前端们捣鼓前后端分离,CI 是上去了,但是微云起了各种各种的 ngnix 镜像,直接导致了微云的资源利用率特别低,管理起来也特别混乱。
还有就是接口管理工具 YAPI,之前一直想推部门层面的 api 做一个统一,但是后面精力有限,也没有持续跟进。

现在回过头来看这个时期,实际上就是充满荆棘的。
我相信大家或多或少都体会过,我们的人生可能不会是一直一帆风顺的,我对这个时期的认知,就是职业生涯的焦虑期。比如我自己就遇到了三个经典的挫折:
  1. 由于之前热血期像打了鸡血一样,处于一个向前狂奔的状态。很多事情更在意产出,而忽略了整体的质量,以至于累积的技术债开始让自己踩坑。
  2. 团队的调整和人员的变动,让大家开始在工作上感觉到迷茫和失落。
  3. 负责的东西多了,任务繁杂之后,什么事都想自己做,明显精力不够用,经常就是白天各种扯,晚上回家写代码。

幸运的,自己熬过了这个焦虑期,感觉不用多久,就会升职加薪、迎娶白富美、走上人生巅峰,想想还有点小激动呢。
说回正题,走出焦虑期的关键所在,可能不在于你做什么事,而在于你怎么去做事,以及如何去看待事情,一句话概括,就是软技能。以我自己为例,感觉主要有三个点:
  1. 对于技术债,通过每次项目的复盘,不断总结反思,去看到自己的不足并快速改正。
  2. 对于团队的变动,可以去调整自己的心态,以及用积极的心态进一步影响周围的同学.
  3. 在面对事情过多的情况,这个其实就是时间管理的范畴,市面上有很多文章书籍可以参考,自己的经验就是每天花十分钟整理好自己的 todo 系统,分清优先级,再开始工作

4. 突破期

最后一个阶段,突破期,这个时期感觉是从 19 年的 6 月开始的,但也还是目前的一个时期。


这个时期的一个大背景就是,自己在技术上已经有一定的沉淀了,但是缺乏整体的规划。团队上经过不断的招聘,开始趋于稳定,自己也有一定的精力开始思考更多的东西。在协同方面目前充当一个技术管理的角色,当然还是会实际参与一些业务开发,但是通过经验的积累有了更高层面的视野。

这个时期,不仅是技术上的成长,有更加丰富解决问题的能力,日常任务工作开始感觉到能够更好的应对。然后这个时期具体是做了什么呢?
在业务上,自己主要负责对一个历史性大型项目梳理出了一套渐进式重构方案,然后呢在新人项目由于进度把控不当,也会当当救火队员,参与开发。另外更多的可能是一些自己捣鼓的事情,比如说团队的规章制度的完善,去规范项目的开发流程,以及在部门层面推进 Code Review,和文档沉淀之类的东西,并参与部门层面的基础建设。

因为这就是目前的时期,所以其实也没有回过头看的环节了。最开始,感觉到很多事情都趋于稳定,没有太大的挑战,这时候想起了大家常说的一个词,舒适区。这里思考一下,我们讨论的舒适区到底是什么?个人感觉舒适区有两个特点:
  1. 你当下做的事情能够应付自如
  2. 你被动接触新的挑战的机会变少
那么我们应该如何去走出舒适区,大家应该都听说过一句话,温故而知新。这里稍微改动一下,就是我们的答案了,温故,和知新

温故,其实就是一个厚积薄发的过程。举个例子,比如 CI 的处理,基本上看到的问题都知道怎么做,但是这还是处于遇到问题解决问题的状态,甚至有一小部分问题只是停留在表层,没有触及到问题的根源。然而有些同学就止步不前,进入了舒适区。
这里有几个走出舒适区的建议: