iOS 2017年面試總結

Perfect_Dream發表於2017-12-20

各種原因之下,最近兩週一直處於面試狀態,這裡整理了最近出鏡率略高的面試題。以及個人的一些面試心得。

開始面試之前一直聽大家在說iOS行業不景氣、面試機會少、待遇差等等等等各種抱怨。聽完後確實擔憂過一段時間,怕辭職之後找不到工作,畢竟我的學歷是個硬傷。大家學歷背景都比我強,我估計會更不好找工作了。

然而實際過程還算順利。正式離職之前陸陸續續投遞過幾次簡歷,但是反向平平。17年12月8日(週五)辦理離職手續,週一正式開始在各大招聘平臺(主要是BOSS、拉鉤)投遞簡歷。週二晚上停止投遞簡歷,因為每天兩家面試的安排已經安排到週五。週三的面試結束後,很幸運的拿到三家Offer。為趕在15號之前入職,將週四週五四家公司推了兩家(對不起貴司),將剩下兩家合併到週四面試,很幸運的又拿到一家Offer,也就是我將要入職公司的Offer。

總投遞簡歷時間兩週,面試11家公司,拿到4家Offer(本來應該是5家,有一家過了四面,最後一面因為學歷問題被pass了,必須吐槽一下)。期間沒有安排BAT級別的公司。為了這次面試,做了很多的準備,在這裡總結一下。

  1. 完善簡歷(用時兩天,以下內容無優先順序區分)
    • 簡歷細節
    • 簡歷合理性
    • 簡歷模組分佈
    • 簡歷乾淨、整潔程度
    • 模組內容
    • 模組優先順序
    • 模組內容優先順序
    • 模組內容可閱讀性
    • 簡歷亮點(我覺得這個很重要)

我用了兩天時間完善簡歷。期間在簡書、知乎、百度等各種地方找簡歷模板、模範簡歷。知乎上有各種資深HR回答的“一份優秀簡歷需要注意的內容”。找工作第一關就是HR,所以我覺得簡歷是最重要的,需要好好準備一下。

  1. 技術儲備(以下內容無優先順序區分)
    • 刷歷年面試題
    • 重新整理知識新內容
    • 刷基礎知識書籍、文件
    • 刷各位大神部落格
    • 刷各大iOS論壇

技術儲備這部分我覺得是最辛苦的部分,腦海裡每天要被一大堆新技術舊技術各種衝擊,精神一直處於緊繃狀態。晚上睡覺都是各種面試題、技術原理、技術實現細節等等。 技術儲備我覺得不一定需要把所有內容都背到腦子裡,只要在腦海裡形成一個大體的邏輯就可以。當面試官問到的時候把知道的說出來就好(切記不要猜)。 講真直播方面的內容我到現在都是一知半解的,以前工作一直沒有涉及到直播方面。而且直播相關知識實在是太多了!

  1. 面試準備(以下內容無優先順序區分)
    • 公司簡介
    • 公司專案
    • 公司創立時間
    • 公司發展歷程
    • 公司處於什麼階段

面試準備是很重要的,這部分的準備決定了面試時候的主導權在誰手裡! 每個公司都有對應的發展歷程,不同的歷程決定了技術架構的不同,不同的技術架構決定了面試官的問題的技術深度。你去和做直播公司的面試官聊直播就是找虐(如果你想入職!你要記住即使面試官錯了!那也是對的!)。這邊有個小技巧,如果你的回答和麵試官給你解釋的內容不一樣,而且你也不覺得他說的是對的,請記住!少說一點!不要長篇大論的給面試官解釋,在他解釋的時候切其中的某個知識點一下就行。總之就是請不要把你的位置放到面試官之上,哪怕你倆其實是對等的。 如果在你檢視公司專案的時候發現,專案的知識點剛好是你完全不瞭解的,請直接說我不會!不要給面試官在你面前秀知識的機會!不然他會面完你轉身和HR說:“這個人啊,呵呵,就那樣吧”! 最最重要的一點!!!去面試之前千萬記得在拉鉤上看一下公司的面試評論!!!例如:XX善康XXXX公司,我要點你!我要曝光你!太生氣了!我用了一個半小時跑過去,面試我5分鐘。而且面試官嘴裡居然會說出:“就這些?”,“還有嗎?”,“完了吧?”等引人深思的句子。全程玩手機什麼的我就不說了,嘁,為了它我推掉一個BAT的公司呢~

以下為出鏡率較高的面試題,暫時列出一個大概,後續有時間會補上衍生問題和答案。

