阿里巴巴2015校園招聘面試經歷(筆者面試問題----傾情奉獻)

       8.29號筆試,9.1號官網顯示筆試通過請預約面試時間,預約了9.17號下午三點面試。

       投入更加緊張的準備中,先把項目中的各種可能被問到的細節問題想到,然後再總結自己當時的解決辦法和思路。最後,把各種C/C++的問題、數據結構、數據庫、操作系統、計算機網絡、軟件測試方法用例原理等等亂七八糟的東西都掃了一遍,堅持寫博客,每天至少更新一篇!另外,稍微瞭解以下阿里的文化和公司理念等。

       雖然準備了很久,但面試的前一兩個小時還是蠻緊張的,給GF打電話緩解了下情緒,然後準備好面試所需的所有可能用到的資料和工具,輕裝上陣!下面便是筆者面試的詳細過程。

阿里面試經歷

一面(技術面)

首先看着簡歷問了些隨便的問題,如你本科武大的,教育背景還可以,你是四川人,看着不像啊,人高馬大的。算是閒扯了一會兒,然後看了下簡歷:看到有星載接收機項目和算法有關,然後說給你個題目你實現一下。然後就在紙上寫了一個數組,說找出其中的次大值(第二大的數)。

他問:明白題目的意思了嗎?我說:明白了。然後我就拿着筆寫,他就看我的簡歷。代碼如下:

#include "iostream"

#include "algorithm"

using namespace std;

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 (int i=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++等這些和崗位要求的技能相關並且你也會的方面帶。先把項目各種情況考慮清楚,改進的地方、自己負責的東西等等這些準備好了之後,再去補充其他的知識。面試回答問題時不要東拉西扯,面試官很煩沒有乾貨的話,用簡潔的話回答重點即可!另外,一定練習紙上寫代碼的能力,這個和電腦用軟件寫是不一樣的,尤其是在面試官不停打擾你的情況下!

       最後預祝大家找到稱心如意的工作!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章