1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 淺談如何面試iOS工程師

        時間:2020-11-19 10:42:11 如何面試 我要投稿

        淺談如何面試iOS工程師

          推薦序

        淺談如何面試iOS工程師

          私下和很多朋友交流過這個話題,大部分求職者認為,我能做基本的 iOS 開發工作,就達到公司的要求了,殊不知公司招聘員工,更希望的是這個人能夠在關鍵時候能夠發揮一般人做不到的能力。

          這篇文章是來自微信讀書的 bang ,我完全同意他的觀點。除了他的這些面試方法外,我還認為做比說更重要,所以我更喜歡在面試的時候,拿出一張白紙,讓求職者寫一段富有邏輯性的代碼,看看他的思維是否嚴謹,對于一些常見的數據結構和算法基礎有了解。

          作者介紹:bang,iOS 開發者,推特中文圈 / JSPatch作者,博客 http://cnbang.net , 目前就職于廣州騰訊。

          正文

          參加了內部面委會的一個分享,結合我自己的方式,說說怎樣面試一個普通的 iOS 工程師。

          一般我傾向的考察分兩個主要的部分,第一是在簡歷里提到的項目經歷中找挖掘點,第二是基礎知識考察。另外也會看情況做一些軟實力的考察和性格特征的判斷。

          項目經歷

          如果順利的話這第一步占的比例會很大,因為每個程序員都不會方方面面知識都熟悉,但至少他寫在簡歷上的做過的項目是熟悉的,講自己熟悉的東西容易讓他進入狀態,展示好的一面。這里主要考察兩方面,一是有沒有在某些點上有過深入研究。二是對項目整體了解如何。

          深入研究

          在中大型的公司里比較注重工程師有深入研究的能力,如果能把一個功能講得很清晰是比較好的加分項,這里會問實現的思路,通過追問去了解候選人在這塊深入的程度,從思路到方法,從上層 API 調用到框架流程再到底層實現。如果候選人在講述時有一條邏輯主線,例如講述業界普遍是怎么做的,自己在業界方案基礎上做了什么改進,怎樣做到更好,進一步改進的思路是怎樣,這是最好的。如果還能把解決問題的方法歸納起來運用在其他地方,能舉一反三,包裝成通用解決方案,或者做開源貢獻,就更好了。

          一般會問候選人哪一個項目技術點最能體現自己的技術,然后不停追問技術細節,例如做了一個相冊項目,覺得列表優化是最能體現技術點的,會問這里優化的思路是什么,怎樣評估,遇到過什么困難,怎么解決的,如果用到圖片緩存開源項目,說說它具體做了什么事,緩存策略是什么,從下載到顯示的整個流程是怎樣的,還有沒有更好的方案,追問到一定程度后也會發散去問跟這個話題相關聯的問題,例如如果有部分用戶反饋圖片顯示不了,你會怎樣排查問題,排查修復后怎樣監控,就會過度到一些網絡和運營監控方面的`內容,也會順便問到一些基礎知識。

          整體了解

          問完自己職責范圍內的功能技術點后,還會看看對項目里其他的實現有沒有了解,特別是項目的大致架構和核心功能,最好能畫出項目大致結構,看情況問問網絡層和數據層是怎樣實現的,為什么這樣實現,項目最核心功能是怎樣實現的,例如做讀書的至少要知道項目里的排版引擎的大致實現方式,做 QQ 的要知道消息收發的機制,如果不知道,也可以說說如果自己實現會怎么做。這里主要看看有沒有技術好奇心,會不會積極主動了解項目里已有的非職責范圍內的技術點,主動和好學這兩點是很重要的。

          基礎知識

          如果項目經歷里能問出大部分東西,這部分比例就會比較少了,這是比較好的情況,否則就按套路去多考察一些基礎知識,包括 iOS 開發的基礎和計算機基礎,像內存 / 網絡 / 存儲 / 線程等,例如 ARC 是怎樣做到自動管理內存的,跟 java/js 的垃圾回收的區別,網絡 http 協議是怎樣的,用過什么數據庫框架,db 索引是什么,多線程開發要注意什么,跟 runloop 的關系是什么等等,這類問題在網上都有很多,就不多說了。數據結構和算法在筆試時會涉及,面試會比較少,如果問算法的話只會問問思路,一般我覺得如果項目經歷方面不太好,才會考慮考考算法作為輔助判斷。

          軟實力

          一些通用能力像邏輯思維能力,溝通能力,自我驅動能力等都可以在上面那些問題的交流中表現出來,另外像團隊協作能力、抗壓能力和性格特征這些也會看情況考察一下,例如問問如果產品讓你做個需求,你覺得不靠譜,會怎樣做,設計讓你做個很難實現的效果,你會怎樣評估?或者問個低級問題,故意說個錯誤的答案,看看他的反應是怎樣,是表現出嘲笑和攻擊性,還是懷疑自己,還是細心求證?箟耗芰Φ目疾煊行┤吮容^喜歡,我是覺得面試還是輕松一點好。軟實力方面的考察在一面會比較少,或者不會涉及,實際上這方面我也沒太多經驗,也在摸索中。

          其他

          作為程序員,如果有 GitHub 開源項目是最好的,直接可以看到代碼風格,代碼質量,處理 issue 和 PR 的方式,如果有技術博客也是很好的,可以提前看到平時的一些技術積累,省了很多事。但如果 GitHub 內容是培訓班的那種仿寫 APP,博客內容是摘抄文章什么的就是負分了。

          以上是正常套路,若候選人有特殊經歷或技能,例如牛 X 大學畢業,ACM 冠軍,通讀 linux 源碼,php 源碼貢獻者之類,會另當別論,針對性進行面試,這不是唯一的標準。另外針對不同的工作年限也有不同的問法和要求,工作年限越高要求越高。

          最后

          其實面試就是想低成本找到合適在團隊里一起工作的人,因為如果通過一起工作一段時間去判斷是否合適成本太高。這種低成本的代價就是會誤判,有些工程師是理論型,有些是實踐型,面試的方式會對實踐型的人不利,盡管他們如果招進來會是適合的人,而且人會在不同環境下會有不同的表現,只根據過去的經歷去判斷有時是不準確的。只能盡量采取一些措施去減少誤判的概率,例如提高面試官的判斷能力,或多幾輪面試。一般如果不是急招,策略都會是寧殺錯不放過,所以其實就算面試被否了,也不一定代表能力不行。

          另外每個面試官可能都有自己摸索出來的一種判斷方式,并隨著面試經驗的豐富不斷改進,達到更準的判斷概率,這只是我個人在目前有限的經驗里的一點小總結,僅供參考。

          全文完,感謝作者授權,本文的所有打賞歸 bang 所有。

          贊助商:掘金是一個高質量的技術社區,讓你不錯過 iOS 開發的每一條資訊。長按圖片二維碼識別,技術干貨盡在掌握中。

        【淺談如何面試iOS工程師】相關文章:

        ios工程師該如何面試08-03

        ios程序員該如何面試08-03

        淺談如何巧過英語面試08-08

        iOS基礎問答面試題08-28

        淺談大學生面試如何著裝12-05

        Ios開發工程師個人簡歷范文09-28

        淺談面試禮儀08-21

        面試技巧淺談08-07

        淺談面試禮儀知識12-19

        關于面試經驗淺談07-24

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>