1. 程式人生 > >一年iOS工作經驗,如何拿下百度、美團、快手等Offer(附面試題)

一年iOS工作經驗,如何拿下百度、美團、快手等Offer(附面試題)

前言:

先簡單說說我最近的面試經歷吧。面試的公司很多,大部分最後都能得到令人滿意的結果,我將這些體會記錄下來,面了這麼多公司,如果不留下什麼,那豈不是太浪費了。對於我來說,這也是一次自我檢查,在這次面試中總結經驗,認清自己,同時希望這些對即將換工作或者打算看看其他機會的你有一些幫助。。

其實做為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流群:638302184,不管你是小白還是大牛歡迎入駐,大家一起交流學習


以下的部分有具體的面試經歷,也有自己的一些總結面試必備技能和自己的一些感想。

為何離開小米?

離開小米的主要原因是:我的職業規劃與小米給我的規劃不相符,還有就是流程化的東西太繁瑣,自己有一些不適應,所以選擇離開了小米。非常感謝我周總(直接領導)和冰冰(師傅),在小米的這一年中給予我非常多的幫助,在我跟領導溝通要離開的想法時,領導開誠佈公的跟我聊了很多,最終我還是下定決定要離開小米,領導建議我先去面試一些公司,等找到合適的再走,裸辭的話心態上都會有一些問題,這樣的領導真是沒話說了,在小米很多領導都是不放人的,很多都把員工的下一家拖黃了才放人。在這一年獲得的成績:

1、二等獎轉正績效是A

2、年終績效 A+,獲得明日之星

準備

其實我很早就開始準備了,準確來說也不算準備,只是一直在總結iOS相關方面的知識,因為在華為雖然工作有時候比較多,但是還是有大把時間可以自己學習一些感興趣的方向。從過完年回來,我就有計劃的複習和總結了一些知識。

  看過的書籍,這裡並不是泛泛的讀一遍,而是詳細理解了大多數內容,通俗一點就是可以用自己的話將相應的知識解讀出      來 。《Android開發藝術探索》(這本書真心不錯,我反覆讀了4、5遍)、《iOS群英傳》(比較接近開發使用,因為做過一些應用開發,讀起來還是比較簡單的,讀了2遍)、《劍指offer》(感覺面試中碰到的演算法,70%都能找到相應的題目,保證所有的題都可以手寫出來就行)。4個月精讀了以上書籍,還有其他的都是簡單瞭解,這裡就不列舉了,讀完這些書,應該可以讓你上一個層次吧(媽媽再也不用擔心我面試啦…)。

刷題,主要是LeetCode(大概刷了300道題左右,每天3-6道,堅持下來,需要多複習,因為很多題過一段時間會忘記),還有看過一些牛課網。

看別人的面試經驗,主要在網上,這裡我列舉兩個比較好的。

             1、  iOS客戶端面試題集錦

              2、  iOS阿里面試題錦集

投遞簡歷

一份好的簡歷是非常有必要的,需要突出你的重點和閃光點,具體怎麼寫簡歷可以參考

CodeKK說簡歷

有了一份好簡歷,接下來就是投遞簡歷,一般是:拉鉤+BOSS直聘+內推,從我這次面試機會來看,三者比例是2:2:1,也可能我工作經驗還不到一年,內推滴滴、阿里和騰訊直接就把我的簡歷刷掉了,但是內推也是具體到某個部門,如果被刷掉也不要灰心,現在大公司基本上各個部門都有自己的hr,可以在拉頭和BOSS上多投遞一些,萬一其他部門看中你呢?

面試經歷

這裡我僅僅記錄一些問過的題目(能記住的),答案我就不寫出來,基本上都可以在網上找到相應的答案。

一面

1、iOS一些優化方案

2、最常用的版本控制工具是什麼,能大概講講原理麼

3、UNIX常用命令

4、c語言在iOS開發中的重要性

5、原始碼管理工具的作用

二面

二面面試官是Eva?反正應該不是做iOS的,iOS的相關知識問的也不多,大多是專案上的東西。

atomic的多執行緒安全

聊專案,都具體做了什麼。

nonatomic在自己管理記憶體的環境

三面

應該是Eva吧,主要了解一些個人的情況,以及一些專案,最後問了期望的薪資,然後當場就給了offer。

畢竟1年多沒有面試了,第一場面試還是給我了很大的自信,也知道現在自己大概能要多少工資是合適的,所以大佬們準備跳槽的時候,最好先面幾家小公司,這些還是一個很不錯的公司,整體的辦公環境挺好的,現在也處於盈利狀態,在教育類的app中也排的上名次。

快手

