分享阿里巴巴面试心得(成功拿到实习offer)

阿里巴巴面试

0 引言

在成功拿到阿里的实习offer之前,我已经有过两次面试的经历,但最终都被GG了(后面作总结我会分析原因)。对于像我这样向来自信甚至带点小自负的人来说,是相当受打击的。好在两次失败的经历并不是只有坏处,最起码下次面试的时候不会再怯场,还有一点更重要的,通过这两次面试,我大致摸清了阿里的整个面试流程以及套路。客观的讲,面试除了自身的实力以外,技巧性是相当重要的,我相信,不管是一个技术再厉害的大牛,如果没有对整个面试环节有一个大致方向性的把握,对于面试官所要提问的内容毫无准备,谁也不敢保证说这个offer我肯定可以拿到。因此,我在这里分享下自己的经验,希望帮助更多人,在面试过程中可以少走一些弯路。

1 笔试

先来说一下笔试部分,对于阿里的笔试难度来说,以我曾经做过的网易、蘑菇街笔试难度来比较的话,大致应该是:阿里>蘑菇街>网易,当然这里仅仅考虑了难度,抛开了各个公司的评判标准。比如说,阿里的笔试你考60就给你过了,但是网易可能就要你考75。阿里的笔试题总共包括两个部分,前面一部分是选择题,总共20道,时间是40分钟。也就是说,40分钟后,不管有没有做完,选择题会自动进行提交,然后你才可以继续做第二部分。从我做下来的情况看,时间相当得赶,基本上会来不及。题目内容大多是一些智商题,概率论,操作系统、网络等基础题。给我的感觉是,只要是技术面,选择题都是从一个大的题库中随机抽取,而不是跟某个具体的岗位挂钩。比如一些概率题,会有考察贝叶斯公式的,一些智商题,可能需要你用到简单的动态规划来推算。个人认为,选择题部分主要还是在考察一个人的基本功还有他的知识面。第二部分总共有三道大题,时间好像是两个小时,有点记不太清了。一般情况下会考一道算法题,难度不会太大,但是如果你没做过这样的题目,基本上还是做不出来。我举几道笔试原题:

在一个数组中,有若干个数,每个数字都出现两次,也就是说数组中如果出现了一个2,那必定存在另一个2,除了一个数仅仅出现了一次,如何在空间复杂度为O(1)的情况下找出这个数。

这道题目如果你有做过,你会发现解决问题的方式相当巧妙。具体答案可以自行百度,这里不赘述。

从100个数中随机抽取K个数,要求K个数不能重复。

你也许可以马上想到用暴力的解决办法,如果重复了,那再次抽取,直到抽完K个数。这道题目也有巧妙的解决办法,详见《编程珠玑》随机数那一章。

另外两道题目,以我的经验,一般会出现一道并发编程题,往往它会给你一个场景,让你提供一个解决方案,比如说设计一个活动抢购之类的程序。这些题目,大多万变不离其中,从最本质上来说,它可能仅仅是让你写一个生产者消费者模式或者是哲学家吃饭思考的问题。

一般情况下,笔试部分选择题做得不是很差,后面三道大题能做出两道来基本上就过了。

2 面试

再来说下面试,在这里,我不想条条框框得把我面试到的问题都列出来,因为那样毫无意义。问什么问题都是取决于interviewer个人的,没有什么所谓的题库,他想到问什么就问什么,当然也会根据你自身的实际情况来做提问。同时为了避免泛泛而谈,我可能也会以几个实际的面试题为例。

一般情况下,总共会有三轮技术面+HR面。如果你参加的是内推,所有的都是电话面试。对于我来讲,我更喜欢与面试官一对一面试,通过一些肢体语言和纸笔,有利于把一个问题更好得表达清楚,我并不惧怕现场写代码。在这方面,网易做得就比较好,先通过一轮电话面试筛掉一部分人,然后再参加现场面试,对于外地过来的同学,车票可以报销。如果你参加的是校招,通过了笔试,一般会邀请你去一个酒店进行面试。

面试一般会让你先做个自我介绍,这时候不要再去重复得介绍一些个人信息,面试官跟你面试的时候,肯定是已经拿到你的个人简历了,可以介绍一下自己平时经常做的事情,自认为比较擅长的或者自己喜欢的,自我介绍一分钟足矣,在这过程中,应该是让面试官知道你擅长什么,从而引导面试官有针对性的提问。接下来会问一些项目经验,你应该是挑一些有一定的含金量,并且印象比较深刻的(面试前,有必要回顾下做过的项目)。大致可以按照这几点来介绍:自己负责了哪个模块;把这个模块的大致流程介绍一遍;在做这个项目过程中碰到了哪些问题,最后是怎么解决的;最后就是对这个项目的收获。介绍完项目经验以后,面试官开始自由提问,以我多次面试的经验来看,面试的问题都不会太难。我可以大致给出面试的提问范围:

