1. 程式人生 > >iOS面試之道

iOS面試之道

117道面試題融入作者對問題本質的深刻理解和多年工作經驗的沉澱
助你得到理想的Offer
不僅是面試指南
也是構建iOS知識體系的基本框架

“你會反轉二叉樹嗎?不會?那麼對不起……”
當聞名遐邇,編寫了幾乎是業界標準的Homebrew的作者Max Howell在面試時被 Google 以演算法題拒絕後,我不禁開始重新思考,面試為什麼這麼重要,在面試中有沒有什麼能幫助我們遂願的必殺技或者小竅門。Max Howell是幸運的,因為他有著社群內無與倫比的聲望和漂亮的專案履歷,Google將這扇門關上後,Apple 又為他開了一扇窗。但是,對可能資質平平,似乎也沒有什麼閃光點的我們來說,要怎麼做才能求到一個自己心儀已久的職位,其實是一件非常值得細細琢磨一番的事情。

面試幾乎是每個社會人一生必然會經歷幾次的社會活動,但是,由於它發生的頻率不高,很容易被人忽視。我在面試別人時,最大的感受就是有不少應聘者其實並沒有做好萬全的準備。很多時候,應聘者雖然可能十分優秀,但在面試時總感覺就差臨門一腳:要麼是因為面試禮儀不足,讓人覺得無法合作;要麼是因為交流時過於緊張,導致理解偏差;要麼是在做面試題時因為缺乏經驗,無法很快抓住問題本質。這些往往都是準備不足,如果由於這樣的原因導致面試失敗,就非常可惜了。

本書的兩位作者分別是中美兩國知名“大廠”的高階從業人員,有豐富的面試(或面試別人)經驗。他們合作編寫了本書,想要解決的就是上面提到的問題。書中內容涵蓋廣泛:從面試前的職位調研、簡歷準備,到具體的演算法設計、iOS開發中的常見問題,再到最後的面試總結、工作的挑選,都有所涉及。在保證覆蓋面的前提下,本書對一些重點進行了深入講解:比如,對常見演算法給出了具體的參考實現,對常見的知識點誤用和考點進行了深入的原理分析。另外,本書中很多問題都帶有關鍵字,通過查詢書中的關鍵字,讀者可以概覽相關知識,並迅速建立關於這個關鍵字的知識網路。作者結合自己的行業經驗和對行業現狀的分析,不僅嚮應聘者提出了問題,更一一詳盡地給出瞭解決的方式和建議,可謂字字珠璣,讓人相見恨晚。

通過閱讀本書,你不僅可以準備面試時的技巧和問題,還可以更多地瞭解iOS“大廠”的技術人員所關注和重視的技術點。即使你在短期內不參加面試,也可以通過閱讀本書開闊視野,並對自己的知識體系查缺補漏。這不僅對你的下一次面試有所助力,也可以幫助你精進實力,在現在的工作中更加遊刃有餘。

好了,現在是時候來看一看兩位作者會帶給我們怎樣的“思維碰撞”了。

王 巍

主要內容
第1部分為面試準備。這部分詳談了求職中遇到的基本問題,唐巧老師根據其多年的經驗現身說法,在面試流程、簡歷投遞、複習準備方面給出了完善的參考意見和建議。

第2部分為演算法知識。作為對程式設計師基本功的考查,演算法幾乎是各種水平的程式設計師都要面對的必考內容。該部分採用Swift語言重新審視了多種資料結構和演算法原理,可以說是為iOS開發者量身打造的演算法解答。

第3部分為iOS專業問答,分為語言工具、系統框架和經驗之談,採用問答的形式來詳細介紹。其中,第3章語言工具主要針對iOS的主流開發語言Objective-C和Swift進行分析和對比,同時也整理了 Xcode編輯器的使用技巧和經驗。正所謂,工欲善其事,必先利其器,本章主要考查的是開發者對工具和語言特性的掌握。第4章系統框架則是從檢視、網路、設計模式等方面考查開發者的開發水準,這是任何一名合格的iOS開發者都應該具備的基本素養。第5章是經驗之談,主要包括一些進階內容的提問和解答,考查的是iOS開發者的功力。

