如何获得一份阿里巴巴的实习

内容纲要

个人背景

  • 211高校非重点专业菜鸡
  • ACM队成员
  • 编写过OJ
  • 使用Markdown制作的简历
  • 用过Github

2019-03-29 投递简历,填写相关信息

在阿里招聘官网上你需要填写阿里提供的关于你个人信息的表格。其中要注意的是开放式问题虽然不是必须回答的,但是这里三道题每一个空都写了不超过1000字,其实就是让你尽可能写够1000字,否则就显得你很没有诚意,像是海投。在这之后阿里会通过邮箱发送测评邮件,内容涵盖了三观、阅读理解、数学问题等。据说这个是考察你是否符合公司的三观和设定的门槛。认真回答就行。

简历内容也是很关键的一个部分。虽然说网上有五花八门的简历教程,但是计算机方面的简历是有一些需要注意的地方的。首先根据网上所收集到的资料显示,阿里的面试简历标准如下:

筛选标准
满足以下条件中的任何一个,直接通过筛选:

  • ACM, Topcoder, Google Code Jam、Yahoo! Hack Day等重量级竞赛的获奖经历
  • Google, Microsoft, Hulu, Yahoo!, Amazon, IBM,Baidu, Tencent等顶级公司的靠谱实习经历
  • Github, StackOverflow、Archlinux等高水平技术社区的活跃人士,贡献过高质量的开源代码
  • Common Lisp, Scheme, Haskell, Scala等函数式语言的钻研经历
  • 黑客行为

满足以下条件中的任何一个,增大通过筛选的可能性:

  • 保送硕士
  • Top级别的专业成绩
  • 丰富的国家级重点实验室项目经历
  • 发表过高水平的学术论文
  • **Markdown/Latex生成的PDF简历 **
  • **高质量的技术博客 **
  • **技能栏中写着熟练使用Vim/Emacs,以Mac OS X/Linux为日常操作系统 **
  • 百度之星、腾讯之星、数学建模等同级别竞赛的获奖经历
  • 新浪、网易、搜狐、360、人人、小米、优酷等同级别公司的实习经历

满足以下条件中的任何一个,直接淘汰:

  • 空空的邮件正文
  • 简历中贴着一张光膀子的照片
  • 求职产品职位却在简历中充斥着大量技术经历
  • 有类似China Great Wall的项目经历
  • 丑陋、混乱的简历排版
  • 过于空洞或过于啰嗦的项目描述
  • 自我评价中含有愚蠢、幼稚、带有强烈感情色彩的词句
  • 发件人名字或邮件中含有火星文等非主流词句。
  • 所有的编程经验只是在学校中
  • 计算机培训学校的经历
  • 技能栏中,写着精通C/C++/Java/Word/Excel
  • 技能栏中,把Visual Basic列在第一的位置
  • 简历中的缩进同时使用了空格和Tab键

能够通过筛选的条件中,ACM类获奖和GitHub是各位目前能够做到的成本最低的方法。

GitHub经历不一定非得需要你开发一个惊天地泣鬼神的项目,即使是整理你做过的代码、写一些题解或者把你平常上课做的作业整理在上面、和别人共同完成作业都可以。

只要能够表现出你对Git的使用经验较为丰富就行。


而如果在第一部分中,自己没有特别大的把握脱颖而出的,也可以看看第二项中加粗的部分,这些也是我们可以尽力争取的条件。首先是如果本身成绩出色,本身就有较大的可能通过筛选。

然后是Markdown/Latex生成简历。为什么这里要强调这个东西呢?我们知道Markdown这种语言经常用于编写文档,同时它轻量化的特性能够非常方便地进行扩展开发,使其支持图片、图表、数学公式、代码等。

而且所有的Markdown渲染器都支持富文本/HTML文档内嵌。Latex则是因为其出色的排版与数学公式常用于出版书籍和论文编写上。考虑到程序员未来的工作需求,平时应该养成使用Markdown编写文档的习惯。

高质量的博客也是一个加分点,但是这里不是推荐你有什么东西就往博客上写,而是应该求精。一个编写优秀的博客应该能够体现作者发现问题,探索解决方案,解决问题和总结分析四个方面。