1.关于java虚拟机,你需要知道JVM的内存结构,垃圾回收机制,内存分配策略,类的加载机制以及内存模型。以上这些请参考周志明的《深入理解java虚拟机》。

2.熟悉java各个容器的实现,例如HashMap、ConcurrencyHashMap等,最好去阅读源码,这次面试关于HashMap原理三个面试官问了我三次,重要程度不需多说了。

3.熟悉java并发编程,尤其是java.concurrency包下的api,并发作为一块高级内容,对于很多人说,很少接触,也很难将其掌握。幸运的是,面试官在这一块都不会考得太深入,推荐《java concurrency in practice》。

4.熟悉常用的数据结构、算法。很多人认为算法在实际项目中根本用不到,并且觉得算法太难,就疏于学习。那为什么所有的大公司都喜欢考算法呢?尤其是像微软、facebook这样的巨头?算法不仅需要必备的理论,更需要亲自动手,有关算法的书籍更多,找一本适合的就可以了,题库推荐leetcode。

5.其他还有像设计模式、数据库都很重要,这些东西并不是靠一两个月就能掌握,还是需要平时多积累、总结。推荐《head first 设计模式》,如果有你认为学习能力强,可以直接看四人帮的《设计模式》,数据库就不多说了。

在这里,我并不是想给出一个面试宝典一样的东西。事实上,上面列出的东西,没有两到三年的时间学习,根本掌握不了。要想成为一名技术大牛没有捷径。还是希望大家可以认真踏实的学习,一旦你真正掌握了这些,面对面试官的提问基本上可以达到游刃有余。

3 总结

总体来说,大多数企业考虑到校招针对的是在校学生,面试都不会出现太难的题目。然而在如何学习这个问题,笔者还是有话要说的,我见过很多人,光看书或者视频,忽略了实践,最终的结果就是我能看懂代码,但是我不会写。更有甚者,拿着一本与自身水平不适应的书例如《think in java》在那里啃,导致自信心大受打击,学习兴趣骤减。武侠小说告诉我们,练一门与自身功力不相符的武功只会走火入魔。我在学习马克思主义的时候,对里面提出的思想观点是相当抵触的。但是有一点关于理论与实践的辩证关系,我深表赞同:实践是理论的基础,理论对实践有反作用,理论和实践是相辅相成的,缺一不可。我曾经遇到一位长者,他目前的职位是产品经理,问我在学校有没有项目,我说基本没有。然后他以一种教育的口吻跟我说,你这样会荒废掉的。我笑而不语,如果非要用一张图来描述我的表情的话,应该是这样的:


我刚才强调了实践的意义,但是我认为,如果你做过类似的项目已经足够得多,就不要再去做重复劳动。我无意去贬低在学校做的项目,但是事实就是如此,99%的学校里的项目只能算个Demo。试问,有谁考虑了代码是否足够Elegant?是否足够Robust?是否足够Security?如果没有,那就远远达不到作为产品级别的工业强度!那么这样的项目做得再多也是无用功。

另外,文章开头谈到我两次失败的经历,都是到了HR面,有人说能面到HR,基本上就已经过了。而我两次都败在了HR面上,我甚至一度怀疑自己是不是情商有问题。在HR面的整个过程中,给人感觉还是比较轻松的,就跟平时聊天一样,基本上都是一些比较开放性的问题。但是一定要能够说得通,不能出现前后矛盾,那面试官肯定以为你是在忽悠。另外,不要把自己的缺点说得太过直白,笔者就是因为吃了这个亏。好了,作为一个HR面的loser,我就不多说了。

最后,如果面试失败也不要灰心,面试很大一部分是有运气成分的,笔者不乏见过很多被BAT刷掉,最终去了微软谷歌的,你能说他们技术不够强硬?重要的是每次面试后,都能做反思、总结,吸取经验教训。

如果你想学习Java工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty源码分析和大数据等知识点可以来找我。而现在我就有一个平台可以提供给你们学习,你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,群号为:668395460

注:加群要求

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

6.小号加群一律不给过,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,515评论 25 707
  • 雯文,你好! 我读了你的这篇文章,很喜欢。你写得一气呵成,这真的是一篇好文章。 我不愿意讨论写作技巧,因为真情的文...
    小坏蛋格瑞特阅读 196评论 1 1
  • 文 / 路人锋 修辞,是我们写作的伙伴,不管大家写诗,还是写文章,运用恰当的修辞方法,能使你的句子活色生香,让读者...
    路人锋阅读 1,824评论 58 53
  • 已经记不太清是什么时候知道了“小确幸”这个词,小小的确定的幸福,不需要多么华丽的渲染,只需要内心得到足够的安宁和满...
    乐晴玛利阅读 434评论 3 3
  • 丽人游绶溪: 一场春雨声渐悄。水中鱼跳,岸边舟摇。 绶溪渡与延寿桥。狗儿逍遥,美人窈窕。 碧水白鹭将愁消。花草娇俏...
    晚晴风竹阅读 371评论 4 4