自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS如何才能在招聘中表現(xiàn)得靠譜?

移動開發(fā) iOS
近一年內(nèi)陸續(xù)面試了不少人了,從面試者到面試官的轉(zhuǎn)變讓我對 iOS 招聘有了更多的感受。經(jīng)過了前段時間的一大波面試,我們終于找到了志同道合的小伙伴,面試也暫時告一段落了。

近一年內(nèi)陸續(xù)面試了不少人了,從面試者到面試官的轉(zhuǎn)變讓我對 iOS 招聘有了更多的感受。經(jīng)過了前段時間的一大波面試,我們終于找到了志同道合的小伙伴,面試也暫時告一段落了??偨Y(jié)下面試人過程中的感受,你也可以讀到我們對簡歷、算法、性格、iOS 基礎(chǔ)、底層知識的看法和一些常問的面試題。

一個靠譜的簡歷

簡歷非常能反映一個人的性格和水平,相比于你在學(xué)校獲得多少獎項(xiàng),工作經(jīng)歷、項(xiàng)目經(jīng)歷、熟悉的技術(shù)等更加關(guān)鍵,如果還有博客和一些 github 上的項(xiàng)目,好感度++,但記得在去面試前收拾下,我們真的會挨個文件 review 你的開源代碼的。我們還喜歡關(guān)注一些細(xì)節(jié),比如簡歷里關(guān)鍵字的拼寫,看似無關(guān)緊要但很能反映出對自己的要求,經(jīng)常見一個簡歷中 iOS 這三個字母的拼寫就出現(xiàn) IOS、iOS、ios 三種的,非常不能忍,再列舉幾個常見問題:

  • iPhone -> IPHONE IPhone
  • Xcode -> XCode xcode
  • Objective-C -> Object-C
  • JSON -> Json
  • HTTP -> Http

還有,注意中英文間用一個半角空格隔開,排版會漂亮很多,簡歷承載的不僅是內(nèi)容,還有細(xì)節(jié)和態(tài)度,上面這些點(diǎn)往往都反映著面試者的代碼風(fēng)格、做事的認(rèn)真程度。當(dāng)然,簡歷寫的很漂亮但面聊之后發(fā)現(xiàn)啥都不會的也有,甚至見過來面試上來就跟我說簡歷是假的,就想求個面試機(jī)會這種 - -

面試

別遲到,別遲到,別遲到,重要的事說三遍。有變動提前通知 HR,碰到過臨時有事沒來,和誰都不說一聲,打電話過去還要求改個時間的,這種直接拜拜。

面試時最好準(zhǔn)備紙、筆、簡歷,可能用不上,但很能體現(xiàn)認(rèn)真程度。有條件的話帶著 Mac 和源碼,手機(jī)中裝好所有在簡歷中出現(xiàn)的 App。

關(guān)于算法

我們是實(shí)用主義,iOS 開發(fā)中很少需要自己寫復(fù)雜的算法,所以不在面試考核標(biāo)準(zhǔn)中。

代碼規(guī)范

這是一個重點(diǎn)考察項(xiàng),曾經(jīng)在微博上發(fā)過一個風(fēng)格糾錯題:

 

[[139147]]

也曾在面試時讓人當(dāng)場改過,槽點(diǎn)不少,能夠有 10 處以上修改的就基本達(dá)到標(biāo)準(zhǔn)了(處女座的人在這方面表現(xiàn)都很優(yōu)秀)

一個區(qū)分度很大的面試題

考察一個面試者基礎(chǔ)咋樣,基本上問一個 @property 就夠了:

@property 后面可以有哪些修飾符?

什么情況使用 weak 關(guān)鍵字,相比 assign 有什么不同?

怎么用 copy 關(guān)鍵字?

這個寫法會出什么問題: @property (copy) NSMutableArray *array;

如何讓自己的類用 copy 修飾符?如何重寫帶 copy 關(guān)鍵字的 setter?

這一套問題區(qū)分度比較大,如果上面的問題都能回答正確,可以延伸問更深入點(diǎn)的:

@property 的本質(zhì)是什么?ivar、getter、setter 是如何生成并添加到這個類中的

@protocol 和 category 中如何使用 @property

runtime 如何實(shí)現(xiàn) weak 屬性

每個人擅長的領(lǐng)域不一樣,我們一般會從簡歷上找自己寫擅長的技術(shù)聊,假如自己并不是很熟,最好別寫出來或扯出來,萬一面試官剛好非常精通這里就露餡了。

Checklist

總結(jié)過些面試題,沒堅(jiān)持下去,后來把這些當(dāng) checklist,面試的時候?qū)嵲跊]話聊的時候做個提醒,語言、框架、運(yùn)行機(jī)制性質(zhì)的:

[※]@property中有哪些屬性關(guān)鍵字?

[※]weak屬性需要在dealloc中置nil么?

[※※]@synthesize和@dynamic分別有什么作用?

