众所周知阿里巴巴作为互联网公司巨头之一,面试流程是复杂且竞争激烈,HR在面试中的权力非常大,你能不能过基本就靠HR一句话,很多几轮技术面试上都过了却卡在了HR这里。
不过在小编印象里HR看人是非常准的,记得我早年毕业去找工作时,几十个人一同面试,最后只录取了四五个人,我侥幸在里面,那HR说了一段话我至今都印象深刻:你们如果没做自我介绍没有说话,那你们在我眼里只有性别上的区分而已,你们做了自我介绍,回答了我几个问题,我基本能看出你大概是怎样的一个人,符不符合我们公司的要求,我也非常相信自己的眼光,因为这是我经过面试无数人锻炼出的技能。我当时是相信她的话,她的目光确实独到,在那几十个人中也选了我,哈哈,自夸一番。不过总的来说HR就能主宰一场面试特别是中小公司里,所以面试的时候一定要给HR好印象,不然你技术面试上表现的多优秀都很难通过。
下来来自一位技术大牛面试阿里程序员的自述历程,看看阿里怎么招人的吧。
阿里社招一般有四到五轮,我这次的流程是第一轮技术面、第二轮写代码、第三轮boss面、第四轮boss面、第五轮HR面。然而我没能和HR聊上一句。
第一轮的面试官,如果你能进,基本上都是你后面的同事,和面试官聊天的过程,给我的感受就是一个字:舒服。我之前面过某站,完全是两种不同的体验。第一轮主要都是围绕着技术来展开,一般把自己的项目经验总结好,把自己掌握的技术栈复习好,基本上问题不大。
技术面大概进行了1个半小时,主要涉及到的有并发问题、消息中间件问题、JVM、项目的技术细节讨论等等。还有半小时,完全是闲聊了,因为我之前在华为做过5G,面试官对这个比较感兴趣,就问了一些关于5G未来的发展趋势,所以整体聊下来,感觉OK,第一轮问题不大,中规中矩。过了几天还是那个面试官,跟我约了周六来做几道题,周六我已经出差回去了,中午面试官给我打电话,并且发了个链接,我在这边写代码可以实时同步到他那边。
有三道题,第一题和并发有关,第二题是一道算法题,第三题是一个设计模式,但是要支持可扩展。题目看起来也算中规中矩,面试官要求三选二,我选择了第一个和第三个,顺利做完了。(如果对题目细节感兴趣的读者,可以在文章下面给我留言)
又过了2天,还是这个面试官,跟我约了后面会有两轮boss面,说句实话,我心里还是蛮虚的,为什么呢?因为我当前一直在做政府项目,对互联网电商这块的经验比较欠缺。这是短板,也必须得克服。
周四的时候,第三轮开始了,打过来的是一个女boss,一开始问了我一些问题让我觉得很像是HR哈,比如你为什么要离职?比如你觉得当前的项目对你成长最大的地方在哪?比如你觉得自己的优势和缺点是什么?这些问题一般都是HR喜欢问的。
所以我中途来了一句,您应该是HR吧?哈哈,她说她是做技术的,我里个神,感觉自己被打脸。随后就是一连串的技术问题了,这个女boss貌似是想证明她是搞技术的。问的问题都是有点偏解决方案类的,比如给你一个场景,如果是你,你该如何解决?主要涉及的有分布式、缓存、消息队列等内容,答的还可以。
这期间有个小插曲,也是我这次面试最记忆深刻的,面试官问我那个优缺点时,我对自己缺点的回答是:目前对互联网电商这块的技术落地或者相关解决方案还仅限于理论层面,也需要一个这样的平台。然后这位boss冒出了一句很经典的话:来阿里你不缺挑战,可能你更多需要关注第一年你能否活得下来。这句话很经典,瞬间我对阿里人又多了层敬佩。
当然,我的回答就比较喜剧了:哈哈哈,扶我起来,我还可以再写几行代码!
面试官:呵呵呵…… 所以我猜她应该是80后。
第三轮整体感觉还OK,问题基本上也回答的还可以,过了两天,这位boss跟我约第四轮,因为到了五一放假了,所以第四轮的boss面要再多等一个周,所以整个面试下来,横跨了一个月,其实战线蛮长的,确实有点累。
第四轮是部门技术leader,约的是视频面试,这一轮明显感觉气场更加强大了,比第三轮的boss更加难以hold住。问的问题主要围绕两大块,第一是根据我的项目来提出漏洞,让我解决;第二是他自己设定场景,让我给出解决方案。
第一种问题其实还好,毕竟是拿现有的项目作为背景,回答的还可以,但是有个比较尴尬的是,面试官听完了我的项目介绍之后来了句:感觉你们的项目没啥技术含量啊!场面极度尴尬……
第二种问题其实蛮被动的,因为电商这块的经验不是很足,虽然我之前看了一些东西,但感觉回答的一般,果不其然,最后挂在了这一轮。最后我看到的邮件评语是:您的职业经历与该职位的要求略有差异等等。
这次内推的这个岗位是经济体解决方案,后来跟内推的阿里大佬沟通是,他们这个岗位计划是招P7的,所以要求高是正常的,虽然我把这些当作是安慰自己的话,但是我还是当真了,哈哈!
以上给大家复盘了我这次整个阿里的一个面试经历,整体来说,对我本人的成长蛮大的,通过我的文字,大家也可以感受到每一轮的面试,压力是递增的,当然如果技术水平和项目经验都OK,那也是没有问题的。
最后再给大家简单总结一下:
- 社招面试,技术问的相对来说更加深入,所以对有些源码还是要了解点,比如并发相关的原理,是经常被问到的。JVM就更不用说了,几乎是必问到的。
- 所有的问题都是围绕具体场景,一般大厂都会结合具体场景来问你问题,所以你会demo是肯定不行的,你还要知道为什么要用这个技术,以及如何做到高可用等等。
- 以后面试,基本上都会让你写代码的,招软件开发工程师,光会嘴论是不行的,这就要平时抽空多练习了,我指的是练练算法题,而不是那种业务代码。
整个面试过程的体会是基础真的很重要,基础好了很多问题即使没遇到过也可以举一反三。另外对一样技术一定要懂原理,而不仅仅是怎么使用,尤其是缺点,对选型很关键,可以很好的用来回答为什么不选xxx。另外对一些比较新的技术有所了解也是一个加分项。