原理類

  1. 響應者機制
  2. 訊息傳遞機制
  3. 介紹一下catagory
  4. block的本質是什麼
  5. JSON解析快慢原因
  6. __bridge 是什麼意思
  7. assign和weak的區別
  8. runtime是如何工作的
  9. runloop和執行緒的關係
  10. 長連線在TCP的哪一層
  11. 使用drawRect有什麼影響
  12. nonatomic和atomic的區別
  13. oc中new和alloc/init的區別
  14. nonatomic和atomic的區別
  15. NSDictionary的本質是什麼
  16. UIView和CALayer是啥關係
  17. ARC和MRC的區別,ARC的實現
  18. unrecognized selector是如何出現的
  19. JSON和NSArray/NSDictionary和互轉
  20. 簡述UIButton和UITableView的繼承關係
  21. @dynamic和@synthesize關鍵字是用來幹什麼的
  22. 堆疊的區別、日常的開發中哪些地方會涉及到堆疊
  23. presentView 的釋放時機 rootVC切換的時候釋放嗎
  24. __strong和__weak修飾詞的作用是什麼__autoreleasing修飾詞是幹什麼的
  25. __weak 所屬的hash表裡 存的鍵值都是什麼,被修飾的屬性會在什麼時候釋放
  26. 能否向編譯後得到的類中增加例項變數?能否向執行時建立的類中新增例項變數?為什麼?

實戰類

  1. 螢幕適配
  2. 實現一個單例
  3. 實現retain和copy
  4. 清空NSArray中的元素
  5. 舉幾個造成死鎖的例子
  6. 執行緒通訊和執行緒安全問題
  7. 資料持久化的幾種方案及優缺點
  8. 微信支付流程、支付寶支付流程
  9. 迴圈引用 什麼時候用到strongSelf 舉例
  10. 講講你用Instrument優化動畫效能的經歷吧
  11. 實現一個六邊形Button,要求邊框之外區域不可點
  12. storyBoard名為Personal中多個頁面,初始化其中名為MyCtrl的頁面如何實現

架構類

  1. 介紹一下RN
  2. 介紹一下元件化
  3. 介紹一下響應式程式設計
  4. 做過哪些方面的效能優化
  5. 做過哪些方面的記憶體優化
  6. 如何設計一個AFNetWoring
  7. 如何考慮一個APP框架的搭建
  8. APP個人資訊保安性如何保證
  9. MVC/MVVM/MVP區別及優缺點
  10. 如何設計一個存有公司內部員工資訊的APP(假設公司有10萬以上員工)
  11. 如何看待storyBoard、xib和純程式碼開發,說一下優缺點,你負責專案開發會採用哪種形式

音視訊類

  1. 流媒體
  2. 視訊播放
  3. 邊下邊播
  4. 直播相關知識

即時通訊類

  1. socket、XMPP是如何實現IM的,具體流程
  2. JSON串的儲存模式是什麼
  3. XML和JSON的優缺點
  4. 除了socket和XMPP還有其他實現IM的方式嗎

JS與原生互動類

  1. JS互動使用過哪種方式
  2. WKWebImage和UIWebImage的卻別及優缺點
  3. AFNetWorking和SDWebImage實現原理,SDWebImage核心快取理念

演算法類

  1. 隨便寫一個排序演算法
  2. 寫一個取10000以內質數演算法
  3. 實現找到兩個向教練表的倒數第n個節點(可以用虛擬碼)
  4. 字串按照單詞反轉,例“Objective-C Hello Word!”,結果“word! Hello Objective-C”

功能類

  1. 藍芽有幾種通訊協議
  2. 說一下藍芽的實現

其他類

  1. 職業規劃
  2. 展示專案,介紹專案難點,亮點,專案哪些模組是你負責的
  3. 工作期間遇到有意思的問題或者比較難的問題
  4. 工作期間有沒有讓你覺得很有成就感的事情
  5. 做過的最有技術含量的東西
  6. 有沒有做過看起來特別炫的東西

神經病類

這個問題不是我遇到的,是我一個朋友去面試被問到,歡迎各路大神討論。

  1. 你有朋友嗎?
  2. 如果你和你朋友一起去犯罪,很不幸你被抓住了,你會把你的朋友供出來嗎?

程式碼類

void tet1(){
	int a = 10;
	void (^block) = ^{
		NSLog(@“a is %d”, a);
	}
	a = 20;
	block();
}
輸出結果:
複製程式碼
main() {
	int a[5] = {1,2,3,4,5};
	int *ptr = (int *)(&a+1);
	printf(“%d, %d”,*(a+1),*(ptr+1));
}
輸出結果:
複製程式碼
NSLog(@"1");
dispatch_sync(dispatch_get_main_queue(), ^{
    NSLog(@"2");
});
NSLog(@"3");
輸出順序:
複製程式碼

結束,預祝各位找工作順序~



有志者、事竟成,破釜沉舟,百二秦關終屬楚;

苦心人、天不負,臥薪嚐膽,三千越甲可吞吳.

相關文章