[※※※]ARC下,不顯示指定任何屬性關(guān)鍵字時,默認(rèn)的關(guān)鍵字都有哪些?

[※※※]用@property聲明的NSString(或NSArray,NSDictionary)經(jīng)常使用copy關(guān)鍵字,為什么?如果改用strong關(guān)鍵字,可能造成什么問題?

[※※※]@synthesize合成實(shí)例變量的規(guī)則是什么?假如property名為foo,存在一個名為_foo的實(shí)例變量,那么還會自動合成新變量么?

[※※※※※]在有了自動合成屬性實(shí)例變量之后,@synthesize還有哪些使用場景?

[※※]objc中向一個nil對象發(fā)送消息將會發(fā)生什么?

[※※※]objc中向一個對象發(fā)送消息[obj foo]和objc_msgSend()函數(shù)之間有什么關(guān)系?

[※※※]什么時候會報unrecognized selector的異常?

[※※※※]一個objc對象如何進(jìn)行內(nèi)存布局?(考慮有父類的情況)

[※※※※]一個objc對象的isa的指針指向什么?有什么作用?

[※※※※]下面的代碼輸出什么?

  1. @implementation Son : Father 
  2. - (id)init 
  3. self = [super init]; 
  4. if (self) { 
  5. NSLog(@"%@", NSStringFromClass([self class])); 
  6. NSLog(@"%@", NSStringFromClass([super class])); 
  7. return self; 
  8. @end 

[※※※※]runtime如何通過selector找到對應(yīng)的IMP地址?(分別考慮類方法和實(shí)例方法)

[※※※※]使用runtime Associate方法關(guān)聯(lián)的對象,需要在主對象dealloc的時候釋放么?

[※※※※※]objc中的類方法和實(shí)例方法有什么本質(zhì)區(qū)別和聯(lián)系?

[※※※※※]_objc_msgForward函數(shù)是做什么的,直接調(diào)用它將會發(fā)生什么?

[※※※※※]runtime如何實(shí)現(xiàn)weak變量的自動置nil?

[※※※※※]能否向編譯后得到的類中增加實(shí)例變量?能否向運(yùn)行時創(chuàng)建的類中添加實(shí)例變量?為什么?

[※※※]runloop和線程有什么關(guān)系?

[※※※]runloop的mode作用是什么?

[※※※※]以+ scheduledTimerWithTimeInterval...的方式觸發(fā)的timer,在滑動頁面上的列表時,timer會暫定回調(diào),為什么?如何解決?

[※※※※※]猜想runloop內(nèi)部是如何實(shí)現(xiàn)的?

[※]objc使用什么機(jī)制管理對象內(nèi)存?

[※※※※]ARC通過什么方式幫助開發(fā)者管理內(nèi)存?

[※※※※]不手動指定autoreleasepool的前提下,一個autorealese對象在什么時刻釋放?(比如在一個vc的viewDidLoad中創(chuàng)建)

[※※※※]BAD_ACCESS在什么情況下出現(xiàn)?

[※※※※※]蘋果是如何實(shí)現(xiàn)autoreleasepool的?

[※※]使用block時什么情況會發(fā)生引用循環(huán),如何解決?

[※※]在block內(nèi)如何修改block外部變量?

[※※※]使用系統(tǒng)的某些block api(如UIView的block版本寫動畫時),是否也考慮引用循環(huán)問題?

[※※]GCD的隊(duì)列(dispatch_queue_t)分哪兩種類型?

[※※※※]如何用GCD同步若干個異步調(diào)用?(如根據(jù)若干個url異步加載多張圖片,然后在都下載完成后合成一張整圖)

[※※※※]dispatch_barrier_async的作用是什么?

[※※※※※]蘋果為什么要廢棄dispatch_get_current_queue?

[※※※※※]以下代碼運(yùn)行結(jié)果如何?

  1. - (void)viewDidLoad 
  2. [super viewDidLoad]; 
  3. NSLog(@"1"); 
  4. dispatch_sync(dispatch_get_main_queue(), ^{ 
  5. NSLog(@"2"); 
  6. }); 
  7. NSLog(@"3"); 

[※※]addObserver:forKeyPath:options:context:各個參數(shù)的作用分別是什么,observer中需要實(shí)現(xiàn)哪個方法才能獲得KVO回調(diào)?

[※※※]如何手動觸發(fā)一個value的KVO

[※※※]若一個類有實(shí)例變量NSString *_foo,調(diào)用setValue:forKey:時,可以以foo還是_foo作為key?

[※※※※]KVC的keyPath中的集合運(yùn)算符如何使用?

[※※※※]KVC和KVO的keyPath一定是屬性么?

[※※※※※]如何關(guān)閉默認(rèn)的KVO的默認(rèn)實(shí)現(xiàn),并進(jìn)入自定義的KVO實(shí)現(xiàn)?

[※※※※※]apple用什么方式實(shí)現(xiàn)對一個對象的KVO?

[※※]IBOutlet連出來的視圖屬性為什么可以被設(shè)置成weak?

[※※※※※]IB中User Defined Runtime Attributes如何使用?

[※※※]如何調(diào)試BAD_ACCESS錯誤

[※※※]lldb(gdb)常用的調(diào)試命令?

這些小題可以做為討論的入口,根據(jù)面試者的回答再繼續(xù)聊下去。其中一些題比較底層,是留給屌屌的面試者或者試探評級用的,一般情況并不是重點(diǎn)的考察內(nèi)容。

業(yè)務(wù)能力

畢竟平常的工作內(nèi)容不是 runtime、runloop,不怎么會用到底層的黑魔法,80% 的時間都是和搭建頁面、寫業(yè)務(wù)邏輯、網(wǎng)絡(luò)請求打交道。

要求面試者能夠熟練構(gòu)建 UI,我會找一個面試者做過的頁面讓他分析下頁面結(jié)構(gòu)、約束或者 frame 布局的連法和計(jì)算方法;有時也會讓面試者說說 UITableView 常用的幾個 delegate 和 data source 代理方法,動態(tài) Cell 高度計(jì)算什么的;接下來,在手機(jī)里隨便找一個 App 的頁面,讓面試者當(dāng)場說說如果是他寫應(yīng)該用哪些 UI 組件和布局方式等。問幾個問題后就能大概了解業(yè)務(wù)能力了,我們這邊重度使用 IB 和 AutoLayout,假如面試者依然使用代碼碼 UI 也到?jīng)]關(guān)系,有“從良”意愿就很好~

