阿里巴巴2015校园招聘面试经历(笔者面试问题----倾情奉献)

来源:互联网 发布:mac dsdt 编辑:程序博客网 时间:2024/05/17 07:59

       8.29号笔试,9.1号官网显示笔试通过请预约面试时间,预约了9.17号下午三点面试。

       投入更加紧张的准备中,先把项目中的各种可能被问到的细节问题想到,然后再总结自己当时的解决办法和思路。最后,把各种C/C++的问题、数据结构、数据库、操作系统、计算机网络、软件测试方法用例原理等等乱七八糟的东西都扫了一遍,坚持写博客,每天至少更新一篇!另外,稍微了解以下阿里的文化和公司理念等。

       虽然准备了很久,但面试的前一两个小时还是蛮紧张的,给GF打电话缓解了下情绪,然后准备好面试所需的所有可能用到的资料和工具,轻装上阵!下面便是笔者面试的详细过程。

阿里面试经历

一面(技术面)

首先看着简历问了些随便的问题,如你本科武大的,教育背景还可以,你是四川人,看着不像啊,人高马大的。算是闲扯了一会儿,然后看了下简历:看到有星载接收机项目和算法有关,然后说给你个题目你实现一下。然后就在纸上写了一个数组,说找出其中的次大值(第二大的数)。

他问:明白题目的意思了吗?我说:明白了。然后我就拿着笔写,他就看我的简历。代码如下:

#include "iostream"

#include "algorithm"

using namespacestd;

int main()

{

    int a[]={2,3,8,4};//当时的样例数组

    int len=sizeof(a)/sizeof(a[0]);

    sort(a,a+len);

    cout<<a[2]<<endl;

   

}

给他说,写好了。他说:这么快,然后看了下说,哦,你用的库函数。然后让改,不用库函数,最好能写出最优的算法,可以想一下再写。

我想了会儿,然后开写,代码如下:

int main()

{

    int a[]={2,3,8,4};

    int Max=INT_MIN,max_second=INT_MIN;

    int len=sizeof(a)/sizeof(a[0]);

    for (inti=0;i<len;i++)

    {

        if (a[i]>Max)

            Max=a[i];

        if(a[i]>max_second&&a[i]<Max)

            max_second=a[i];

    }

    cout<<max_second<<endl;

}

(1)然后他问,你这个是怎么实现的,我说先找出最大值,然后找出比最大值小一点的。

他问,你这个循环多少次,我说数组的长度次数。然后没再多问了。

然后让我介绍一下自己。

(2)我按照简历的大概,教育背景+项目经历,巴拉巴拉说了一通,把每个项目干什么实现什么功能用简短的话说完,然后说说自己负责的模块,做了什么,最后得到什么结果。(简历的项目那一块,最好把做的事情一条一条的列出来,这样面试官看的舒服)。

(3)然后他就开始对着项目问了:星载接收机这个你做了什么,用什么软件,有什么算法,怎么实现的。然后我说我负责捕获模块的实现,主要是算法研究和在硬件中的实现,然后配合组内成员完成后续环路的跟踪,具体怎么实现,巴拉巴拉一通。

(4)你数传地检软件这个项目做了什么?

然后我说主要是学习,包括多线程、套接字、多文件处理,按照指定的帧格式,实现动态实时多文件夹存储功能。

那你觉得难点在哪里?有没有压力特别大的时候,怎么处理面对的?

(如实说,扯了下项目快截止了,然后催着结项;还有就是一个新的程序代码,很长新东西多,短时间学起来压力比较大,缺什么补什么,慢慢就好了之类的)  

后来问:代码有多少行? 

我说叁仟陆佰多行吧。

他说不算长,他们有时候一天就写几千行。囧。

(5)你第三个项目,北斗导航技术掩星探测做什么的,你做了什么?  

如实说我做算法分析,把星间链路回传数据的压力减小;反演算法分两类,一类复杂不能星上实现,只能剔除接收机无关代码,减少返回量,一类是算法简单,可以精简之后移植到星上进行;最后提交可行性方案给上海市科委。

这个主要是预研项目,他没问多少。简单的问了下实现的思路。

(6)然后开始问:你学电子的,本科呢? 

如实说本科也是电子信息科学与技术的。  

那你怎么想到会做测试工作呢? 

我个人觉得测试工作比研发工作更难,研发只要进行需求分析、编写代码、修改bug等,而测试是要全程参与的,有更多的学习机会。然后扯了下双十一阿里的系统没有崩溃,觉得好牛,就想知道怎么实现的。因为知道阿里有专门的测试团队,所以就特别像进去学习。    

那你知道测试的流程吗? 

知道,有需求分析阶段、设计阶段、单元/集成测试阶段、性能/压力测试阶段、验收测试阶段、结项总结。方法主要有:白盒,黑盒;静态测试,动态测试等。   

