推薦序
你會反轉二叉樹嗎?不會?那麼對不起……”
當聞名遐邇,編寫了幾乎是業界標準的Homebrew的作者Max Howell在面試時被 Google 以算法題拒絕後,我不禁開始重新思考,面試為什麼這麼重要,在面試中有沒有什麼能幫助我們遂願的必殺技或者小竅門。Max Howell是幸運的,因為他有著社區內無與倫比的聲望和漂亮的項目履歷,Google將這扇門關上後,Apple 又為他開了一扇窗。但是,對可能資質平平,似乎也沒有什麼閃光點的我們來說,要怎麼做纔能求到一個自己心儀已久的職位,其實是一件非常值得細細琢磨一番的事情。
面試幾乎是每個社會人一生必然會經歷幾次的社會活動,但是,由於它發生的頻率不高,很容易被人忽視。我在面試別人時,最大的感受就是有不少應聘者其實並沒有做好萬全的準備。很多時候,應聘者雖然可能十分優秀,但在面試時總感覺就差臨門一腳:要麼是因為面試禮儀不足,讓人覺得無法合作;要麼是因為交流時過於緊張,導致理解偏差;要麼是在做面試題時因為缺乏經驗,無法很快抓住問題本質。這些往往都是準備不足,如果由於這樣的原因導致面試失敗,就非常可惜了。
本書的兩位作者分別是中美兩國知名“大廠”的高級從業人員,有豐富的面試(或面試別人)經驗。他們合作編寫了本書,想要解決的就是上面提到的問題。書中內容涵蓋廣泛:從面試前的職位調研、簡歷準備,到具體的算法設計、iOS開發中的常見問題,再到最後的面試總結、工作的挑選,都有所涉及。在保證覆蓋面的前提下,本書對一些重點進行了深入講解:比如,對常見算法給出了具體的參考實現,對常見的知識點誤用和考點進行了深入的原理分析。另外,本書中很多問題都帶有關鍵字,通過查詢書中的關鍵字,讀者可以概覽相關知識,並迅速建立關於這個關鍵字的知識網絡。作者結合自己的行業經驗和對行業現狀的分析,不僅向應聘者提出了問題,更一一詳盡地給出了解決的方式和建議,可謂字字珠璣,讓人相見恨晚。
通過閱讀本書,你不僅可以準備面試時的技巧和問題,還可以更多地了解iOS“大廠”的技術人員所關注和重視的技術點。即使你在短期內不參加面試,也可以通過閱讀本書開闊視野,並對自己的知識體繫查缺補漏。這不僅對你的下一次面試有所助力,也可以幫助你精進實力,在現在的工作中更加遊刃有餘。
好了,現在是時候來看一看兩位作者會帶給我們怎樣的“思維踫撞”了。
王 巍
前言
智能手機經過十多年的發展,其銷量增長趨於平穩,技術逐漸成熟,iOS應用程序也已經融入我們生活的方方面面。作為相關技術的開發者,唐巧老師和我懷著忐忑的心情,將多年的經驗和積累,結合具體面試內容,總結成這本《iOS面試之道》,呈現在各位讀者面前。
《iOS面試之道》分為3部分,其中面試準備部分由唐巧老師創作,算法知識和iOS專業問答部分則由我完成。
第1部分為面試準備。這部分詳談了求職中遇到的基本問題,唐巧老師根據其多年的經驗現身說法,在面試流程、簡歷投遞、復習準備方面給出了完善的參考意見和建議。
第2部分為算法知識。作為對程序員基本功的考查,算法幾乎是各種水平的程序員都要面對的必考內容。該部分采用Swift語言重新審視了多種數據結構和算法原理,可以說是為iOS開發者量身打造的算法解答。
第3部分為iOS專業問答,分為語言工具、繫統框架和經驗之談,采用問答的形式來詳細介紹。其中,第3章語言工具主要針對iOS的主流開發語言Objective-C和Swift進行分析和對比,同時也整理了 Xcode編輯器的使用技巧和經驗。正所謂,工欲善其事,必先利其器,本章主要考查的是開發者對工具和語言特性的掌握。第4章繫統框架則是從視圖、網絡、設計模式等方面考查開發者的開發水準,這是任何一名合格的iOS開發者都應該具備的基本素養。第5章是經驗之談,主要包括一些進階內容的提問和解答,考查的是iOS開發者的功力。
本書收錄和參考了大量的真實面試題,每章的面試題按照從易到難的順序進行編寫。如果你是一名iOS開發者,並且正準備跳槽,那麼本書是一本不錯的復習參考書;如果你沒有面試計劃,那麼本書可以幫助你對iOS知識進行提綱挈領的整理;如果你是iOS面試官,那麼我們也希望本書能夠為你提供考查應聘者的依據和源泉;對於具有其他背景的軟件工程師,若想一窺iOS世界的知識框架,本書也是不錯的切入點。
感謝電子工業出版社的編輯王靜對我們提出大量寶貴的意見。感謝唐巧老師在該書創作上的盡心盡力和對我的不吝指教。感謝喵神王巍的作序和諸位同仁的推薦,他們的幫助使得這本書的價值能更為充分地展現給讀者朋友。最後,我要感謝我的父母,感謝他們對我的支持和理解。
故胤道長