程序架構(gòu)和一些設(shè)計(jì)模式如果面試者自己覺得還不錯的話也會聊聊,但跪求別說 Singleton 了,用的越多對水平就越表示懷疑。對設(shè)計(jì)模式自信的我一般問一個問題,抽象工廠模式在 Cocoa SDK 中哪些類中體現(xiàn)?

架構(gòu)上 MVC 還是 MVVM 還是 MVP 神馬的到是可以聊聊各自的見解,反正也沒有正確答案,只要別搞的太離譜就行,比如有的人說網(wǎng)絡(luò)請求和數(shù)據(jù)庫的操作最好放到 UIView 的子類里面干。

網(wǎng)絡(luò)請求、數(shù)據(jù)庫等各家都有成熟的封裝,基本知道咋用就行。除此之外,我們還會順帶的問下除了 iOS 開發(fā)外,還會什么其他編程語言、或者熟悉哪種腳本語言和 Terminal 操作等,甚至還問問是如何翻墻- -,相信這些技能都是很重要的。

性格

大家都是寫程序的,沒啥必要用奇怪的、很難的問題難為對方,更關(guān)鍵的還是性格,和 Team 的風(fēng)格是不是和的來。一個心態(tài)良好的面試者需要有個平常心,不傲嬌也不跪舔,表達(dá)要正常,經(jīng)常遇到問一個問題后一兩分鐘一直處于沉思狀態(tài),一句話不說,交流像擠牙膏一樣,很是憋屈;還有非常屌屌的,明明不懂仍然強(qiáng)行據(jù)理力爭,鎮(zhèn)得住面試官也罷,撞槍口上就別怪不客氣了- - 。決定要不要一個人基本上聊 5 分鐘就可以確定了,喜歡水到渠成的感覺,看對眼了擋都擋不住。

招聘告一段落,后面將會有更精彩的事情發(fā)生。最后,再次感謝大家的支持和對我的信任。

責(zé)任編輯:chenqingxiang 來源: CocoaChina
相關(guān)推薦

2014-07-29 09:33:17

公司郵箱

2022-03-17 15:13:03

元宇宙

2014-08-20 10:07:45

Windows Pho

2012-10-22 11:14:05

SDNOpenFlow網(wǎng)絡(luò)管理

2014-03-31 09:59:03

2012-04-23 03:55:43

QCon

2019-03-21 12:10:56

騰訊管理年輕化

2014-09-12 21:48:20

海外郵件中繼轉(zhuǎn)發(fā)服務(wù)

2014-02-11 09:25:09

2025-02-13 09:09:58

OpenratorAI驅(qū)動智能體

2024-05-09 13:00:09

微型數(shù)據(jù)中心

2015-06-23 10:07:31

密碼表情密碼

2015-07-23 14:25:04

宕機(jī)云主機(jī)云智慧

2015-07-31 10:16:17

2013-12-30 16:22:40

Windows 9概念設(shè)計(jì)

2016-11-22 17:26:11

開源PowerShellLinux

2015-11-09 16:45:14

尼泊爾地震

2021-01-12 14:24:26

Python開發(fā)大數(shù)據(jù)

2013-01-18 10:16:42

2014-02-19 10:49:55

Windows 9
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號