Vim/EmacsMac OS/Linux这个则是出于极客精神的考虑。Vim/Emacs这两款强大的文本编辑软件是CLI环境标配,在没有图形化界面的情况下所有程序员都应该拥有使用这两种编辑器之一的能力。而操作系统中MacOS/Linux则是类Unix系统中占有市场最多、用户最多、生态最为丰富的操作系统,除非未来你的程序员生涯永远和Microsoft打交道,否则你一定会用上这两个操作系统Windows 10已经可以用WSL运行Linux,未来Windows开发者也会有使用WSL进行开发的那一天

参加其他商业比赛也能够体现出你的竞赛能力,因此平常也要多关注一些大型的编程竞赛。

而编写简历也要注意负面问题的避免。首先是空洞和啰嗦的描述会让人觉得摸不着头脑,无法体现你的竞争力。比如说:

我在XX项目中承担主要的任务。

你的角色是什么?你的任务是什么?你最后完成了什么?都没有体现出来。

我在XX项目中负责YYY,在完成YYY的ZZZ中,我运用AAA知识解决了①、②、③...问题,达到了XXX效果,项目得到了CCC的评价。

这个描述就比上面的描述更加明确,让人明白你的价值体现在什么地方。

啰嗦的问题就不用强调,就如上面这个例子一样,讲出你在项目中承担的任务即可,不要附加无关的细节。

自我评价要注意的是,不要用影响与当前工作能力相关的形容词描述自己,这说明你不能够胜任这个岗位。不过这个部分一般是HR面的时候会谈,因此这里我们不展开叙述。

关于所有的编程经验只是在学校这一个点中,请记住这里的经验指的是完成老师布置的作业,包括大作业。这里可能有人会觉得奇怪,为什么学校的编程经验就不能算数。

① 自学能力不足。

如果你的经验统统来自于学校,那么说明你除了学校老师给你布置的任务意外,你没有任何有价值的产出。

② 学校教学使用的技术深度

学校的教学深度不能够达到要求,编写的程序是否合格无法把关。

关于技能栏,请任何一个大学生绝对不要说自己精通任何一个技术或者语言。请实事求是的描述你对你的技术栈的掌握程度,你在简历上吹的牛,自然会有面试官帮你捅破。

Visual Basic是过时的技术,写在第一位说明你

最后一个标准是你对自己的代码要求问题,每一个公司都有自己的编码标准,若简历都没办法做到标准统一,你的代码洁癖程度会让人怀疑。

接下来是流水账面经

凉面

2019-04-01 一面(技术面)

总用时: 62分44秒

考察问题:

  • NIO(阿里必考)

  • Socket

  • ConcurrentHashMap

  • HashMap的实现原理

  • JDK

  • GC原理

  • 队列和栈的区别

  • TCP握手

  • Cookie和Session区别

  • 生产-消费者模型

  • Git(为什么要用Git?)

项目:

  • 技术栈
  • 印象最深的问题?你如何解决?
  • 对这个项目未来有什么规划?

在线编程:

使用协同工作IDE(即你的编码过程会被对方看到)

  1. 输出字符串中的LCS(只需要输出其中一种)
  2. 1-n中数字x出现的次数

我的2题当时短路了 没搓出数位dp出来,但是还是写了一个常规做法,然后本次面试就结束了。

2019-04-08 二面(技术面)

总用时: 79分15秒

考察问题:

  • Cookie/Session(又问了一遍)
  • OJ:

    • 你的OJ是用什么写的?
    • 你负责其中的什么任务?
    • 你遇到了哪些印象最深刻的问题?
    • 你是如何解决的?
    • 具体询问细节:
    • 你如何实现的沙箱?
    • 你的判题逻辑是什么?
    • 如何确保安全?
    • 在什么环境部署?
    • 你对平台未来的规划?
    • 针对规划提出技术问题:
    • 规划中主从机器存在宕机时怎么办?
      • 回答: 多主节点/RAID

2019-04-12 三面(不知道是什么面,反正面就对了)

总用时: 24分28秒

