就在上個(gè)月中旬细溅,技術(shù)老大讓我招兩個(gè)1-2年的iOS開(kāi)發(fā)呼巴,把簡(jiǎn)歷的篩選和第一輪技術(shù)面試的任務(wù)交給了我喉誊。
(
其實(shí)作為一個(gè)開(kāi)發(fā)者有一個(gè)學(xué)習(xí)的氛圍跟一個(gè)交流圈子特別重要牛郑,這是我的一個(gè)iOS學(xué)習(xí)交流群605315994寸认,不管是小白還是大牛都?xì)g迎入駐签财,大家一起交流成長(zhǎng)!
) ??
從篩選第一份簡(jiǎn)歷偏塞,準(zhǔn)備面試題唱蒸,到成功招到兩個(gè)人一共花了兩個(gè)星期多一點(diǎn),總體來(lái)說(shuō)還是比較順利的灸叼。兩位通過(guò)者都比較穩(wěn)重踏實(shí)神汹,而且對(duì)技術(shù)也比較有追求。這也可能和我篩選簡(jiǎn)歷比較謹(jǐn)慎有關(guān)系古今,這次篩選簡(jiǎn)歷所花費(fèi)的精力是不比面試花費(fèi)的少的屁魏。
雖然時(shí)間跨度不是很長(zhǎng),但是畢竟是第一次捉腥,所以有些感觸氓拼,想總結(jié)出來(lái)分享給大家。這篇總結(jié)分為兩個(gè)部分:
1抵碟、第一部分是我當(dāng)時(shí)準(zhǔn)備的面試題
2桃漾、第二部分是我的心得
我重點(diǎn)在本文的第二部分說(shuō)一下這次面試別人的心得體會(huì)。而關(guān)于第一部分的面試題立磁,文中不提供答案(因?yàn)椴皇潜疚牡闹攸c(diǎn))呈队,有想討論的歡迎在評(píng)論區(qū)留言。
第一部分:面試題
注意唱歧,下面這些題只是我準(zhǔn)備的題庫(kù)宪摧。在實(shí)際面試的時(shí)候我會(huì)根據(jù)面試者的水平抽出相應(yīng)的題目來(lái)出的。
技術(shù)基礎(chǔ)
1颅崩、為什么說(shuō)Objective-C是一門(mén)動(dòng)態(tài)的語(yǔ)言几于?
2、講一下MVC和MVVM沿后,MVP沿彭?
3、為什么代理要用weak尖滚?代理的delegate和dataSource有什么區(qū)別喉刘?block和代理的區(qū)別?
4瞧柔、屬性的實(shí)質(zhì)是什么?包括哪幾個(gè)部分睦裳?屬性默認(rèn)的關(guān)鍵字都有哪些造锅?@dynamic關(guān)鍵字和@synthesize關(guān)鍵字是用來(lái)做什么的?
5廉邑、屬性的默認(rèn)關(guān)鍵字是什么哥蔚?
6、NSString為什么要用copy關(guān)鍵字蛛蒙,如果用strong會(huì)有什么問(wèn)題糙箍?(注意:這里沒(méi)有說(shuō)用strong就一定不行。使用copy和strong是看情況而定的)
7牵祟、如何令自己所寫(xiě)的對(duì)象具有拷貝功能?
8深夯、可變集合類 和 不可變集合類的 copy 和 mutablecopy有什么區(qū)別?如果是集合是內(nèi)容復(fù)制的話课舍,集合里面的元素也是內(nèi)容復(fù)制么塌西?
9他挎、為什么IBOutlet修飾的UIView也適用weak關(guān)鍵字筝尾?
10、nonatomic和atomic的區(qū)別办桨?atomic是絕對(duì)的線程安全么筹淫?為什么?如果不是呢撞,那應(yīng)該如何實(shí)現(xiàn)损姜?
11、UICollectionView自定義layout如何實(shí)現(xiàn)殊霞?
12摧阅、用StoryBoard開(kāi)發(fā)界面有什么弊端?如何避免绷蹲?
13棒卷、進(jìn)程和線程的區(qū)別?同步異步的區(qū)別祝钢?并行和并發(fā)的區(qū)別比规?
14、線程間通信拦英?
15蜒什、GCD的一些常用的函數(shù)?(group疤估,barrier灾常,信號(hào)量霎冯,線程同步)
16、如何使用隊(duì)列來(lái)避免資源搶奪钞瀑?
17肃晚、數(shù)據(jù)持久化的幾個(gè)方案(fmdb用沒(méi)用過(guò))
18、說(shuō)一下AppDelegate的幾個(gè)方法仔戈?從后臺(tái)到前臺(tái)調(diào)用了哪些方法关串?第一次啟動(dòng)調(diào)用了哪些方法?從前臺(tái)到后臺(tái)調(diào)用了哪些方法监徘?
19晋修、NSCache優(yōu)于NSDictionary的幾點(diǎn)?
20凰盔、知不知道Designated Initializer墓卦?使用它的時(shí)候有什么需要注意的問(wèn)題?
21户敬、實(shí)現(xiàn)description方法能取到什么效果落剪?
22、objc使用什么機(jī)制管理對(duì)象內(nèi)存尿庐?
中級(jí)Block
1忠怖、block的實(shí)質(zhì)是什么?一共有幾種block抄瑟?都是什么情況下生成的凡泣?
2、為什么在默認(rèn)情況下無(wú)法修改被block捕獲的變量皮假? __block都做了什么鞋拟?
3、模擬一下循環(huán)引用的一個(gè)情況惹资?block實(shí)現(xiàn)界面反向傳值如何實(shí)現(xiàn)贺纲?
Runtime
1、objc在向一個(gè)對(duì)象發(fā)送消息時(shí)褪测,發(fā)生了什么猴誊?
2、什么時(shí)候會(huì)報(bào)unrecognized selector錯(cuò)誤汰扭?iOS有哪些機(jī)制來(lái)避免走到這一步稠肘?
3、能否向編譯后得到的類中增加實(shí)例變量萝毛?能否向運(yùn)行時(shí)創(chuàng)建的類中添加實(shí)例變量项阴?為什么?
4、runtime如何實(shí)現(xiàn)weak變量的自動(dòng)置nil环揽?
5略荡、給類添加一個(gè)屬性后,在類結(jié)構(gòu)體里哪些元素會(huì)發(fā)生變化歉胶?
類結(jié)構(gòu)
1汛兜、isa指針?(對(duì)象的isa通今,類對(duì)象的isa粥谬,元類的isa都要說(shuō))
2、類方法和實(shí)例方法有什么區(qū)別辫塌?
3漏策、介紹一下分類,能用分類做什么臼氨??jī)?nèi)部是如何實(shí)現(xiàn)的掺喻?它為什么會(huì)覆蓋掉原來(lái)的方法?
4储矩、運(yùn)行時(shí)能增加成員變量么感耙?能增加屬性么?如果能持隧,如何增加即硼?如果不能,為什么舆蝴?
5谦絮、objc中向一個(gè)nil對(duì)象發(fā)送消息將會(huì)發(fā)生什么题诵?(返回值是對(duì)象洁仗,是標(biāo)量,結(jié)構(gòu)體)
高級(jí)
1性锭、UITableview的優(yōu)化方法(緩存高度赠潦,異步繪制,減少層級(jí)草冈,hide她奥,避免離屏渲染)
2、有沒(méi)有用過(guò)運(yùn)行時(shí)怎棱,用它都能做什么哩俭?(交換方法,創(chuàng)建類拳恋,給新創(chuàng)建的類增加方法凡资,改變isa指針)
3、看過(guò)哪些第三方框架的源碼谬运?都是如何實(shí)現(xiàn)的隙赁?(如果沒(méi)有垦藏,問(wèn)一下多圖下載的設(shè)計(jì))
4、SDWebImage的緩存策略伞访?
5掂骏、AFN為什么添加一條常駐線程?
6厚掷、KVO的使用弟灼?實(shí)現(xiàn)原理?(為什么要?jiǎng)?chuàng)建子類來(lái)實(shí)現(xiàn))
7冒黑、KVC的使用袜爪?實(shí)現(xiàn)原理?(KVC拿到key以后薛闪,是如何賦值的辛馆?知不知道集合操作符,能不能訪問(wèn)私有屬性豁延,能不能直接訪問(wèn)_ivar)
項(xiàng)目
1昙篙、有已經(jīng)上線的項(xiàng)目么?
2诱咏、項(xiàng)目里哪個(gè)部分是你完成的苔可?(找一個(gè)亮點(diǎn)問(wèn)一下如何實(shí)現(xiàn)的)
3、開(kāi)發(fā)過(guò)程中遇到過(guò)什么困難袋狞,是如何解決的焚辅?
學(xué)習(xí)
1、遇到一個(gè)問(wèn)題完全不能理解的時(shí)候苟鸯,是如何幫助自己理解的同蜻?舉個(gè)例子?
2早处、有看書(shū)的習(xí)慣么湾蔓?最近看的一本是什么書(shū)?有什么心得砌梆?
3默责、有沒(méi)有使用一些筆記軟件?會(huì)在多平臺(tái)同步以及多渠道采集么咸包?(如果沒(méi)有桃序,問(wèn)一下是如何復(fù)習(xí)知識(shí)的)
4、有沒(méi)有使用清單類烂瘫,日歷類的軟件媒熊?(如果沒(méi)有,問(wèn)一下是如何安排,計(jì)劃任務(wù)的)
5泛释、平陈算担看博客么?有沒(méi)有自己寫(xiě)過(guò)怜校?(如果寫(xiě)间影,有哪些收獲?如果沒(méi)有寫(xiě)茄茁,問(wèn)一下不寫(xiě)的原因)
6魂贬、有關(guān)技術(shù)類的問(wèn)題可以在評(píng)論區(qū)留言,我重點(diǎn)說(shuō)一下這輪面試的心得和體會(huì)裙顽。
第二部分:心得
面試者千萬(wàn)不要答非所問(wèn)
如果讓我選一個(gè)讓面試官覺(jué)得印象減分的點(diǎn)付燥,答非所問(wèn)應(yīng)該是首當(dāng)其沖的。
面試者一定要知道面試官問(wèn)的點(diǎn)是什么愈犹。
1键科、如果在知道面試官問(wèn)的點(diǎn),但是自己卻不知道答案的時(shí)候漩怎,可以提出思路勋颖,思考過(guò)程。其實(shí)有幾次面試者在我的引導(dǎo)下很容易就把答案說(shuō)出來(lái)了勋锤,認(rèn)清問(wèn)題的點(diǎn)是解決問(wèn)題的一半饭玲。/2、如果沒(méi)有理解好面試官問(wèn)的問(wèn)題叁执,一定要事先和面試官確認(rèn)好茄厘。
其實(shí)這也屬于溝通能力的一點(diǎn):如果不能保證和對(duì)方溝通內(nèi)容的一致性,自己弄個(gè)filter把對(duì)方的話都曲解了谈宛,以后合作的時(shí)候又怎能保證溝通好呢次哈?
面試者一定不要來(lái)得太早
這里說(shuō)的來(lái)得太早,是來(lái)得太早并告知面試官自己已經(jīng)來(lái)了入挣。
因?yàn)樵诩s定好的面試時(shí)間之前亿乳,往往面試官還有別的事情在做,如果他知道你來(lái)的很早径筏,就可能會(huì)擾亂他的計(jì)劃。有一位面試者早來(lái)了1個(gè)小時(shí)障陶,結(jié)果把我們的面試計(jì)劃打亂了滋恬,而且正好是我的第一次面試,所以真的是有點(diǎn)措手不及抱究。
求職者和公司定下來(lái)的時(shí)間屬于一個(gè)約定恢氯,約定是要遵守的。而且遵守約定同樣也是對(duì)對(duì)方的尊重。如果入職之前都沒(méi)能把握好勋拟,入職之后又如何能保證把握好呢勋磕?
實(shí)踐與理論的脫節(jié),讓人很不安
能做出來(lái)項(xiàng)目敢靡,但是基礎(chǔ)知識(shí)很薄弱
幾乎每位面試者都能給我展示他做的一些app挂滓,雖然沒(méi)有很難的功能,但也都算是有板有眼啸胧「险荆可讓我比較意外的是,雖然能做出有模有樣的app纺念,但當(dāng)我問(wèn)到很多基礎(chǔ)的問(wèn)題的時(shí)候卻答不上來(lái)贝椿,比如屬性和成員變量的區(qū)別,屬性的默認(rèn)關(guān)鍵字陷谱,Designated Initializer的概念等等烙博。。
這不禁讓我懷疑他們的代碼的穩(wěn)定性烟逊,更懷疑他們治學(xué)习勤,做技術(shù)的態(tài)度。
雖說(shuō)技術(shù)活需要實(shí)踐的磨練焙格,但和理論脫節(jié)的技術(shù)是鉆不深的图毕。可能有人會(huì)說(shuō)我的面試題過(guò)于理論眷唉,實(shí)際中用不到予颤。但有些時(shí)候,在實(shí)際開(kāi)發(fā)中遇到的一些問(wèn)題往往就是因?yàn)橐恍┖芑镜臇|西沒(méi)有弄清導(dǎo)致的冬阳,相信你我都深有體會(huì)蛤虐。
而且,我們都知道技術(shù)的提升是階梯式的肝陪。什么是階梯式的呢驳庭?就是可能我們會(huì)有比較長(zhǎng)的時(shí)間才會(huì)有一個(gè)突破。但這個(gè)突破來(lái)的有多快氯窍,提升的有多高饲常,是跟平時(shí)每個(gè)細(xì)小知識(shí)點(diǎn)的掌握程度是分不開(kāi)的。
因?yàn)橹R(shí)也是有復(fù)利效應(yīng)的狼讨,準(zhǔn)確地掌握越多的知識(shí)點(diǎn)贝淤,在以后的學(xué)習(xí)過(guò)程中,這些知識(shí)點(diǎn)相互之間想成的積極作用會(huì)越來(lái)越大:對(duì)新知識(shí)的理解更快政供,對(duì)問(wèn)題的定位會(huì)更準(zhǔn)播聪,解決問(wèn)題的方法也會(huì)越多朽基。相反,如果你每個(gè)問(wèn)題都得過(guò)且過(guò)离陶,這些結(jié)果的復(fù)合作用就會(huì)導(dǎo)致你今后很難會(huì)有所突破了稼虎。
真的可能被簡(jiǎn)歷騙到
上家的薪資很高,但是實(shí)際能力很不符
有一位面試者在簡(jiǎn)歷里號(hào)稱上一個(gè)工作拿了15k招刨,但當(dāng)我問(wèn)到NSString屬性使用strong還是copy作為關(guān)鍵字的時(shí)候他卻說(shuō)是strong霎俩,甚至連delegate都拿不準(zhǔn)使用strong還是weak,我就有些奇怪了计济。
看技術(shù)博客和技術(shù)書(shū)籍的人還是很少的
只依賴于公司里的項(xiàng)目應(yīng)該是不夠的茸苇,畢竟不是每個(gè)公司里都有上乘的代碼和技術(shù)
面試了大概20個(gè)人,但是真正有看過(guò)技術(shù)博客和技術(shù)書(shū)籍的真的不多沦寂,更別提Github了学密。不過(guò)其中一位面試通過(guò)者是有g(shù)ithub賬號(hào)的,并且有幾個(gè)小項(xiàng)目传藏,印象非常好腻暮,加了不少分。
我相信在這一行的未來(lái)毯侦,簡(jiǎn)歷里面github賬號(hào)和博客絕對(duì)會(huì)越來(lái)越受重視:
1哭靖、一方面簡(jiǎn)歷真的是應(yīng)接不暇,而且同時(shí)千篇一律侈离,很難找出亮點(diǎn)试幽。
2、另一方面卦碾,如果可以把自己的代碼和成長(zhǎng)展示給招聘公司铺坞,就會(huì)使得自己的能力在公司面前變得更加純粹和透明,更有助于找到適合你自己的公司洲胖。
以上就是我上個(gè)月的面試心得济榨,希望大家多交流,有說(shuō)的不對(duì)的地方還請(qǐng)多指正绿映。
(有一句話叫三人行必有我?guī)熐芑鋵?shí)作為一個(gè)開(kāi)發(fā)者有一個(gè)學(xué)習(xí)的氛圍跟一個(gè)交流圈子特別重要,這是我的一個(gè)iOS學(xué)習(xí)交流群605315994叉弦,不管是小白還是大牛都?xì)g迎入駐丐一,大家一起交流成長(zhǎng)!話糙理不糙卸奉,互相學(xué)習(xí)钝诚,共同進(jìn)步!一起加油吧i谩)
我是曉媛凝颇,喜歡記得關(guān)注我哦!
著作權(quán)歸作者所有疹鳄。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)拧略,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。