前些日好不容易招了个P7的前端,8月初入职后,亲自带。快1个月了,有些感悟。
目前来看,这位新同学能够在不了解太多技术细节的情况下,能够快速读懂和熟悉业务,一件事情只要交代了,必定在规定的时间内给出结果或反馈,做事主动有条理,基本符合我们对于P7的要求,或者说大家会按P7的标准要求他做事,他基本能应付得过来,如果过了试用期他能站住脚跟,那么他就是P7的。
正好前些天,我接了个新业务,需要做技术架构选型和迭代规划,这事情交给他来负责。当然,这个事情的结果会决定他的去留,他自己也很明白,就问我该如何做或有什么要求,给他3条建议:
第1条:关于技术深度的
技术一定是为了满足业务需求的,而前端项目的技术选型到了P7级别,在落地到业务上就要有“没有攻克不了的技术问题”的决心和信念,也就是前端业务的技术问题到P7这里就基本是最终的方案了。
比如,你选择了react技术栈,结果在开发过程中发现react框架有bug,那么你就得有信心把react的问题给解了,而不是等Facebook来帮你修问题。
第2条:关于架构设计和规划的
做技术选型和概要设计,P7级别的就要做到,1年以后当别人接手时就不需要考虑重构,如果是P8的就有信心做到2年以后,而P9的则是3年或更长时间。
当然,这是一个比较主观的评判标准,毕竟人难免会犯错,而我想表达意思是,P7-9的技术选型就要有长远一点的目光和思考,而这些往往是P7以下工程师所缺乏的,可能是技术底子不好,也可能是视野未够,抑或是其他神马原因吧……
第3条:关于团队管理的
有组建自己的团队、有不断巩固和扩充业务地盘,以及有申请/借调资源的意识,多主动与不同团队的人沟通打交道,有拿结果的意志和行动。(不管你是用技术的还是非技术的手段,甚至技术人都厌恶的拍马屁的手段),总之只要你能不断扩充团队规模,扩大业务地盘,那么你的级别往往越高。拿结果这是高p必须的,大家都做事,企业只会为结果付费。
当然,领导也不是白痴,技术团队往往还是技术精湛的、做事主动,技术不设边界的同学更容易获得这样的机会。阿里这里基层的leader不兴空降,地盘是自己打下来的,团队也是自己建起来,我的团队就是这样建立起来的。
17年上半年的时候,我和另外一名P6一起从另一组调配过来这个大组的,当时我还只是做业务的(不是leader,没有实际的下属,虽然一起过来的是由我安排工作,但没有他的绩效考核权,要知道这个权限才是尚方宝剑),从属于另一P7的下,再上面是一个P8。
这是一个很大的变动,相当于我的老板以及老板的老板都变了,需要在新团队下重新站稳脚,而这个大组原来是纯客户端组,所有的leader都非前端。所以,在前端领域我要必须比他们更专业。我做了几件事:
1,前端微服务化和容器化。这个事情通是渐进式的重构来完成,将原本割裂的技术栈统一的前端工程体系下,大大降低了维护迭代的成本,原来这个业务是由2个团队共6-7个P6前端参与维护,目前在这一块我只投入1个P6+3个外包。效果立竿见影,否则也没有资源做后面的事。
这个新架构被验证并落地部分微服务后,非前端技术栈的P7同学其实是无法对我进行有效的指导了,我就被直接划拨到P8下成立一个专门的前端组,统筹前端方向的事物,开始有绩效考核权。
2,10亿+http业务全线https。这个事情在我之前有人做过,由于业务复杂度高影响面广,以及https性能的问题,最后没有真正上线,其实也因为在app内有私有的http加密,但去年初加密算法被破解了,劫持问题消耗很多人力。这事情,除了将https/http2落地外,前端技术上比较有点意思的是把ServiceWorker做静态资源的预加载,降低前端迭代的用户成本,而PWA没用上,坦白说用不上。
(在这里插一句,在中国移动互联网中PWA并不是前端技术的未来,因为国内最有价值的内容,例如微信订阅号、微博以及各种自媒体,还有各种短视频内容,无一例外都是私域内的东西,站在这些玩家的角度有必要通过PWA来巩固地盘吗?pwa并不复杂,核心就SW,折腾不了几下)
3,前端团队全面Weex化,统一BU的Weex前端工程化。其实Weex在我们BU主要是移动端的同学在搞,大组的老大把我要过来,最开始只是前端部分正是他的核心业务的落地消费场景,有没有想过前端在Weex上有什么作为,估计是没有的,他只是给我提过期望前端也能参与Weex业务,我们入场后改变这个组在Weex上的人力分配。
当然,我进来之后也统一了整个BU的Weex工程化体系(不仅仅是我所在大组),在Vue基础上又引入Rax体系和打通H5自动降级,沉淀了一些列我们业务类型下的性能优化的策略。目前所由前端主要负责的Weex业务秒开率基本都在92-95%,而在Weex开发效率上,前端出身的工程师要明显高于客户端转型的,在控制组件的可维护性上,前端开发者的优势也比较明显。
现在新业务基本都会以Rax去落地,整个大组Weex开发的模式则是前端为主,app开发则偏向于底层,而淘汰掉App开发而空出来HC则大多变成了前端,当然就隶属于我这组,人数也从原来2人逐步到现在15人,目前还在继续招P6/7前端。
4,除了weex外,在Node中间层也有一些产出,以及在做一些Flutter技术布局的事情。
总体,webview容器、Weex容器和Node容器都有在做,而每个容器的相关业务,包括底层工具链脚手架,H5页面的切图和逻辑,Weex组件开发,Node层开发维护,我基本都会自己写部分代码,至少核心的业务代码基本都会过一遍。技术上,对于未来的可能也会保持关注。
以上,就是我在做的事情。虽然还是没有直接回答题主的问题,但如果认真看完,应该能理解阿里P7到底要求是怎么样的,这样下去不知道明年有没有机会升P8……谁知道呢,时机和运气都是实力的一部分。
另外,对于追逐更新的技术红利而晋升的道路,我想说的是:
不可否认,更早的吃螃蟹,确实更容易获得晋升,但这不是大多工程师的可选项,因为企业很多时候并不关心你用什么技术来完成业务需求的,也没有很多机会给人专门研究和落地新技术,维护业务才是绝大多数工程师的核心事项。
的确,我所在部门确实是一线的业务部门,保证业务快速落地才是第一要务。业务占比必然会比较大,但技术上探索的事情并不会像P8同学所说的感觉毫无技术含量似的,换一个角度,技术上又有多少事情是别人真的没有做过的呢?
退一步,就算别人做过了,只要自己团队没有做过,那么还是需要有人去做一遍的,只是后来者既然是站在前人肩上的,就要做得更好更优就是了。
当然,我不是说只要做好业务就OK了,技术人还是要对新技术保持关注,有能力就尽可能参与,能力达不到的也没必要刻意追新。
在网上找到的必学的技术栈,希望能对你有帮助
一、JavaScript高级进阶攻略
======================
jQuery
设计模式-jQuery源码分析
跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。
也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。
面试准备
面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。