本文想分享的是如何准备阿里面试的以及面试过程的所想所得,希望能帮到你。
首先,可能要让你们失望的是,这篇文章不会有大篇幅的面试题答案。如果想要看这方面的内容,我相信社区里已经有很多优秀的文章了。
0. 招人!!!
最重要的事当然要放在第一位。
我们是阿里巴巴的AE技术部-无线技术&会员导购-体验技术部,国际化大场景,欢迎来挑战!
我们这,则是主要做小程序/工程化等基础建设方面的一些事情,当然,也有业务相关的事情要做,现在有 P6 及以上的 HC,如果感兴趣的可以来试试~
0.1 业务/部门介绍
作为阿里国际化进程中的核心技术力量,负责全球B端,C端业务前端技术,关注全球用户体验,赋能业务提供更好的买卖家服务,目前服务200+国家,拥有数十个研发平台,包含AE,lazada, 天猫国际等多个全球化链路,我们包含国际化最全的前端技术分类,技术空间全面且广大,包含搭投中台,导购中台,国际化小程序,国际B端解决方案,国际C端解决方案,国际化业务已成为集团的核心战略。
0.2 岗位职责
- 参与跨平台的应用开发,包括 Web, Mobile Web, 及跨端技术,负责产出高质量的技术产品;
- 充分理解产品和设计需求,负责AliExpress WWW Site & Mobile Site的产品化过程的落地和实施;
- 学习研究业界的前沿技术,并迅速转化到未来潜在的业务或技术项目中;
- 与团队成员分享项目经验和业界新技术的应用,和团队一同成长。
0.3 岗位要求
- 精通HTML、CSS、Javascript,热衷浏览各类网页的源代码;
- 熟练掌握Java、NodeJS、Python等任意一种或多种后端语言,并有实际的项目经验;
- 深谙 MV* 模式,熟悉AMP、AngularJs、ReactJS、VueJS、Polymer等任意一种前端 UI 框架,一定程度了解其原理;
- 熟悉主流浏览器特性,乐于探究和解决各种类型的兼容性问题;
- 英语能流畅沟通者优先。
0.4 简历投递
除了前端之外,客户端/Java/测试也有 HC,欢迎大家的加入 ~
简历发送至 [email protected] 即可,可以在邮件正文中留一个你的微信,如果觉得简历合适,我会加你微信,面试过程中会积极跟进你的状态,随时有问题都可以来找我 ~
目前机会比较好,流程也走得比较快,走过路过不要错过 ~
1 关于简历
我对于简历的理解是这样的,简历的作用是让看简历的人能够快速、准确地捕捉到有用信息:
- 你是谁
- 你做了什么
- 你哪方面比较牛逼
我觉得只要能展示出这三点,就够了。
1.1 内容
我的简历主要是包含了以下几个模块:
- 基本资料:姓名、电话、邮箱、个人网站(GitHub)
- 工作经历:公司名、在职时间、工作内容(简述负责、参与什么业务)
- 项目经历:最重要的一点没有之一!展开描述
- 专业技能:加分项还是减分项都有可能,慎重对待,展开描述
- 教育经历:学校名、就读时间
- 其它:简单描述任何你想让面试官知道的东西,比如社区影响力: GitHub 1000000 Star、掘金 Lv9 等等
1.1.1 项目经历
项目经历对于开发来说是一份简历最重要的部分!
项目经历对于开发来说是一份简历最重要的部分!
项目经历对于开发来说是一份简历最重要的部分!
既然是最重要的,选择困难症选手可能就犯难了,怎么样的项目应该被宠幸,写在简历上呢?
1. 自己做的
这点不用多说,一定得是自己做的项目,别看着别人项目牛逼,就拿来吹,面试和背调环节都可能穿帮的。
2. 很熟悉的
对于这个项目,你必须在业务和技术实现上都了如指掌:
- 业务上:这个项目的业务背景是什么,在业务上有什么比较牛逼的地方,推动了业务如何运行等等
- 技术实现上:这个项目的整体技术实现思路是怎样的,项目中用了什么比较牛逼的技术,解决了什么比较困难的问题等等
千万千万不能有这个想法:项目中有一个很牛逼的东西,但是不是你写的,你也完全不了解,但是就想写进项目里。
3. 有亮点的
面试官比较在意的还是这个项目表面上看不到并且很有趣的东西。业务,技术都可。
- 这个项目做了什么牛逼的事情
- 你在项目里做了什么牛逼的事情
- 用了什么牛逼的技术解决了什么困难的问题
- ...
总结:项目经历一定是面试官比较关心的部分,面试中一定会细问的,所以不要啰嗦,挑牛逼的、有意思的东西写,并且自己能讲明白的。
1.1.2 专业技能
专业技能这一块很多人会写这样写:精通 HTML/CSS/JavaScript 等等,而且写得特别多,恨不得把自己用过的东西都写在这...
个人建议这里不要写太多东西,可以写一些在项目经历里没提到的东西,比如:
我的项目经历主要是 Vue 业务开发为主,我在这里写的是 TypeScript/React/工程化/Node/MySQL 相关的,让面试官更全面的了解你。
如果面试官感兴趣,会挑几个技术栈问你几个问题,如果答的也很棒,必须是妥妥的加分项。
当然,在这里写的技术栈都必须是你了解或者掌握的,否则被随便问两个问题就不会了,就变成减分项了。
总结:专业技能也请慎重对待,有可能是你的加分项,也有可能是你的减分项。
1.2 样式
如果是一份开发工作的简历,没必要花里胡哨的模板,只要简简单单的白纸黑字即可。
个人认为,除了排版上要稍微注意下之外,比较重要的有两点:
- 页数一页即可。将你最牛逼的东西写出来就好了
- 留白。适当的留白会让简历看上去很舒服,也利于阅读的人捕捉重点
1.3 总结
简历,顾名思义,是你的情况的一份简要介绍,对于面试官而言,他最初只能通过这一张纸来了解你。
所以,无论在内容、表现上都需要你细心准备并且打磨的,望认真对待。
2. 关于复习
大多数人应该都和我一样,是在职准备面试的,每天可用的时间大多数集中在晚上(22:00 - 24:00)。想想也挺好的,晚上的时间比较容易集中注意力。
个人觉得,复习主要是需要制定计划,切记不能三天打鱼两天晒网。
忌零散阅读,宜系统复习。
准备面试的时候,可以按照以下几个模块来准备:
无论前端技术栈日新月异,我们都得要扎实基础,脚踏实地,切记不可投机取巧、眼高手低。
2.1 JavaScript 基础
JavaScript 基础非常重要,相比于大同小异的框架面试题,JavaScript 可以问很多东西,而且细问起来也有很多有意思东西,如果时间充足可以系统地过一遍。(现实往往是没时间...)
- 执行上下文/作用域链/闭包
- this/call/apply/bind
- 原型/继承
- Promise
- 深浅拷贝
- 事件机制/Event Loop
- 函数式编程
- service worker/web worker
- 常用方法
- ...
2.2 CSS 基础
- position
- 行内元素/块状元素
- flex
- 1px
- 重绘回流
- Sass/Less
- 居中/常见布局
- 层叠上下文
- ...
2.3 框架
这一块主要是关注 Vue 和 React 的共性和特性,侧重 Vue(我工作中是主 Vue),过程中看了一些源码,加深理解。
- MVVM
- 生命周期
- 数据绑定
- 状态管理
- 组件通信
- computed/watch 原理
- Virtual DOM
- diff
- React Hook
- React Hoc/Vue mixin
- Vue 和 React 有什么不同
- ...
2.4 工程化
对于写业务的同学来说,之前可能没有大规模接触过工程化的东西,不过这并不影响我们可以自己去学习和了解。
- webpack
- babel
- 模板引擎
- 前端发布
- weex
- ...
2.6 性能优化
性能优化是必备技能,必须了解。
- 打包优化
- 网络优化
- 代码优化
- ...
2.7 TypeScript
TypeScript 不敢写自己深入,只是了解,所以只是复习了一些基础的知识点和比较简单的问题,比如:JavaScript 和 TypeScript 有什么区别,在进行项目选型时,什么因素会让你选择 TypeScript 等。
2.8 网络/浏览器
对于前端开发来说,网络和浏览器也属于必须了解的知识点。
- HTTP
- DNS
- TCP
- HTTPS
- CDN
- ...
经典问题,从输入 URL 到页面展示,发生了什么。这个问题我觉得还是很考验广度和深度的,可以好好思考一下,每个人可能回答的结果都会是不一样的。
2.9 计算机基础
- 设计模式
- 数据结构
- 基础算法
- 安全
- ...
2.10 Node
Node 我的了解并不太多,所以没有特意去准备。
2.11 项目/业务
简历上写的项目,仔细认真的过一遍。还有就是关于业务的一些深层次的东西,得好好思考一下。
2.12 其它
一些开放性问题还是需要好好思考一下,顺便也准备一下 HR 面可能会问到的一些问题。
2.13 总结
在复习某个部分时可能会引出其它知识点,如果也不是很清楚的话也需要系统的再复习一下。
前端知识体系比较广并且发展迅速,我们一定要铭记:基础才是最重要的。
如果想要获取完整的复习导图(一些重要问题以及真实面试后的补充点),可以关注公众号 axuebin,回复「面试」两字获取。
这里列出的应该也不是很全,欢迎补充,可以在公众号发送留言。
3. 关于面试
投简历之前也在网上搜了一下阿里 P6 面试的相关文章,感觉流程也大同小异。亲身经历之后,在这里解答几个可能是你们在准备阿里 P6 这个级别的面试时比较关心的问题。
3.1 阿里 P6 的标准是什么?
这个问题没有标准答案,你觉得自己的技术和业务水平过得去,就可以来试一下。
3.2 学历、学校、工作经验有什么要求?
没有。
3.3 有几轮面试?需要笔试吗?
一般来说面试分为技术面 + HR 面。
技术面一般有 4 ~ 5 轮左右。
可能会有笔试。笔试一般在一面的时候,如果面试官觉得需要有笔试来考察一下,就会进入笔试环节。
3.4 面试形式是什么样的?
阿里的面试效率现在非常高,技术面试一般会以远程面试为主(电话 + 视频),笔试是通过线上 Coding 来完成的。
面试官或者 HR 会提前联系你约面试时间,耐心等待。
这里说一下,约了面试时间后,面试官突然说有急事,要改时间。不要瞎想,是真的有事情,耐心等待就好。
如果顺利通过前几面,最终会约在现场进行终面。
3.5 每一面之后会知道自己是否通过吗?
- 有的面试官会在面试结束告诉你是否通过
- 你可能会加到面试官微信,可以直接询问
- 如果有 HR 联系方式,也可以询问 HR
- 内推人可以看到是否通过(比如找我内推,我会很乐意帮你跟进面试流程)
建议每一面结束之后不要多想,就和考研一样,考完一科就安心复习下一科,适当的时候可以问一下进度。
3.6 对于技术栈有要求吗?我听说阿里是 React,而我主要是用 Vue 的
没有要求。平时用什么技术栈不重要,重要的是理解原理。
3.7 总结
这里列到的也只是写文章的时候想起来的一些问题,如果还有其它疑问,可以在公众号留言,如果我可以回答我都会回复的。
4. 写在最后
今年应该还会好好沉淀一下技术,写一些文章,如果感兴趣的可以关注一下我的公众号。
喜欢玩摄影的也可以关注起来,偶尔可能还有一些关于摄影的东西分享给大家 ~
我们招人哦,要求在最上面~