BAT Offer其實可以這樣拿

發表於2016-04-22

想起去年這個時候,我還在努力地去爭取阿里巴巴的實習offer,轉眼間已經到了快畢業的時間了,時間真快,真是一把殺豬刀。經歷過去年阿里“擁抱變化”之後,懷著悲傷的心情,打著“我想去外面看看”的心態面試著一家又一家的企業。最終拿了很多offer,包括百度、騰訊,還有曾經拋棄過我的阿里。

 

BAT

BAT,在國內,幾乎是每個計算機學子的夢想之地,而如何拿到它們的offer,則是眾多學子想知道的。而我想從自己的經歷出發,說一些自己的經驗,讓能看到這篇文章的同學多一些信心,也多一分從容,也就達到寫這篇文章的作用了。

我從下面幾個角度來剖析很多同學關心的問題:

1.該學習哪些基礎知識?

2.面試前該怎麼臨時抱佛腳?

3.我已經大三了,是不是來不及在秋招前學習了?

4.如何能拿到Special Offer

5.淺談我面試中的經歷


該學習哪些基礎知識?

我推薦iOS開發者必學的幾本書:

Operating System Concepts 9th Edition

C++ Primer Plus

Computer Networking A Top-Down Approach 5th Edition

ADTs Data Structures and Problem Solving with C++

資料庫原理

首先,你必須得學一門語言,而與OC相關的除了C就是C++了,而我選擇了C++,因為和OC一樣同為物件導向程式設計。學了C++之後,你對指標,記憶體管理、繼承、多型性等等才會有更深的理解,而這卻是OC會用到的。

作業系統更是要學了,iOS基於Unix,而你如果不瞭解Unix,在你想要更加深入瞭解iOS的時候,也許你就會很迷惘了。比如,你知道虛擬記憶體麼,執行緒跟程式的區別,記憶體的分片,多執行緒的標準(POSIX threads等),CPU的輪詢機制,鎖等,而這也常常是筆試、面試的內容。

計算機網路也是同理,做一個app,你必然要知道http的請求是怎麼發出來的吧?那麼TCP握手你也要了解,http報文格式?等等這些一系列相關的計算機網路知識,肯定也是要學的。

再說資料結構和演算法,這更是學計算機的基礎了,如果連二叉樹,堆,圖,連結串列,陣列這些基本的資料結構都不瞭解的話,那筆試肯定是過不了的。而演算法,雖然對於iOS開發者來說要求沒這麼高,但是也要知道一點。

資料庫也很重要,因為我們之後的開發會用到它,如果你會sql語句,絕對是你面試的加分項。

以上是計算機基礎。

而對於iOS開發而言,你需要學習什麼呢?

ObjC是一定要學的,而Swift是可選的。在大公司裡,還是以ObjC作為主要的開發語言,所以你懂得。

UIkit裡面常用的控制元件你要知道怎麼用,比如tableView,label,button等等。

NSURLConnection&&NSURLSession

GCD&&NSOperation相關的類

block原理,可以看我寫的另一篇文章,點這

記憶體管理

runloop

runtime

ARC&&MRC

等等


面試前該怎麼臨時抱佛腳?

首先要有自信,相信自己是很出色的,不要膽怯。

既然你是抱著拿BAT的心態去的,那就去刷往年的BAT筆試題吧。

然後多去網上看看BAT的面經,我覺得這就足夠了,記住,保持良好的心態。


我已經大三了,是不是來不及在秋招前學習了?

來得及,來得及,來得及,重要的事講三遍。

算算時間,現在4月中旬,9月秋招,中途5個月,你每天像高考一樣花個7、8個小時去系統性地學習第一點提到的東西,我覺得時間是完全夠的。只要你有恆心,結果肯定會是好的。如果時間真的來不及,對於基礎知識可以先簡單瞭解下,重點學習iOS相關知識點。


如何能拿到Special Offer

往往到了一定水平之後,許多公司會向你伸出他們的橄欖枝,而這也是你拿Special Offer的資本。

我認為最重要的是要有全棧的視角並且在某一領域具有足夠的深度。

這句話該怎麼理解呢?

試想一下,任何一家公司,憑什麼給你相對於其他應屆生更高的價格?

你所需要達到的是成為滿足這家公司需要的人才,而這往往是社招的目的。那麼問題就簡單了,你要達到工作好幾年的開發者的水平,這樣才能拿到Special Offer。

以我自己的經歷來說,提早出去實習,獲得更多的工作經驗,則是最好的辦法。

因為在工作中你才有機會去學習除iOS之外的東西,並且只有實踐才能讓你在iOS道路上踩過坑,獲取難能可貴的經驗。

舉個很簡單的例子,一個二面的面試官,他也許是一個業務線的老闆,他不關心你是安卓還是iOS,當他問你,你如何實現push?

如果你只回答出你作為iOS開發者所知道的APNS,那麼你就只能拿到批發價Offer了。

但是此時你卻回答APNS之外,還回答出安卓的push機制,更牽涉到保護push程式,程式復活等等相關內容,試想一下,面試官是不是會露出滿意的笑容呢。

如果此時你在回答出服務端對於APNS的處理,拿到蘋果的p12,完成非對稱加密驗證,並說出蘋果CA證書原理。你猜面試官是什麼樣的表情呢?


淺談我面試中的經歷

先談談實習面試經歷吧,實習面試我只面了阿里巴巴。

筆試

參加線上筆試,前面是一堆考察計算機基礎的選擇題(讀了上面提到的書,肯定沒問題的),夾雜一些ObjC語法。大題目的話,就考察怎麼優化app,怎麼讓啟動時間變短類似,具體我忘了,時間有點久了。

一面

一面問了tableview,cell的複用,懶載入,GCD&&NSOperation,autolayout等等,基本上都是很基礎的iOS知識。

二面

沒什麼可說的,就是問你做過的專案,問問你遇到的坑,怎麼解決。

三面

HR面就比較隨便了,就聊聊人生。

在談談正式秋招面試經歷

首先談談百度:

一面

我印象很深刻是一個妹子面我的。

iOS響應鏈

SDWebImage原理

AFNetworking原理

tableview相關

二面

二面就把我面的想哭了。

AutoreleasePool原理,什麼時候釋放

Runloop是什麼,是不是會自動建立,mode,source

Runtime,如何用runtime進行hook,hotpatch就是利用runtime來做的

然後就是HR面了

騰訊:

騰訊是最蛋疼的,我準備了好久的iOS的知識點,結果一個都沒問,全是問計算機基礎的。

一面

計算機網路五層模型是哪五層

http協議相關

有1000億個數字,在單機上對它進行排序

二面

手寫氣泡排序程式碼

如何統計一個城市的井蓋數,方法越多越好

兩個水桶,一個3L,一個5L,然後問能組裝成幾L的水

技術面結束了

阿里:

前文提到,阿里“擁抱變化”,集團由於人才調整,沒有HC,於是我離開了阿里,後來阿里又給我發了Offer。


總結:

其實BAT Offer也沒有很難,只要你想拿,很想拿,很想很想拿,那麼,它一定會向你伸出橄欖枝的!

歡迎大家關注微博@kuailejim

相關文章