什么是单元测试?

我将概念稍微解释了下。

那你刚才你写的代码,求整型数组中次大的元素单元,要你来设计测试用例,你会怎么做?并给我举了个例子:比如,输入[2,3,8,4],输出4。

然后我按照测试用例设计方法,做了如下测试用例[2,2,2,2],[2,2,8,4],[1,2,3,…..,n],[2,3,’a’,8],[‘a’,’b’,’c’,’d’],[空],[“string”]。写的过程中,我写一个,他说一句:还有呢。。。。搞得我有点思维断片儿。后来我说暂时想到的就这些了。

他就挨个点评我的测试用例,然后提示说还有负值和一些边界情况要考虑,我赶紧说,哦对,比如0值。然后稍微给我说了下,就没再多问了。

(7)那你期望工作的地点是哪里?

赶紧说杭州,因为那边有亲戚。

平时都怎么学习的,方法有什么?  

我说先自己看书搞懂基本原理,如果不会就上博客论坛,交流,一般都能解决。学习了之后写点博客笔记什么的。(他没问地址,二面面试官问了)。   

那你有没有压力特别大的时候?怎么解决的?  

举个实际例子说明即可(这个问题,一面二面HR都问了)。

(8)你有没有问题问我?  

我问了什么时候出结果,几轮面试,他说快的话两到三天,慢两周也会出来,面试两到三轮吧。  

还有问题吗? 没了。   

行,你等一下,给你安排复试。

二面(技术面)

(1)面试官上来就开始问你武大的,为什么来中科院读书了? 

我说中科院设备好,动手机会多。比高校好。  

那你对自己的选择后悔吗?  

我说不。   

行,那你介绍一下自己吧。   

然后按照预先准备好的再说了一遍。  

(2)然后开始对着项目一条一条问。   

做了什么?实现什么?你做了什么?  

如实回答,尽量扯一些和岗位要求相关的技能,让他提起兴趣继续深入问你。   

然后他说:你把数传地检软件这个项目的实现流程画一下吧。 

按照实际的流程一边画,一遍讲解,怎么按照这个流程图实现项目中的功能的,画的过程中每说两句,面试官就:恩恩,恩恩(不知道是不是表示对我的尊重,表示他在听?反正一面面试官也是这样的)。   

(3)你说是多线程实现的是吧,那你怎么管理线程的?  

用互斥句柄实现同步。  

要是多个线程抢资源怎么处理解决的?   

这个我们还没做,不是很清楚。  

(4)那你在这个项目里面具体做了什么?  

主要是学习,学习怎么实现,里面有很多新东西,比如txt文件的动态存储,多个信道分别存储,改进了一些算法,使得程序更加稳定。比如文件夹,之前是一个,现在动态多个,并固定大小为256M,为帧结构的整数倍,方便后续的提取和分发。线程之前的优先级是全部一样的,然后项目需要实时存储,就把存储线程的优先级设置为最高,接收次之,其他的线程相对靠后等。  

主要让他觉得你确实做了事情,能说出细节,有些他也不一定懂,我很担心他问我多线程,套接字等,但是他没有细问。

(5)然后问了问,星载接收机、北斗导航掩星探测项目的一些东西,随便问了问做了些什么,可能里面和C/C++、软件设计、测试什么的相关不大,问的比较少。  

你这项目好像和测试关系不大,那你为什么面试测试?  

没有啊,接收机性能功能的测试,数传地检软件的测试,这些都有实际经验的。不过主要是偏功能型的测试。   

那你能简单说下流程吗?   

如实说了,测试的流程、方法、思路和相关概念尽量说的详细、简洁!

(6)数据结构算法、其他的东西了解吗? 

我说我自学了,了解一些。 

排序知道吗?

知道。

写出快速排序的代码?   

我心想完了,原理知道,代码没有认真考究过。然后按照原理自己写了写代码,这时正好有人找他有事,他给我说:你先写着。没人在,心理安稳了些,下面是当时的代码:

#include<iostream>using namespace std;void quickSort(int a[],int,int);int main(){int array[]={34,65,12,43,67,5,78,10,3,70},k;int len=sizeof(array)/sizeof(int);cout<<"The orginal arrayare:"<<endl;for(k=0;k<len;k++)cout<<array[k]<<",";cout<<endl;quickSort(array,0,len-1);cout<<"The sorted arrayare:"<<endl;for(k=0;k<len;k++)cout<<array[k]<<",";cout<<endl;system("pause");return 0;}void quickSort(int s[], int l, int r){if (l< r){      int i = l, j = r, x = s[l];while (i < j){while(i < j && s[j]>= x) // 从右向左找第一个小于x的数j--; if(i < j)s[i++] = s[j];while(i < j && s[i]< x) // 从左向右找第一个大于等于x的数i++; if(i < j)s[j--] = s[i];}s[i] = x;quickSort(s, l, i - 1); // 递归调用quickSort(s, i + 1, r);}}