快手就在五道口地鐵站出口不遠地方,能看到很顯眼的LOGO,看上去很霸氣的樣子,但是當我進入到快手前臺的時候,連一個標示符都沒有, 一度以為自己走進了假快手,好吧,我是來面試,這些都不重要,接下來接待的人員把我領進了一個小屋裡,等待面試的開始。

一面

面試官是一個很fashion的人,是從小米核心部門過來的,是iOS小組的領導。

問了關於資料庫的一些問題,SQLite的相關操作,沒辦法,我在華為唯一一個做的和iOS相關的專案,但是不太擅長資料庫。

網路相關的問題,網路的五層模型,又問了TCP和TIP,還有iOS相關的長連線,這裡問的比較深。

開始iOS相關的知識,視覺控制器的生命週期(view的生命週期)記憶體告急的處理(手動釋放不可見檢視的記憶體和成員變數)

第一面這就算過關了等待二面。

二面

問了專案相關的問題,這部分根據自己的專案經驗,由於大家的經驗都不同,這裡我就不詳細說了。

設定一個場景,怎麼去實現相應的功能,因為快手這個部門想做社交,因此這裡是問我是如何實現微信的聯絡人頁面(包括與服務端有什麼樣的互動)

最後也是一個演算法,寫出所有陣列的子序列

二面面試官是這個組的Eva,跟我講了現在這個組的發展情況和快手現在的情況,由於快手成長很快,所以不能僅僅依靠一個APP,還需要在其他方面進行一些嘗試,而這個組的任務就是在一些方面做一些嘗試,大概就是這個樣子。

二面也順利通過,接下來就是HR面了,這時候正好是12點,他們要去吃飯,不過快手是提供午餐和晚餐的,第一個面試官帶給我一份飯,還不錯,後來HR跟我說,現在只是過渡時期,後面午餐和晚餐會改成自助餐的形式。

三面

HR上來很親切,問了我一些面試的情況,難不難之類的,然後又聊了聊我大學和研究生情況,我只想說我“too simple , too naive “,大概瞭解我後,只跟我聊我的不足,以此來壓低我期望的薪水。說了一下薪資期望,加了微信,讓我回去等待,說發offer大概是2周時間,因為需要走各種審批流程,讓我不要著急。

快手是一個很年輕的公司,技術還是需要一定的積累,希望不要像小咖秀一樣曇花一現。

美團外賣

一面

1、簡歷上寫的專案問了一遍,然後開始問知識點。

2、volley的原始碼,在圖片快取部分討論了挺長時間,http中快取機制,

3、視覺控制器的生命週期

4、資料庫

5、多執行緒(NSTread、NSOPeration、GCDA+block)

6、http協議get post的區別

7、手機適配一些方案

8、真機除錯、專案上線注意事項

9、靜態方法是否能被重寫

這些大概聊了1個半小時,開始的時候還有些緊張,慢慢聊開了,就好多了,面試官的語速有點快,老是需要面試官重複一遍,我也不經意間語速也變快了,不過能看出來面試官還是很厲害的。

二面

2次握手和3次揮手的原因,以及為什麼需要這樣做。

1、id和nill代表什麼(nill和NULL的區別)

2、向一個nill物件傳送訊息會發生什麼?

3、程序與執行緒區別

5、寫一個NSString類的實現

6、http中的同步和非同步

聊了一些專案上做的東西,問了問職業規劃

由於二面面試官不是做iOS,本來面試我的人臨時開會去了,所以這一輪面試沒怎麼問iOS相關知識,不過二面面試官一直是微笑,所以這一輪很輕鬆,更像是一起討論問題。

面試完已經是下午4:30了,由於面試當天是星期五,而週五美團的會議比較多,所以等了會,二面面試官說三面面試官在開會,面試另約時間,我還是說這次一次面試完吧,這一等就等了2個半小時,期間hr跟我說三面面試官是個大牛。

三面

我認為iOS做的優秀的幾個地方,然後又根據我說的問了問比較深入問題。

1、iOS是如何進行資源管理的。

2、Python比較重要的幾個特性

3、網路五層結構,每一層協議,由於我網路不是很好,還問了一些其他的問題(例如MAC地址和ip地址的區別等)。

為什麼離開原來公司,以及職業規劃,然後因為面試完大概就晚上8點了,就先讓我回去,下週讓HR跟我聯絡,我想這是應該通過面試了吧。

美團技術還是很厲害的,從面試官的水平就可以看出來,尤其是外賣核心部門,辦公環境是不錯,但是感覺就是有點亂,不知道是不是因為今天面試的人很多,基本上一直有很多人來回走動,有一些嘈雜。

百度

