• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 十個iOS面試問題

    發表于:2014-01-03來源:http://onevcat.com/作者:Den點擊數: 標簽:iOS
    十個iOS面試問題。不管對于招聘和應聘來說,面試都是很重要的一個環節,特別對于開發者來說,面試中的技術問題環節不僅是企業對應聘者技能和積累的考察,也是一個開發者自我檢驗的好機會。

      不管對于招聘和應聘來說,面試都是很重要的一個環節,特別對于開發者來說,面試中的技術問題環節不僅是企業對應聘者技能和積累的考察,也是一個開發者自我檢驗的好機會。對于iOS和Mac開發來說,因為本事還算比較新,企業對于這方面的開發者需求也比較大,所以面試時的要求可能并不是很高,一般能知道一些Cocoa和OC的基本知識也就認為可以了。但是對于一個希望擁有技術力基礎的企業的iOS或者Mac開發來說,兩到三個頂尖的熟練技術人員,帶領一些還較為初級的開發者,共同完成項目應該是比較常見的構成。

      Cocoa特別是CocoaTouch的開發,上手可以說十分容易,但是背后隱藏的細節和原理卻很豐富。一方面對于基礎不夠熟練和清晰(比如從一個 AppDelegate開始用代碼構建ViewController,或者清晰地說明棧和堆之類的概念),另一方面對于更進階的開發知之甚少(比如多線程、網絡異步處理或者Core開頭的各種框架等等)。這些內容十分重要,但是可能現在一般的iOS開發者或多或少都在這些問題上存在薄弱。在這里我整理了一份面向于較高層級的iOS開發者的面試題目的問題清單,列出了十個應聘Leader級別的高級Cocoa/CocoaTouch開發工程師所應該掌握和理解的技術。這份列表沒有提供標準答案,因為這些問題本身就沒有標準答案。隨每個人對這些內容的認識的不同和理解的差異,可以有不一樣的答案。但是最基本地,如果面對的是一名資深的Cocoa開發者,至少期望能得到的答案都是“接觸過”,并且能結合自己的經驗說個七七八八,達到互相能明白意圖和方法的地步。能夠在其中兩三個領域有不錯的見解和具體的闡述的話,那是更好。這種對于知識覆蓋面和深度的考察很能真實反映出開發者的技術水平。如果清單里的很大部分內容都是完全沒接觸過和沒聽過的話,那可能距離資深Cocoa開發這樣一個階段還尚有距離了。

      那么,面試開始。

      你使用過Objective-C的運行時編程(Runtime Programming)么?如果使用過,你用它做了什么?你還能記得你所使用的相關的頭文件或者某些方法的名稱嗎?

      你實現過多線程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在線程中創建或者傳遞?你是用什么樣的策略來實現的?

      Core開頭的系列的內容。是否使用過CoreAnimation和CoreGraphics。UI框架和CA,CG框架的聯系是什么?分別用CA和CG做過些什么動畫或者圖像上的內容。(有需要的話還可以涉及Quartz的一些內容)

      是否使用過CoreText或者CoreImage等?如果使用過,請談談你使用CoreText或者CoreImage的體驗。

      NSNotification和KVO的區別和用法是什么?什么時候應該使用通知,什么時候應該使用KVO,它們的實現上有什么區別嗎?如果用 protocol和delegate(或者delegate的Array)來實現類似的功能可能嗎?如果可能,會有什么潛在的問題?如果不能,為什么?(雖然protocol和delegate這種東西面試已經面爛了…)

      你用過NSOperationQueue么?如果用過或者了解的話,你為什么要使用NSOperationQueue,實現了什么?請描述它和GCD的區別和類似的地方(提示:可以從兩者的實現機制和適用范圍來描述)。

      既然提到GCD,那么問一下在使用GCD以及block時要注意些什么?它們兩是一回事兒么?block在ARC中和傳統的MRC中的行為和用法有沒有什么區別,需要注意些什么?

      您是否做過異步的網絡處理和通訊方面的工作?如果有,能具體介紹一些實現策略么?

      對于Objective-C,你認為它最大的優點和最大的不足是什么?對于不足之處,現在有沒有可用的方法繞過這些不足來實現需求。如果可以的話,你有沒有考慮或者實踐過重新實現OC的一些功能,如果有,具體會如何做?

      你實現過一個框架或者庫以供別人使用么?如果有,請談一談構建框架或者庫時候的經驗;如果沒有,請設想和設計框架的public的API,并指出大概需要如何做、需要注意一些什么方面,來使別人容易地使用你的框架。

      以上10個問題對于初級或者剛接觸iOS的開發者來說,肯定是過于難了。想要答出全部問題,可能需要至少兩到三年的 Cocoa/CocoaTouch開發經驗。而如果想要有所見地的回答,可能需要更長的時間和經驗。這些問題對于技術的積累會是一個很好的考察,因為如果沒有對這些問題中涉及的內容有過實際使用和體會的話,是很難較完整和全面回答這些問題的。同時,因為這些問題并不像ABCD的客觀題有標準答案,表現的是應聘者的理解,所以提問者也必須具備必要的材料或者知識,以應對可能的討論。

      在為團隊尋求高級別的開發工程師或者Leader類的職位時,這些問題的回答會是對應聘者技術深度和廣度的一個有效的考察。同樣地,如果你的團隊在 Cocoa/CocoaTouch上比較偏重,但是技術團隊的No.1的工程師卻不能很好地回答這些問題的話,可能也會是需要檢討技術層的一個信號。

    原文轉自:http://onevcat.com/2013/04/ios-interview/

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>