前端菜鸟的阿里实习百日之旅
最近很多高校都开学了,我身边的小伙伴也都陆陆续续结束了他们的实习之旅,回到学校享受最后一段学生时光了。本文的作者是我在阿里实习认识的前端实习生「承和」,机缘巧合,我和他被安排一起负责一个新业务的开发(师兄们对我们两个实习生也是蜜汁自信),也是在那时候认识了他,刚好让他给我分享了一些作为前端开发实习生的一些感悟,以下是全部内容。
前言
在自己的身份证生日来临之际,我的实习之旅画上了句号,从 5 月 28 日入职以来,在将近 100 天左右的实习过程当中,感慨良多。从最初的啥都不会,到后期可以独立负责一个业务、功能模块的开发,这期间的成长是显而易见的。在实习过程当中也认识了许多优秀的师兄和同学。在这里简单做一下分享,谈下新人如何更好地融入团队和如何更快速的上手业务。
缘结淘系
现在应届生秋招一年比一年难,早就听师兄们说过,没有实习经验很难在秋招中脱颖而出,再加上研究生阶段所学的深度学习知识,无法找到一份满意的算法工作,因此,还是决定重新系统的学习前端,为春招上岸好好做准备。至于如何学习前端,从我个人的角度,总结了一篇文章,欢迎感兴趣的同学前来讨论 👉《如何系统学习前端和面试准备》[1]。
在经过将近半年的准备后,我从去年的 12 月开始陆陆续续投递起了简历。刚开始投递的多半还是一些小公司,后来有了一定的经验以后,就开始硬面刚大厂。投递的第一个部门便是阿里云某 bu。年后,因为疫情原因,不能回校学习。因此那段时间在家每天的安排,就是面试、论文轮轴转。很幸运,在阿里春招开始前,顺利通过了阿里大部分部门的技术面试。
一开始选择了阿里云某 bu,结果在 hr 面试完成之后,一直处于等待中状态,估计是被排序了,当然也有可能是该部门在等更优秀的同学出现。因此,只得联系“全世界最好”的元泉师兄转流程,最后很幸运地加入了东半球最大的前端团队——淘系技术部。我所在的团队,刚好是负责当前正处风口上的直播和短视频业务。一番坎坷之后,于 5 月底顺利走进了西溪园区,开始自己的实习之旅。至此。我也终于有自己的小工牌了。
成长
沟通与人际交往
新人,尤其是应届生,在刚进入公司时,大多想要证明自己。可有时又会碍于脸面,担心问出别人觉得十分低级的问题,因此常常会自己闷头编码看文档,从而忽略了对沟通能力的培养。这对以后的工作都会产生一些不好的影响,而我刚开始也陷入了这样一个困境,极其不善于表达自己。好在后期我意识到了这个问题,并开始有意识的培养自己的表达能力。
在问别人问题之前,在钉钉上写一遍,看下这个问题是否真正阐明了自己遇到的困境,有针对性的与别人交流(并不是怼人……)来得到自己想要的回复。更加主动地融入团队,珍惜每一次表达自己的机会,和师兄主动地沟通。无论是工作上的,还是生活上的,都可以和他们进行交流,来提升自己的人际交往能力。
技术方面
在进入一家公司时,我们都要熟悉公司的一套技术栈和一套规范的开发流程,这都是不可避免的。淘系的前端技术在业内都是被认可的,也有许多非常优秀的开源产品,我在这里接触到最多的两个是「飞冰」和 「Rax」。
Rax 主要的应用场景是在无线端,他在上手层面,由于和 React 语法差不多,因此不是很困难,最喜欢的就是它的 rpx 属性,能够解决因屏幕大小而产生的适配性问题。而 Rax 也有一定的缺点,在编写 Native 页面时,是采用 Weex 框架,通常我们在 Web 上开发完成之后,会在真机上,尤其是 iphone X 这种全面屏手机上,产生兼容性问题,而 Weex 在这方面的调试也较困难:真机抓包不支持断点,只能 alert 输出查看。因此。在开发过程中,需注意 Weex 的一些语法/样式约束。实在不能解决时,便要考虑和 Weex 的相关作者讨论,或者是和 pd、设计等相关人员沟通,能否降级方案。
听师兄提及,淘系未来的方向是去 Weex 化,Native 页面逐渐用 H5 代替。这能够带来更加好的开发体验。而且 Rax 在组件库支持方面也没有像 antd 完善。希望未来可以有更加完善的组件库方案。在 PC 端页面,由于自己 70% 的时间都是在负责老项目的功能迭代开发和维护,因此,大部分采用的还是飞冰框架。
飞冰给我的体验一个字就是——牛。在数据请求,状态管理,工程配置等都有较完善的方案。唯一的缺点也是 fusion 物料库还不是很完善,好在能够用 antd 组件库代替。未来希望能够更加进一步深入地学习飞冰框架。另外,由于团队负责的主要是直播和短视频业务,因此也会涉及到很多的音视频技术,这也是未来自己想进一步探索的领域。
规范方面,由于自己原先在学校里面大多数是单独一个人负责一个前端项目,没有怎么注意编码规范,常常 let var 乱用,颇有一些野生程序员的风格。在大公司上线需求的过程中,有一道关便是 code review,师兄对我的编码规范提出了许多建设性的意见,自己在后续的开发过程当中也开始注意到这一点,和师兄的交流过程当中也了解到了一些设计模式,刚好最近自己下单了 《js 设计模式与开发实践》,希望未来在工作当中可以应用到。
业务方面
在公司里,一个需求的产生往往会经过以下几个步骤:
1.需求评审2.技术评审3.约定文档4.排定工期5.并行开发6.提测7.发版上线。
因此,可能一个“换文案”的小需求也会经过如上这几个步骤。好在刚开始的一个月里,师兄给我安排的大部分是一些零散的小需求,让我去熟悉整个流程,以及开发中所涉及到的几个平台。等我对这一套流程和团队的业务熟悉后,我便开始负责一些独立功能的开发。
上手老代码的过程是比较坎坷的,因为前人的文档不是很完整,可能有时候调试跑起来都要花好一阵时间。梳理代码的架构,整理已有的功能点,和 pd、对应的后端同学确认需要改的功能点、约定字段等,都需要有完整的文档支持。这里不得不吐槽阿里的 pd 爸爸们,希望下次 prd 文档都能写清楚,这样能在开发当中节省大量的时间。
同时我们也需要对自己的需求负责,要有主动推动性,无论是哪一个环节卡了,都是对整一条业务线的影响。因此,在遇到困难时需要及时的抛出,需要对风险有及时的把控,在上线后需要对功能进行及时的回归和跟踪等,这都是对一个团队的负责。
在工作中,也不能总是被动的接受需求,我们要理解需求背后的价值是什么,能带来的提效是什么,受益的是哪一部分人群,在通过业务提高我们的技术的同时,是否能通过技术,来反向推动业务。这也许就是所谓的 「阿里味」 吧。在阿里,技术牛逼的人有很多,然而技术说到底都是为业务服务的,基建也是从实际的业务问题中抽离出来反哺业务的。因此,我们做完需求要及时的进行总结,思考前端究竟在这个业务中,扮演什么样的角色?你来做,和别人来做,差异点究竟在哪里?你能带来的提效点是什么?
思考的过程,就是你与别人拉开差距的过程。因此,自己在开发完后,会去记录下容易踩坑的点等和完善开发文档,为后任维护者减少上手成本。要去思考自己在这个需求中究竟收获了什么,为下次的开发减少绕弯路的成本。思考能力的提升和结构化的表达沟通是自己在实习过程中又一个巨大的收获。
其他方面
淘系大大开阔了我的眼界,让我这个没见过世面的穷学生,在技术,业务,做人等各个方面都有了实质性的提升。阿里是我第一家实习的公司,能够在一家市值超过万亿的公司,和一群有梦想的人(当然也会遇到“奋斗逼”)一起工作,是一件既痛苦又快乐的事情。快乐的是自己能够学到非常多的知识,极大的提升了自己的能力,痛苦的是时常会有焦虑感产生,担心需求完不成。而且自己和团队里优秀的师兄还是有很大的差距,自己的抗压和承受能力还需要不断的磨炼,对于工时的预期能力和安排好自己的工作计划,也需要进一步的提升。
结语
感谢这将近 100 天的实习,是我从学校走向职场中一段非常重要的经历。在实习期间,我白嫖了许多福利,例如每周 2 次的免费下午茶,团建活动,和主管晋升等一系列聚餐。体重不知不觉就上来了(回学校好好减肥。。。)。同时很感谢带我进入淘系的元泉师兄,团队主管林晚师兄和直系洋帅师兄对我的照顾,在这最后半年的学校时光里,也要好好修炼自己的前端技能,补齐不足点,明年再为多媒体前端团队添砖加瓦!
号外号外,淘系直播前端团队极其缺人,目前正在火热招聘中:
欢迎投递简历: joven.panj@alibaba-inc.com[2]
或微信沟通: Jovenpan
References
[1]
《如何系统学习前端和面试准备》: https://juejin.im/post/6844904131581198349[2]
joven.panj@alibaba-inc.com: mailto:joven.panj@alibaba-inc.com