考察问题:

  • 看了下OJ
  • 技术栈

在这次交代了还有两次面试,因此我在这里姑且认为前面两次的结果应该还可以。

2019-04-21 四面(感觉和二面差不多,因此不展开讲)

  • 学过设计模式吗?项目中用到吗?
    • 在学,没用上(

2019-04-28 HR面

这一面算是中招了,而且还不止踩了一个雷,面试以后感觉非常不舒服。
别的不说,下面这几个问题,都是要谨慎回答的:
* 你的高考分数
* 别人怎么看待你的/用三个词语形容你自己
* 你对996有什么看法
网上倒是有很多的资料,建议多上网搜一搜。HR面主要是考量你和公司的价值观合不合的。但是这里决定权不在你自己,而是HR。因此在这一面HR选择长时间没给我这一面的评分,然后我就凉了。

热面

为什么会有这个部分呢?是因为我被捞起来了。

2019-07-04 短信通知

阿里发起邀约,邀请参加专场面试。
根据网上的说法是如果你在前两面发挥比较出色,那么你就有机会被阿里其他部门捞起来再面。

在这里要注意的是之前面试的情况会被后面面试的面试官知悉,同时你笔试的内容也会被面试官看到。因此每一次在平台完成的信息都要谨慎。

2019-07-06 视频面试(初面-终面-HR面)

连续三面,简单粗暴高效率。

准备环节
  • 没有干扰画面的背景(我选了实验室)
  • 8M宽带(我开了热点)
  • 深色衬衫(避免干扰项)
注意事项
  • 看着摄像头说话,而不是屏幕
  • 注意你的面部表情(逃

初面

  • JVM新生代内存回收
    • (不会,但是讲了下对Java内存回收的了解)
  • 画项目的用例图
    • (太多了,因此最后商量画了一个简单的前后端运行的关系)
  • 为什么不做前端?
    • 我不想写CSS(面试官:)
  • 演示一下你的项目,讲一下技术点
  • 如果你有在北京实习的机会,你会在北京实习吗?为什么?

终面

开幕雷击: 看你的简历你好像不熟悉Java啊(是啊)
* 面向对象设计的原则讲讲?
* 里氏代换、依赖反转、迪米特法则、开闭原则、单一职责(软件体系结构重点知识)
* C++做过大型项目吗
* 没有
* 为什么项目选用这套技术栈?
* (技术选型调研...个人能力...云云)
* 既然说你从一个现有的系统过渡到另一个系统,你是怎么做到的?
* Redis 做Session共享、灰度测试...
* Node.js异步的原理?
* 事件循环(Eventloop), 单线程...
* 如何发送事件?
* setImmediate()、setTimeout()、EventEmitter.emit...
* 项目中用上面向对象?
* 没有,面向原型(Prototype Oriented), JavaScript中ES6的Class相当于Function的语法糖(为什么说ES6的class是语法糖?)

然后讲了讲在项目中主要用的是Observer和Proxy模式,这两个也是Vue.js实现双向绑定使用的模式

HR面

  • 自我介绍
  • 你的奖挺多,为什么不去实习?
    • 想获得更高的奖项
  • 哪个最重要?
    • ICPC
  • 为什么选择阿里?
    • Ali-Complex
  • 什么时候能实习?
    • 周五立刻可以

上面都是废话,总之你要强调非阿里不去的同时还愿意为阿里付出时间精力就行了

结果

2019-07-09 HR电话Offer call

  • 去上海实习去吗?
  • Offer走流程

2019-07-12 意向书

总结


一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的行程
上面这句话不是没有道理的。

从面试的过程来看,阿里重视的程序员的特点有(不分先后,可能有缺漏):
1. 了解语言特性、语法特点、数据结构原理的;
2. 了解设计模式、软件体系结构知识的;
3. 熟练掌握开发工具链的;
4. 知其然、知其所以然的;
5. 认同阿里巴巴价值观的;

而为了让你拥有足够的资本获得面试的机会,那么你需要
1. 至少一个拿得出手的项目
2. 至少若干项有名目的获奖

谨记此文,共勉。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