你你你你要晋升吗?

561 阅读11分钟
  • 关于我
  • 明确职级目标
  • 答辩项目选择&准备
  • ppt制作&呈现
  • 演讲&提问

关于我

我是滴滴的一名高级前端工程师,可以叫我pagnkelly,负责花小猪的小程序开发迭代,以及组内小程序框架Mpx的建设,此次有幸被老板提名晋升资深前端工程师,经历了一场答辩的洗礼,在此分享些个人感受和总结的技巧来帮助到可能在同样在准备晋升的你。

明确职级目标

借用滴滴的职级,以及我们大老板的详细阐释

d6 本职级的关键词为独当一面。申请晋升至这一职级的同学,需要表现出自己能够独立完成一个功能模块、一个完整的项目、或者负责一个小型的功能平台。能够在这一维度问题或需求进行分析拆解,并给出解决方案,最终令人放心的达成。

d7 本职级的关键词为有架构能力。申请晋升至这一职级的同学,需要能够在多个不同模块之间、或者一个复杂体系的多个功能点间进行良好的拆解与实现,对多个相关的业务系统有足够的了解,能够综合业务需求与技术问题给出合理的解决方案。具备方案选型、复杂度管理,能够发现工作中的问题并通过技术或架构解决。

d8 本职级的关键词为方向负责人,专家级的人员。申请晋升这一职级的同学,需要能够把握自己方向上技术或业务的挑战与问题,做出正确决策与长期规划。能够综合考虑多个维度的现状与问题并给出合理解决方案。能够对低职级同学具备指导能力,带领方向更好的发展。能够洞悉原理,可迁移。

我此次晋升的职级为d7,关键词为架构能力,复杂业务的拆解与实现,以及足够的了解多个业务模块,能够给出合理的解决方案且长期看到收益,我是这么理解的。

答辩项目选择

那么基于职级的目标来看,我们要选的项目一定要具备:

一定的复杂程度,不能像是一个组件,一个需求功能,或者一个点。最好是一个系统,多个模块的交互。

需要能体现你的技术深度,所谓技术深度也不是用到的技术多牛逼,我理解是你对需求的目标的深入理解,思考的范围全面,平衡各种实现方式最终选择上是合理的,是无懈可击的,一旦被评委抓到一个可能突破的点,他会疯狂逼问你。还有你的设计要有目的性,每一个细节都是可以讲的点,为什么这么设计,这么设计的好处。

项目的实际价值,比如一个页面的pv,uv,点击率,DAU,转化率,GMV。以及首屏幕渲染速度,缩短编译时间,提高了效率,缩短链路,提升了用户体验等等。用数据展现项目成果是更能打动评委的,是更严谨的。

项目的数量最好2-3个,不宜过多和过少,少了觉得产出不够,多了答辩的时间不够,以及展现不够全面。起初我选择了多个项目而每个讲的都很浅,后来删减项目虽然3个,但是点4个,还是有点捉襟见肘。

项目一定要是你的,很多时候项目都是合作的成果,别人可能不参与答辩,你当然可以讲全部,不过你一定要对其他人的实现有足够多的了解,否则会漏洞百出,且老板们都知道你做啥了,不要抢夺别人功劳,要摆出诚恳谦卑的姿态。

对于晋升来说,项目选择算得上是第一步,也是很重要的一步,假设一开始没选好,后面想改的话就像演出临时改歌一样,往往因为准备不充分而社死现场,记住你不是五条人,没有这么多次复活机会。

还有就是很多同学觉得自己的项目没什么可讲的,但是确实也做了很多东西,拿出来看了看没什么点,都觉得low,可能当时觉得实现好的地方都给忘记了。我们其实都是一样的,上大学时应试都是临时根据考点准备了下,平时可能都不学习。所以我们最好就是平时工作的时候就把可能晋升用到的记录下来,平时工作就是为了晋升,而不是临时抱佛脚晋升。

就我个人而言,我选择的项目是

  • 花小猪小程序的业务,这是我们的核心业务不可能不讲,我选择了两个点,一个是一个模块的重构,另一个是小程序动画方案的总结。
  • webx,我们的一个营销全链路解决方案,我负责的是小程序的sdk以及落地到花小猪小程序。
  • vscode插件,这个算是技术贡献。

有的时候其实都不需要你来选择项目,问个你同组的同事都能帮你规划总结你的项目,因为你做的东西别人是在看的。

然后就是针对项目的准备,借用老板的总结,你每个项目需要有以下几点。

  • 项目背景
  • 困难与挑战
  • 解决方案
  • 价值与收益
  • 复盘与思考

举一个我模块重构的例子,项目背景是

  • 模块的业务场景的在短期会增加,长期来看还会频繁改动和增加
  • 现有的组件层级关系,架构设计无法满足扩展业务场景,组件没有合理的抽离和复用

困难在于

  • 现有的逻辑在重构过程中不要出现bug。
  • 新的业务场景增加,业务数据激增,底层的数据结构要怎么设计。
  • 组件要合理的抽象复用,是写成业务组件还是通用组件。
  • 业务上的场景转换,流程上的变更,当耦合在一起时如何设计才能更好的便于维护和拓展

解决方案

这里可以展示出架构图

我设计成了三层的树结构,1层来控制场景切换,以及通用的组件逻辑写入。2层写各业务场景的整体搭建,3层则是各个子组件,尽量扁平化的架构搭建,层级不宜过深,不利于迭代维护。