作者簡介
故胤道長
卡內基梅隆大學碩士畢業,常年居住於美國的iOS開發者;先後就職於Uber、Amazon
GitHub全美前20名的Swift開源作者

唐巧
資深 iOS 開發者
擁有超過10萬個微信公眾號和微博粉絲,一直努力分享iOS相關知識
著有《iOS開發進階》 一書
現任猿輔導公司,小猿搜題產品技術負責人

大咖推薦
本書內容涉及面試前的準備、演算法和資料結構、UI設計、併發、網路、設計模式等面試中經常被問到的問題,對iOS新手程式設計師來說,這是一本不錯的書。其中的面試知識也適用於如Google、Amazon、Facebook等國際大公司。另外,本書也給出了一個iOS程式設計師的技能樹地圖,除應對面試外,只要你沿著這條路徑鑽研下去,就一定能夠開啟未來更為廣闊的天地。
——程式設計師 陳皓(左耳朵耗子)

如何面試,面試前需要達到什麼樣的水平,是初學者經常問的問題。而一般面試方法都不被當作硬實力,不過這個軟實力往往直接決定了你是否被錄用,以及薪資如何。可惜,很少有業內的高手願意在這樣的基本問題上發聲,所以,故胤道長和唐巧兩位高手寫的這本書就顯得更加珍貴,非常值得閱讀。
——老iOS程式設計師 Tinyfool

本書介紹了iOS面試時需要的知識和全新的面試趨勢。第1章對面試的總結讓人身臨其境,第2章演算法基礎精彩實用,後面的章節對各個知識點採用問答方式來介紹,問題豐富,有代表性,解答條理清晰,有針對性。這是一本很有價值的書。
——滴滴iOS技術專家 戴銘

本書為iOS程式設計師面試量身定製,既有關鍵演算法知識的分析,又有全新iOS面試題的解析;對技術難點的講解深入細緻,易於吸收。對正在準備面試的同學來說,是一本難得的好書。
——iOS雜貨鋪店主 Peak

本書的演算法基礎一章結合Swift語言和函數語言程式設計思想,詳細、具體地介紹了iOS開發過程中經常遇到的演算法問題,在一問一答間還融入了作者對問題本質的深刻理解和多年工作經驗的沉澱,非常精彩,值得閱讀。
——支付寶iOS工程師 念茜

作為技術研發人員,最終還是要靠自身實力說話。本書的每一節內容都是作者結合自身的實戰經驗精雕細琢而成的,簡潔而有深度,稱得上字字珠璣。本書不僅可以當作面試指南,也可以作為我們的iOS知識體系的基本框架,值得細細研讀。
——京東iOS工程師 南大

程式設計師面試經驗在網上隨處可見,但是內容良莠不齊。如果你是一名iOS程式設計師,那麼本書是不錯的選擇。本書不僅涵蓋簡歷準備、演算法知識等基礎,還對面試所需的開發語言、框架和架構都做了分析和答疑,是一本值得面試者閱讀的好書。
——微信iOS工程師 芒果

本書是一本優質的面試指南:融合了簡歷修改、面試準備、演算法基礎、函數語言程式設計等當下全新、實用的iOS面試開發內容,並結合作者多年iOS開發工作和開源經驗,為讀者介紹了iOS開發者應該理解並熟悉的重點。
——亞馬遜iOS工程師 老驢

本書寫給誰看
如果你是一名iOS開發者,並且正準備跳槽,那麼本書是一本不錯的複習參考書;如果你沒有面試計劃,那麼本書也可以幫助你對iOS知識進行提綱挈領的整理;如果你是面試官,那麼希望本書能為你提供考查應聘者的依據和源泉;對於具有其他背景的軟體工程師,若想一窺iOS世界的知識框架,本書也是不錯的切入點。