天天看點

螞蟻金服實習Android崗,面試闖關記。

螞蟻金服實習Android崗,面試闖關記。

聽說螞蟻金服上市估值2k億美元。今天就在這分享一個被内推螞蟻金服面試的記錄。

作者:夢想稱為大牛的菜雞

本人于今年(2020)3月18日被内推螞蟻金服實習,至今曆經5次面試,特發此貼留念。

首先聲明,本人至今并未受到offer,是以,成了就是經驗貼,沒成就是教訓貼。

這是我第一次工作面試,沒什麼經驗,同時也沒什麼準備,在投履歷之前半周才去找了一些各大廠的高頻的面試題去刷。

被前輩内推的崗位是Android相關的崗位,同時需要**C++**經驗的那種。正好我相對來說比較熟悉C++(其實菜的一批)是以就同意了。

就整個闖關經曆來講主要是三部分:評測、筆試、面試、… ,後面的步驟還沒有經曆,不知道。

說在前面:面試的時候要多說點,能扯就扯,盡量不要冷場,一冷場就會有新問題…,而且面試官估計也不想絞盡腦汁的提問題(個人猜測,但是很重要),他們大都是說到哪問到哪,是以自己有調整問題的走向的空間。

1.關于評測

這個評測的最終目的是什麼,我在評測之前不知道,現在也不太清楚,應該最主要的是摸清求職者的基本素質和性格愛好等(純屬猜測),包括閱讀能力、了解能力、看圖能力、智力相關、自我認知等。

說實話,題挺多,好幾十道,有點費腦子,當然并不需要特别去準備,隻要是個正常人應該都沒問題。我之前不知道,還忐忑了好久才開始做題,其實沒必要,也算是提醒後來人。

2.關于筆試

說起筆試,挺紮心的,本人沒做出來。總共有兩道程式設計題,說不上難易,不過市面上肯定沒有我覺得。是以指望刷原題解決問題應該是行不通的,當然不是說刷題沒有用,刷題很有用。 我覺着吧,筆試主要是考察應聘者随機應變,活學活用能力的。如果是為了考察應聘者算法的基礎能力,應該多出幾道題,多考察幾個算法點。另外值得一提的是,即使筆試0分,同樣可以參加後續面試,這也讓我有機會接觸後面的面試,我覺得這個設計真棒(菜雞心中的呐喊)。具體筆試題目我就不說了,慚愧…

3.關于面試

我其實在這次面試之前并沒有參與過其他面試(除了考研複試),是以不是很清楚面試具體分類,一下就以第幾次分類。早就知道找工作不易,但是沒出校門的我在此之前并沒有發現如此不易,向企業推銷自己是如此困難。

我總共經曆5次面試,除了最後一次HR面試之外,其他的感覺都像是技術面試。下面從第一次開始講起:

First Blood

在我完成筆試之後的第二天,也就是3月24号(星期五)上午,我收到面試官發來的面試邀請(電話),主要是問什麼時間有空,來聊一聊。由于疫情在家,閑的長毛的我猶如抓住了救命的稻草,立即表示随時恭候。于是,當天下午兩點正式開始第一次面試。

下午2點5分,我準時接到了面試官來電。電話接通後,廢話沒有,直接就是自我介紹環節(這裡強調,面試官非常溫柔,聲音磁性,哎呀,我一大老爺們兒的心要化掉了…呃)。我其實在此之前沒有任何準備,于是就從姓名開始,到自己的研究方向,再到經手的項目,扯了一通。扯了很久之後,面試官開始打斷我,提問項目細節,然後我繼續講,講到哪裡他就提問到哪裡,這裡強調,自己不知道的東西不要亂講,小心底兒掉…

由于時間久遠,加上問題較多,是以我也不知道具體有什麼問題,大概就是那麼幾類:C/C++相關(這是我主打方向),Linux,專業興趣等。

主要幾個印象深刻的問題有,以下問題不分先後:

C和C++的差別、C結構體和C++結構體的差別、指針和引用的差別、項目中遇見的挑戰、解決方法和收獲、平時都怎樣學習程式設計(常逛GitHub)、例舉幾個你了解的開源項目(項目解決的問題和方法)、你在這個開源項目裡學到了什麼、STL内部實作方法、Vector如何實作的、map如何實作的、抽象類是如何實作的…

以上舉例是問題的一小部分,大部分專業性問題都給忘了。

總結第一次面試,面試對專業性的東西要求不太高(相比于後幾面),主要是問自己專長(求職意向)相關的内容,我主打C++,是以這方面就問的較多。