夢寐以求的百度終於找我來面試了,之前不管是內推還是網路上投遞都被拒絕了,原因是我工作不到一年,沒辦法誰讓馬雲爸爸太厲害,我投遞的是杭州的天貓,是做虛擬現實的小組(剛聽到這個名字感覺和自己不太相符),這是我到面試完後,才知道的,面試官也跟我說iOS上的需求可能不會很多,更多的是AR技術在iOS上的應用,包含OpenGL等技術。

一面

詢問了我部落格上寫的一些東西,從專案立意談起,到設計,再到詳細的技術實現,可謂是面面俱到,由於自己寫的部落格還是比較熟悉,回答的還不錯。

1、GLSurfaceView的相關知識,OpenGL,Shader,繪製流程。

2、詢問當前做的專案,以及到具體的實現和優化。

3、多程序間的通訊,Binder機制。

4、詢問看過哪些框架原始碼,EventBus,Volley講了一下。

大概聊了一個小時左右,聊得還可以,基本上都回答上了,中間給了我很多建議,不懂的地方,也會仔細跟我講解一番,其實有一半的時間都是跟我聊產品,為什麼這個產品好,怎樣做才能迎合市場,然後怎麼設計整個產品等,感覺跟我現在水平不是一個層次的,果然,第二天就給我發了一封郵件,說我現在暫時不太合適投遞的崗位。

面試結果

除了阿里淘寶外,其他的公司基本都拿到offer,這段時間把華為這邊的工作都交接完,休息幾天,如果有空的話回家停幾天。

最後總結

自己對於網際網路有一些小小的見解:隨著資本的冷卻,整個網際網路市場也逐漸的冷靜下來。iOS應用開發從一開始能說幾個四大元件的名詞,能隨便寫個監聽事件,就能拿到高達上萬的月薪的時代了。歸根到底並不是工作難找了,而是iOS應用開發工程師這個職位已經趨於正常,再也不是沒什麼技術也能拿高工資的香餑餑。當然這個也不是絕對的,對於中高階的開發人員來說,市場還是比較缺少的,尤其是知名企業對於招聘員工來說,不僅要求有過硬的技術,還要求有高素質,好的教育背景等等。總的來說,高工資可以給你,但是前提條件是你要足夠優秀,或者說讓面試官覺得你很優秀。

其實面試過程就是一個把你自己推銷給別人的過程,對於我們(畢業不久的同學,因為我畢業不到一年)來說就是要讓面試官感覺你技術好,有培養價值。感慨有點多了,還是來點乾貨吧,大概列舉一下每一輪面試的大概範圍和深度,但是也不是絕對的,還是要看具體情況。

筆試

對於社招的同學來說,基本上不需要筆試,但是也有公司是需要的,例如 今日頭條和網易都有筆試。筆試都是比較基礎的一些知識,Python、iOS等方面的,一般不會有網路,計算機等方面的筆試,一般情況下大家都能答出來。

一、二面

近一段時間的面試經歷來說,一、二面的問題沒有什麼很大的區別(公司基本上都有3面技術面,但是也有例外,我在美團就是2面技術面。),基本上都是一線開發人員。主要考察你是否有牢固的基礎知識和是否在平常開發中能熟練使用。

是否能講解清楚你所做的專案,以及使用到的相關知識。

1、iOS基礎知識

2、Python基礎知識,大概是多執行緒,執行緒安全,集合類,JVM,類相關知識等。

3、iOS一些原始碼的閱讀

4、優秀的第三方框架原始碼閱讀

三、四面

一般公司都是三輪技術面,但是也有四輪技術面的,不過不多。很多公司基本上每一輪面試官都會記錄他所詢問的問題,以便給下一輪面試官作參考,還有就是避免對同一個知識點多次詢問。所以到了這輪面試,基本上不會再詢問比較基礎的知識。

會從兩個方面考察,

1、廣度:比較新的技術(多執行緒,外掛化等),http協議,資料庫,iOS(一般不會詢問之前面試官問過的問題)。

2、深度:一般會通過1或2個問題來考察,例如:專案中的貢獻,所做的優化。設計能力,基本上不多,這個要看面試的崗位,因為我這裡面試的只是高階開發,並不是架構。

工作中的亮點和突出。

HR面

基本上到了這輪,你就算通過面試了。hr會詢問一些你的經歷,最主要的還是和你商定薪資待遇。在這輪,大家應該要對自己的薪資水平有一個大體的瞭解,一般都是在原來的工資基礎上增長20%~30%的樣子,當然,如果你在面試過程中表現非常優秀,也可以不受這個限制。當然如果公司誠心要你,就算你要的工資過高,hr也會委婉的告訴你,不會直接把你pass。

有一句話叫做三人行必有我師,其實做為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流群:638302184,不管你是小白還是大牛歡迎入駐,大家一起交流學習,話糙理不糙,互相學習,共同進步,一起加油吧。

文章來源於網路,如有侵權,請聯絡小編刪除。