写完了,也没法改进了,写不出来,就这样了。在那儿等着,偷看了第一面成绩:B+,暗喜,觉得有戏。

然后他回来随便看了下代码,是那么回事,然后让我说说实现的思路,也就是快速排序怎么实现的。 

我举了一个数组,然后将里面的元素按照快速排序的原理讲了一遍,他听了下,没再问了。

(7)你说你了解测试的流程,测试用例的设计方法,那你讲讲测试的基本流程方法吧?  

像一面一样巴拉一番。

给你个淘宝的购物车,让你测试,你会怎么测试?  

我会测试能不能正常加入购物车,多加入几个商品看反应怎么样,加入非法的不是淘宝的商品会怎么样;然后看看如果付款了,购物车相应商品会不会减少等等。  

然后他没深问。

(8)你讲讲平时都怎么学习的吧?遇到什么压力特别大的时候怎么办?遇到不会的问题怎么解决? 

扯了下,扯到博客论坛交流,自己写博客笔记等,他就问地址,然后浏览了下,你面了华为?恩不错。

(9)你平时有没有自学过一些软件,比如自学什么工具之类的? 

我说有verilog,matlab等。

一般怎么学的?   

扯了下自己的学习方法。

(10)你本科硕士都学电子的来做测试,好像跨度蛮大的,你怎么就觉得比那些专门学软件的有优势呢?

我赶紧说我的项目也涉及测试工作,至少做了功能性的测试。兴趣在这里。

别人学了十几年,你怎么知道你怎么赶得上别人?

不学我肯定赶不上了,但是一直学,我会有质的飞跃的。

(11)了解Java吗? 

我说不了解。 

如果让你去学个新的东西,你会怎么学习?(这个问题HR也问了。。。)

(12)你对工作地点有什么要求吗? 

我说最好杭州,亲戚在那边。。。。。。  

大体就这些问题吧,然后让我问问题,我又问了什么时候出结果,他好像说一周左右吧,忘了。然后让我在边上等。没让我回去等没有让我回去等结果,表明有戏。

HR面(综合面)

总感觉HR面会很轻松,实际上不是的,问的挺宽泛的,一上来就问技术问题(惊呆了,不适应啊),说说你的项目吧,然后把每个项目简短的说了下,因为感觉她不太耐烦。 

(1)你在每个项目承担什么角色?自己做了什么?有什么改进,有多少想法是你自己提出来的?这个项目在同类行业水平中都有什么技术,你们做的在什么水平上?    

我主要是算法研究啊什么的,行业最尖端的不是很了解,但是我们是继承别人,并改进,包括我的小论文也是从这个方向发出来。要体现你自己的有参与,并有想法,有改进什么的。

(2)你平时对什么语言比较熟悉?我说C/C++。那你怎么学习的?  

我说做项目,缺什么补什么,还有就是自己编程序实现,并设置断点去窗口看它们的内存分配,这样记得深刻些。  

你看过反汇编语言吗?   

我说没有,这是我接下来想深入了解的地方,除了了解内存加深程序理解,最直接的办法就是看反汇编了,算是扯了下把。   

Jave了解吗?

我说不熟。然后没多问java的东西。。。。

(3)举个你觉得自己做的最好的项目,在项目里你做了什么?有什么改进,或新的想法?     

将数传地检软件又说了下,改进的地方啊什么的。  

这些改进想法都是你自己想出来的吗? 

我说不是,是和boss讨论出来,我实现的(心想她应该不懂具体实现吧,其实不是我一个人实现的),后来她没多问。  

(4)北斗导航掩星探测项目你做了什么?  

做了算法的分析研究。  

你有什么改进吗?  

我将改进的方案大体说了下。怎么去实现,怎么努力克服困难等。。。。  

(5)星载接收机项目,你负责什么? 

捕获模块及相关算法。

这个算法是自己研究的还是参考别人的,或者是已经成熟的算法?  

我说是经典算法,我主要是先实现,将理论用于实际。并且由于我们行业对稳定性要求很高,不会轻易尝试用新的方法。   

那你现在回过头来想想,有什么地方可以改进吗?  

有啊,(扯了扯小轮文就是研究捕获算法发表的)比如,之前是按信号频率分块线性分块,并一块一块依次搜索捕获的;其实可以按照多块并行捕获,这样捕获时间段。  

这是你自己提出来的想法吗?  

不是,看到有论文里说的。  

谁的论文?  

想了会儿,我不记得名字了。后来没多问了。

(6)你觉得自己的缺点是什么?  

想了想,偏见啊什么的。

你这样说我没有感觉,你举个例子吧?