整個面試過程非常愉快,從緊張的面試到最後的閑聊總共花費将近一個小時(55分左右)。中間也有幾個有趣的内容,我們聊到Linux核心,他問我核心是由什麼語音寫的,我答C語言。他又問,為什麼不用C++,我答C比C++更快,最重要的是Linus非常讨厭C++,曾公開罵C++就是一坨*。然後他就樂了,說也行這後面由更深的原因,你可以查查。。

另外一個有趣的内容是,因為我提到GitHub上的大牛代碼寫的像文章一樣,每次讀後都令人身心愉悅,然後就扯到了代碼風格以及能力上,扯了很久的代碼風格…

總而言之,整個面試很愉快,很順利,面試官應該對我也很滿意,曾透露我表現良好。最後就是讓我問幾個問題,這也是面試慣例。我就問後面大概還有幾次面試,他回答至少3次。又問了一個傻冒的問題,是不是進了螞蟻就能晉級成Github上的大佬(太他麼傻,回想起來還有點尴尬,好吧幸虧氛圍很融洽,他向我介紹了公司的強大,表示發展空間無限大)。

還有一個非常重要的問題就是因為我有點不對口(安卓相關同時對C++有很高的要求,我C++),他問我對職位了解多少,我就說了一下自己的情況,然後表示以前也學過安卓,IOS(OC),最後強調了一下,我很中意這個職位,另外内推我的人說了,讓我進去再學。阿裡有個很人性化的招聘規則,就是,如果你沒有達到職位要求的所有需求,它們不在意這些,隻要你符和要求的地方很優秀。

Double Kill

在第一次面試後很久(我一度以為涼了),也就是第二周的周三,4月1号,晚上8:30左右突然就收到了一個螞蟻金服北京分公司的電話,裡面傳來一個低沉的聲音,聲音沙啞。首先是确認我的身份,然後就開始了電話面試,面試從C/C++問起,相比第一次,難度明顯加大。首先問,C語言中結構體的位元組對齊問題,然後是C和C++的差別(面向對象啥的),然後是虛函數,抽象類定義和用途,JAVA中抽象類和接口的定義和差別(大學内容,忘得差不多了,最最關鍵的是多繼承),最後問道Android相關問題,四大元件什麼的,消息傳遞什麼的,我說我不會安卓,都忘了,他就直接說那就不問安卓了,就這樣吧,問了小30分,匆匆結束。

總結這次面試,我覺得應該是安卓工程師專門來面試安卓相關東西的,結果沒問到,直接就結束了,給我吓得不輕。還好我關于C++的内容回答還算得到了認可,他表示C掌握的不錯,要不然就中道崩殂了。

Triple Kill

在第二次倉促面試結束之後,第二天,也就是第二周周四,4月2号,又是一個突然的電話,開始了第三次面試。上來還是先介紹項目,根據我的陳述随機提問問題,問題内容已經記不大清楚了,但是不是很難,因為前面C/C++相關問題問的挺多了,也沒什麼花樣了,基本上是有問必答,氣氛也很融洽。就記得臨了到了我提問環節,我又問了一次後面還有幾次面試,他表示應該應該還有兩次,最多三次。我又問是不是後面還是技術面(快考糊了),他說後面應該就不會太難了,尤其是HR,不會問技術細節問題,是以放寬心。(這裡提到一句,不要被目前的輕松迷惑雙眼,還好我有一個當程式員的哥,敲打我一下,說這是個陷阱,就是為了讓我放松警惕,後面就應驗了)。

Quadra Kill

在第三次放松的面試後的第二天上午,突然一個電話殺到,内容還是有沒有時間,聊一下,本着随時恭候的态度,相約在下午。不過這個磁性聲音的面試官要求我帶着紙筆,我當場就覺的事情不那麼簡單。果然,下午兩點鐘,電話接通就是介紹題目順序,然後開始答題。第一個問題是優化動畫加載問題,大概意思就是如果在螢幕上畫五百萬個圓,有大有小,如何做到加載很快,用什麼資料結構。我第一反應就是比線性要快的就是樹,他說很接近,我就不知道如何表達了。我的意思是使用一棵樹,第一層節點表示最大的圓,其子節點表示被該圓遮擋的小圓。但是我怕出錯就麼說,很遺憾。最後的答案是森林,每棵樹根節點是一個大圓。第二道題是如何用C實作C++的類,我表示用結構體,大概意思是用單個檔案表示一個類,用結構體存儲類中的資料成員,檔案中的方法用于操作結構體,表示類的方法成員。他又問道,如何實作繼承,怎麼樣在不經過複制所有成員方法的情況下實作子類的函數調用。我回答使用函數指針表,用父類指針指向子類方法。他就說這很關鍵,算你回答對了。然後就是問答階段,我就問後面還有幾面,他回答後面就是HR了。然後就問,由于我不是很懂安卓,但是崗位需要安卓,這會不會對我造成影響,他回答表示不會,放心就好。

