目前經濟增速的放緩,處處都在鼓吹互聯網發展進入下半場。今年跳槽季的遭遇想必你們也是感覺到了一絲寒意。筆者有一個朋友在阿里工做,今年3月底開始請他幫忙內推,也許是阿里的大前端戰略,也許真的是互聯網的寒意。對於一個三年的iOSer上海這邊一直沒有合適的崗位可推,即使是有也是招P7級別,通通被拒的命運。我也是放棄了但願,開始找其它渠道推銷本身,不過最終仍是找到了心儀的工做,如今終於能夠作一下總結了。前端
前期面試仍是頗有激情的,每次面試完畢都會回憶並記錄,總結,再學習。其實這個過程也是一個很是有效的學習過程。不過代價有點大,你可能會失去一次機會。最好的方式,仍是作好充足的準備。我在說什麼?好吧,好像是一些感慨之類的。能體會到的讀者,就請點個贊吧,哈哈!沒體會到的讀者就當沒看到吧,反正僅僅是感慨而已,哈哈嗝!git
仍是簡單再說下,這段時間的經歷吧。首先這段經歷是從老司機週報開始的,由於以前就和週報的峯哥有些聯繫,因此看到週報的內推時,也就天然而然的聯繫峯哥內推了。首先就是字節跳動,不過簡歷篩選都沒經過。幫忙內推的曾鳴大佬說出了緣由:github
沒辦法,確實沒亮點。以後峯哥也是幫忙指導了簡歷,我也儘可能按照STAR法則修改了簡歷,經過其餘渠道投遞了字節跳動不過也都沒有機會。多是有失敗記錄,半年或三個月內都不能經過篩選了吧。後來掘金的內推羣有位前百度、美團的現頭條大佬說他內推的成功率高,還不受以前簡歷鎖定影響,投遞以後仍然沒有消息。不事後來北京字節跳動的HR聯繫了我,問我有沒有興趣去北京,我立即來了個沒興趣。通完電話纔想到即使是不去也應該增長一下遠程面試經驗呀...這讓我想到以前看到的一篇文章說上海的字節跳動比北京門檻高,如今來看確實如此了。面試
接下來就是阿里的內推了。朋友在口碑作的前端,在連續一週多都沒有合適投遞崗位的狀況下,朋友給我分析了一下緣由。口碑大概有2000多人,前端有40~50人,iOS只有6我的。阿里的大前端戰略和所謂的不裁員策略,也致使不少轉崗。因此阿里目前在招的大可能是P7級別的專家,又是一個迫不得已。算法
在這兩家開始遭遇不順時,我就已經開始了招聘網站的簡歷投遞。接下來就進入了面試,回憶記錄,總結,學習研究的輪迴,直到終於拿到了心儀的工做。編程
知識總結我是經過MindNode處理的,有些詳細,有些僅僅一提,可是都能從看到的知識點展開回答。每次看一遍心裏就複述一遍,基本都背下來了。固然這只是部分知識,還有不少沒有總結,之後我也會繼續爲它添磚加瓦的。若是有朋友想要加入的話我很是歡迎,你們也能夠本身下載自行添加知識點。或者本身建立都行,我只是感受以這種方式完善知識體系很不錯。固然這裏不能作詳細展開,因此最好也有適合本身的筆記總結。例如:我使用印象筆記收藏相關模塊的高質量文章做爲相關知識點的擴展。json
這裏放出源文件的地址:iOS面試,若是沒有安裝MindNode能夠到應用商店安裝,或者這裏精品MAC應用分享(我的最愛)swift
關於算法練習咱們都會想到去LeetCode刷題。雖然LeetCode支持Swift答題,可是讓人不爽的是有些處理字符串的題,用Swift做答會超時,因此筆者在練習時主要使用C和Swift做答。有時也會使用OC先理清思路,再使用其餘語言進行做答。畢竟有些題須要邊寫邊想,還有些須要進行調試才行。因此這也是用Playground不方便的地方,它不能進行斷點調試。有了這些前提我就在想怎麼才能使用如今工具,更好的進行算法題的練習呢?我想到了Xcode的單元測試,咱們知道在繼承自XCTestCase
的類中實現以test
爲前綴的方法時,該方法前會生成一個菱形指示符,鼠標置於其上時會顯示運行按鈕,咱們就能夠經過該按鈕運行測試用例,同時還支持斷點調試。例以下圖中的判斷是否爲迴文數一題:設計模式
須要使用Swift解答也採用一樣的策略,就我的來講,這麼練題實在是太爽了(LeetCode)。數組
固然完善知識體系看書也是必須的,例如圖解HTTP、劍指offer、Effective Objective-C 2.0、Objective-C高級編程等你們都推薦到爛的書都是必須的,可是技術也是有時效性的。因此例如高級編程中的一些知識,就須要在它指導的思想上實踐出目前的實現原理。
因此請記住兩點:基礎必定要紮實,原理必定要理解。
接下來貼出一些面試題,前面也說道前期很認真的記錄,學習。面了一段時間這些問題很熟悉了,也就沒有詳細記錄了。你們瞭解一下主要方向就能夠了,畢竟不少問題會從你的簡歷中提問:
小莫運動
- (void)testReserveStr { NSLog(@"--%@", [self func:@"Antyum"]); } - (NSString *)func:(NSString *)str { return str.length ? [NSString stringWithFormat:@"%@%@",[self func:[str substringFromIndex:1]],[str substringToIndex:1]] : @""; }
小紅書
電話
說一下你作過的東西
對鏈表和數組的認識,應用場景
weak和assign的區別
assign能夠修飾OC對象嗎
weak置爲nil是如何實現的
GCD中的Block用到的屬性是否須要__weak修飾
Block中對數組增刪怎麼操做
+load和+initilaze在分類,父類,子類和main函數的調用順序
+load加載順序:父類,子類,分類。若是多個分類會按照PBXSourcesBuildPhase中順序逐個調用。
main()
+initialize加載順序:首先有分類時,最後被load的分類會覆蓋類的該方法。而後先父類,再子類,直到第一次被調用的類。
爲何要把+load中的邏輯放到+initilize
...
浦發
愛回收
類型 | 描述 |
---|---|
數字型(Number) | JavaScript 中的雙精度浮點型格式 |
字符串型(String) | 雙引號包裹的 Unicode 字符和反斜槓轉義字符 |
布爾型(Boolean) | true 或 false |
數組(Array) | 有序的值序列 |
值(Value) | 能夠是字符串,數字,true 或 false,null 等等 |
對象(Object) | 無序的鍵:值對集合 |
空格(Whitespace) | 可用於任意符號對之間 |
null | 空 |
京東
攜程
匯正財經
攜程
關於面試套路,我這邊沒有特別多的方法。目前主要有一個方法吧,化被動爲主動。這個怎麼講呢?首先咱們看一下下面的自我介紹:
幾乎全部聽完這個自我介紹的面試問題都是:那你說的那些認識錯誤的問題都有哪些呢?這時就是你主動表現你深刻研究過知識點的時候了。
當你被問到一個不會的問題時,不要含糊回答,直接說明你對這個問題認識不深,或者不太清楚。可是我知道...(回答與之相關的知識)
再有能夠思考幾個經常使用問題,例如:你認爲工做中遇到過印象最深的問題?你還有哪些能夠介紹的亮點?你有什麼問題想問我嗎?這些問題幾乎每次都會被問到,提早思考主動準備仍是很是有必要的。
更多的關於這方面的總結推薦你們能夠看下面兩篇文章:
百度/阿里/網易 iOS 面經(已入職)
大三iOSer春招總結(騰訊螞蟻頭條京東網易)
文章寫到這裏也就到了該結束的時候了,總之一句話機會留給有準備的人。面試題持續整理更新中,須要拿到第一手大廠面試題及答案文檔能夠加入iOS技術交流羣,羣號:789143298 !結實人脈、討論技術你想要的這裏都有!