本篇的做者是来自淘系 D2C 团队的泽壹,做为准入职的淘系前端开发工程师,写给师弟们的这封信有着中肯的建议和诚挚的祝福。html
你好,我是准入职淘系前端开发工程师泽壹,去年春天到夏天的求职历程还记忆犹新,走过些弯路,大一是车辆工程专业,大二时候转入软件工程专业,大二下学期接触前端,大三秋招很荣幸拿到阿里淘系 offer,这一路走来讲下心得体会,但愿能够帮助到正在求职的同窗们。前端
在阿里,我认为挑战与学习并存。react
曾在社交平台上看到阿里师兄对 ATA 内部技术社区赞不绝口,` 我不止一次提过 ATA 那仿佛宝库通常的内部技术社区,你发的文章以及技术评论,会收到来自集团各个 BU 的大佬一块儿探讨,甚至转移到钉钉 1:1 深刻交流,真的是太美妙了 `,当我切身目击 ATA 这一片知识汪洋后,确实名不虚传,你能够化身为浪里小白龙投入到知识海洋中。面试
前端的深水区好比涉及到计算机图形学的互动图形和可视化,算法与前端交叉融合的前端智能化,在淘系都有相应的场景,充满挑战,天花板效应在这里彷佛是不存在的,同时在手淘上有你写的代码也是能够向常常逛淘宝的女友吹嘘的一件事。算法
技术是安身立命之本,我想不少同窗跟我同样在前端学习的道路上是独自前行的,在刚开始接触前端的时候我是根据岗位的 JD 制定学习计划,我将前端学习过程分为 3 个阶段。后端
1.入门阶段设计模式
所谓基础不牢,必然地动山摇。入门阶段要打好基础,《JavaScript 高级程序设计》、《ES6 标准入门》、《你不知道的 JavaScript》、《CSS 权威指南》、《CSS 揭秘》我认为都是前端必读书籍。在学习基础知识的时候,要多加练习,而入门最好的方式莫过于模仿,能够尝试模仿一些比较复杂的页面,可以很快的熟悉各方面的基础知识。好比看看别人的页面是怎么布局的,样式是怎么写的,有什么技巧等。同时能够看看 underscore 代码,学习经常使用的好比节流、防抖是如何实现的。安全
2.提高阶段 网络
紧接着学习前端流行框架 Vue/React, 二者的官方文档值得细品,除了快速入门之外还有些高级指引、最佳实践,如 Error Boundaries、你可能不须要使用派生 state。同时你们应该在实战中成长,向你们推荐一个全栈练手项目 Spectrum,是一个用于开源社区聊天的,论坛 + 聊天室的结合体,整个技术栈我以为不错:数据结构
前端:React/Redux/React-Router/DraftJS
后端:Nodejs/GraphQL/RethinkDB/WebSocket/Redis
从中你能够学习到不少,好比:
- 如何构建一个 GraphQL 的服务端
- React 如何和 GraphQL 交互
- 如何去用 Redux 管理复杂的应用程序状态
- 如何实现 SSR
等等。
3.深刻阶段
深刻阶段能够分为两个维度:技术广度和技术深度。
扩展技术广度能够经过多逛逛技术社区,那些你没听到过的技术词就是你要学习的新知识,平常工做中一定会面临一些新的场景,技术广度能够帮助你,知道某个技术能干什么,原理大体是什么,是否适合当前业务的场景等。
技术深度是对技术底层或设计理念有比较透彻的理解,能够阅读 React、Vue 源码,深刻理解框架的运行机制以及背后的设计模式,并能够经过对原理的理解来优化代码,这些能够做为项目中的技术亮点。
同时在学习的过程当中,必定要多实践,爱折腾,千万不要眼高手低,最后会造成“简单问题不想搞,复杂问题搞不定”,每每问题的本质都是在解决一个个问题的过程当中总结出来的。同时经过折腾,逐渐沉淀出一些成熟的项目,能达到解决现实问题的更好,这些都是让面试官眼前一亮、增长面试筹码的有利资产。
全部的面试技巧都是创建在面试者已经具有了相对合格的实力的基础之上。
首先,你们仍是要先储备足够的知识,这些知识包括操做系统、计算机网络、数据结构、算法、安全等计算机基础知识、前端知识 和其余的加分项知识。
其次,能够看看同窗们的面试经验分享,我认为看面经不是应试的过程,更多的是查漏补缺的过程。
而后,作过的项目要总结完善,面试官会从广度和深度来挖掘项目中的亮点,好比你的懒加载是如何实现的,知道 IntersectionObserver API 吗? 有读过它的 polyfill 吗?给面试官一个选你的理由。
最后,面试的过程当中要充满自信,多表达本身的理解,展现本身解决问题的思路。
学习没有捷径可走,在学习的过程但愿你可以保持对技术的好奇心,收获一份理想的 offer 当然不易,放下一些东西,专一于事情,心里有相信,行动有坚持,结果有落地,offer 每每是水到渠成的,各位加油,你也能够是个 offer 收割机。
泽壹
2020.3.27