這一面是最揪心的一面,使用現有知識解決實際問題,很難。另外,這一面有個很重要的啟示就是要說出自己的想法,大膽一點,我就想了很多,但是沒說,第一題就算沒答上來。當然,别胡扯,萬一底兒掉了就不好了。這一面不重視具體實作,主要是思路。感覺很尴尬,好多問題都沒有答上來,慚愧啊…

Penta

沒想到面試效率這麼高,在第四次面試後的第二天就接到了HR的面試,讨論還是一樣的,先自我介紹,然後問項目,比較奇怪的地方在于,這個HR好像技術挺厲害,問了好多專業性很強的問題,包括C/C++的使用細節,當然和前面相關問題難度差不多,具體是什麼也記不住了。然後就是問在項目中遇到的最大的難題,怎麼解決的什麼收獲,這個就車輕路熟了。後來問道自己在這個問題中收獲大嗎,那當然是大了,然後又扯了一通。然後問閑暇時間經常幹嘛,答浏覽技術部落格、刷題、GitHub逛街、學點亂七八糟的東西,各類語言都有接觸,各類技術都有耳聞巴拉巴拉… 好吧其實沒那麼誇張,不過确實沒少幹這一類的東西。最後問你覺得和你周圍的人相比,自己的優勢是什麼,怎麼講? 我當時沉思了那麼幾秒鐘,就說自己程式設計能力賊猛,和室友相比,它們就是一群菜雞,和同學相比他們不上台面,除了北大清華的我服,其他的我隻用一隻手。好吧,給我一杯二鍋頭,我還能吹,當然就是那麼個意思,沒那麼誇張。強調一下自己的優勢還是很重要的。最最後問了前面幾次面試時間,我就說有長有短,有50+的,也有半個小時的(聽說時間短的都涼了,我故意沒說面的短的)。還問了我前面面我的是誰,是不是XXX,我都被面糊塗了,哪知道是誰…

還有一個重要的問題是談談你對這個崗位的認識,我說的比較多,把這個崗位需要的技術以及自己比對的技術和自己的缺陷都說了說。

然後就是清明節了,到了今天都一周多了,還沒有消息,我好難。。

下面是總結,我在這次面試之前對C/C++是有偏見的,認為它很難用在項目上,畢竟有點底層,尤其是自己不會用C寫UI什麼的。但是經過這次面試發現,面試官問的其實就是自己學的内容,很基礎的東西。是以勸告在校生,莫要妄自菲薄,也不要故意蹭什麼人工智能,大資料什麼的。一定要掌握一門知識,達到精通。如果能精通一個知識點,其他的技術要求會随之降低。在面試之前,我一直忐忑,求職要求上寫了很多,自己都達不到,完全沒有必要,隻要自己能表現的足夠優秀即可。

不管這次是否能夠上岸都有很大收獲了,隻恨自己不是大佬啊,到此結束。

補充部分:

今天下午收到了補筆試的通知,因為本人筆試0分,是以需要補試一次。這裡提醒各位路過的新人,不管會不會,一定要送出代碼,即使沒有完全通過case。我就傻乎乎的抱着甯缺勿濫的态度,成功獲得了重考機會????。筆試隻有一道題,時間一個小時,筆試連結發郵箱。

具體就是前輩打電話給我,問我什麼時候有時間,我說随時恭候。這裡再次聲明,能準備一下就準備一下吧,不要學我,後悔。我就是因為前輩說那好吧,就現在,當場開始筆試。我一骨碌從床上爬起來,打開電腦,打開連結就開始了筆試。由于筆試太過倉促,導緻我看到題目後腦袋瞬間空白,腎上腺素飙升,渾身戰栗,思維混亂,我也不知道怎麼答,莫名其妙的手抖。自己菜肯定是一方面的原因,還有就是這個機會對我太重要了,我想對所有求職者來說都是這樣,都會緊張的,程度不同而已。我還有個大毛病就是不限定時間就很跳脫,一限定時間當場,哎,都是淚。當我結束考試之後,瞬間就思路清晰了,要不是留着腦袋有用,我就想