资源位组件相比其他模块容易变更,所以又封装了一层,可以整体的引入资源位到业务组件当中,修改只需要在封装的最上层修改,各个业务组件整体就会变更。

我的一些通用组件通过slot传入业务组件中,大致为

<component is="{{currentCom}}">
    <view slot="extra">
    </view>
    <view slot="extra2">
    </view>
</component>

实现了通用组件的可拔插,虽然老板说这么实现和普通的直接引入到业务组件没什么区别,但是我觉得还是有一定意义的,起码减少了引入次数,相当于集中引入,集中维护还是让我很爽。

价值收益

  • 技术上,目录层级划分合理,易排查问题,组件得到复用,易扩展业务场景
  • 业务上,迭代敏捷,减少人力成本

复盘与思考

在此次重构中,做的好的地方有:

  • 重构的时机比较好,如果等到增量业务之后做重构成本会更大
  • 各业务场景隔离,提高了稳定性
  • 抽离了很多业务和通用组件,减少了包体积
  • 代码可读性增加,提高开发效率

还待改进的地方

  • 此次重构对于原有的逻辑测试还是比较依赖qa,后续要添加单元测试来防止改动误伤到现有逻辑
  • 接入ts,能加代码可读性,配合vscode增加开发效率

总而言之,言而总之,这是答辩的基石,剧本,ppt也是主要围绕这来,注意你的用词,不要太白话,也不要太黑话,核心在于体现你的专业性。

ppt制作&呈现

ppt是我们平时接触不到,却是升值加薪的硬技能,好的ppt模版画风能为你的答辩加分不少,凌乱的ppt你最好在答辩中能表现完美,就跟一些工种面试穿正装一样,体现你对面试的认真态度。

然后下面主要讲下ppt制作我的技巧以及有哪些坑不要踩,我的ppt更改了三版,每一版本都是基本上等于重写。

ppt主要分为三大部分,且要在15分钟以内答完

  • 第一部分是封皮,个人简介,团队简介,业务介绍,业务数据展示,大概6-7页ppt,3分钟以内讲述完

  • 第二部分是项目的讲述,假设你有三个项目,那每个项目三分钟左右,个别长短自己权衡,两个项目就每个五分钟左右。每个项目的ppt也不宜过多,3-4页ppt可以搞定就别太多。

  • 第三部分是规划总结和专业及影响力,大概两分钟左右陈述,2-3页ppt搞定

注意事项:

  1. 不要用翻页特效,浪费时间还容易卡死
  2. 如果有视频播放,不宜过长,最长不要超过20s
  3. 不要有大篇幅文字,多用图,图标展示
  4. 架构图不要太简单,尽量能详尽展示,从下往上讲述
  5. 模版选择,简洁华丽都可以吧,主要是风格统一
  6. 字号,推荐三种字号,28,40,60
  7. 字体颜色不宜过多,三个足够了,相对浅色系比较顺眼
  8. 很多内容想集中在一张ppt上可通过动画盖住,按键再展示
  9. 一张ppt内容不宜过多,除非很强的关联性
  10. ppt不宜过多,大概20-30张即可
  11. ppt不要上来就写,可以先写好演讲稿的内容,根据内容编排你的ppt,会很快速,思路泉涌的写ppt,否则会半天憋不出一张ppt,不要浪费大量时间在ppt上,重要的还是你的内容

可以在像阿里图标库找一些图标用于禅师说明,比如我的项目中有首页,找一个首页图标。有思考内容,找个问号图标都可以让你的ppt很直观,只有文字显得很生硬

演讲&提问

演讲这个我相信有天赋异禀的人,从来不怯场,脑子转的快随机应变的人,但是大多数人也能通过练习,彩排来达到这样的一个效果。

对镜子讲,对其他人预讲都可以,我是录视频自己,然后反复观看,我发现我自己演讲的时候

  • 语速有时会过快,还有很多口头语,“然后”我能一分钟说十来次
  • 眼神飘渺,就显得很不自信
  • 漏说是很正常的,正式答辩前漏说是好事帮你加深记忆。
  • 有些内容说的没有逻辑性,带有一些转折词会更让人理解,由于,之所以,因为我干了什么,通过什么,达到了什么,从而实现了什么
  • 总分总的阐述,不要上来就开始,先预告说什么,最后总结说了什么

评委提问

提问的内容,如果很了解你的业务,会问你很多业务相关的内容,如果不了解你的业务则会问你写技术的内容,每个人大概有两三个问题,毕竟他们也有时间限制

因为是你做过的,相对来说业务和技术你都比较了解,但是也不要太过自信,毕竟他们也是提前做了功课来问你些你意想不到的问题,比如,有个评委问我,apng和gif的一个区别,为什么选择apng而不是gif,其实我做了很多是apng和其他的比较,没有往gif上考虑,gif第一个就被我排除了,就没有细研究,还有lottie因为包体积限制就被排除了,也没有往下研究真实在小程序的表现,都成为了评委针对的点,而我只能说的确没有过深的研究,从而这块可能稍微减分。

还有个评委问我做动画的地方的点击率,地区我没有去统计查看。让我认识到了数据的重要性,这个数据能充分体现你做的动画,你的技术所展现的一个效果,而且通过数据分析,后续改进也可以从中获得启发。

到这里我的分享就结束了,无论晋升通没通过我都收获很多,起码下次晋升,我将以这些经验作为基础,会大量节约我的时间,也希望看到此文章的你能从中获益,少走弯路,最后祝大家晋升成功,升职加薪。