好吧,想了半天。。。。   

说一件最近的你觉得最自豪的事是什么?  

找到很好的女友,交往4年了,在杭州(赶紧将杭州地点默默强调一遍)可以有什么说什么,真心对我好,很幸福。  

祝你们白头偕老!   

谢谢。  

还有呢?

然后又说中科大代培生篮球赛拿了名次。 

你打什么位置,你们第几名?

后卫,亚军。 

还有吗? 

又说数传地检的项目,刚开始什么都看不懂,后来自己努力学习,最终能够实现基本功能的测试。 

那你自豪吗?  

我说挺开心的。   

(7)那你自己觉得自己是什么样的人?  

比较合群的一些特质。说到诚实,诚心待人,积极向上等。  

你有没有压力特别大的时候,怎么处理的?

积极学习面对就好,行动多过胡思乱想总没有错的。所以会尝试以行动去解决问题。

(8)你平时怎么学习的?碰到不会的问题怎么解决?有没有觉得自己接下来急需要学习的东西?  

测试工具的使用,反汇编,编程之美的思维都需要深入研究下,因为我觉得这本书讲的程序设计思维真的很赞!

(9)你除了投阿里,还有投其他公司吗? 

如实说百度、腾讯、网易、搜狗、搜狐、携程、去哪儿等。  

什么岗位? 

百度研发岗位、腾讯研发岗位、网易还是研发岗位,其他的也有测试岗位的。  

她掩口大笑:你怎么这么老实,bat公司都投了是吧? 

我只好尴尬笑了笑。  

她说:我只是想看你诚实不诚实。。。。。。     

那你为什么投阿里的测试岗位,最后给你次机会,如果研发测试都有机会你会选择什么?  

我觉得是个坑(赶紧说不忘初衷,因为投阿里就是为了测试来的)我又将能多多学习,多多参与软件开发各个流程说了一遍。双十一系统多么牛逼,想知道背后怎么实现的。   

她说:不一定是你想的那么理想? 

我赶紧问:难道不是那么牛叉吗?  

她说:这倒不是,是测试工作不一定那么理想,希望你有个心里准备。。。。 

有的,肯定是从最苦逼的底层做起。  

她又在那儿笑。。。。。。

(10)你一直关注阿里吗?   

怕她问细节问题,如实说只是用它的服务什么的,关注是最近才关注的。   

为了找工作是吧?  

我只好傻笑。。。。。    

对阿里了解吗?  

说了下对阿里的了解,什么最具幸福感公司,公司很大,最近炒得很火的上市什么的。    

(11)你对自己的未来有什么规划吗?   

要好好做测试,多学习系统的测试知识,使自己成为优秀的测试者。   

(12)你对工作地点有要求吗?介意加班吗? 

再强调一遍杭州(因为据说阿里比较喜欢杭州的人),加班不要长年累月的就行,因为身体吃不消。

你身体不好吗?

我赶紧说,不是,长年累月的加班,肯定有个累加效应,迟早出问题的。

哦,那到不至于,只是项目紧的时候加班比较多。

(13)然后她笑眯眯的问,你觉得你面试能通过吗? 

我也笑笑说:我希望能通过。  

行,那你回去等结果吧。

礼貌的互道再见,谢谢您之类的,结束!


终于面世完了,HR姐姐真是很能侃,而且还懂技术,真是虐心啊!终于结束了!

         预约的是2014年9月17日下午三点半的面试,一直面到将近晚上七点,赶紧出来吃饭。吃完饭,赶紧回宿舍打开电脑查看面试结果,显示“三面已通过!”,高兴!阿里办事果然神速!后来百度,说三面已通过也不一定保证能给Offer,又不开心了。。。。。

         凌晨一点半,手机收到短信:hi,亲爱的同学,恭喜您顺利通过了阿里巴巴集团2015校园招聘面试!现邀请您参加9月18日(周四)下午1点的圆桌沙龙,届时我们将与小伙伴们畅聊阿里文化、工作环境,沟通薪酬等。活动将于9月18日下午1点在中兴和泰酒店准时开始,不要迟到哦~期待您的到来,我们不见不散!

        然后就失眠了。。。。。。

       总结:其实我个人觉得首先应该从项目准备入手,用你的项目把他往数据结构、算法、C/C++等这些和岗位要求的技能相关并且你也会的方面带。先把项目各种情况考虑清楚,改进的地方、自己负责的东西等等这些准备好了之后,再去补充其他的知识。面试回答问题时不要东拉西扯,面试官很烦没有干货的话,用简洁的话回答重点即可!另外,一定练习纸上写代码的能力,这个和电脑用软件写是不一样的,尤其是在面试官不停打扰你的情况下!

       最后预祝大家找到称心如意的工作!

0 0
原创粉丝点击