之前,我寫過一篇2018,我要一個新的開始,這個新的開始馬上就要開始啦...
相比前一段時間找工作時的波濤洶涌,這會算得上是風平浪靜了。下面,我就談一下我的面試經歷及面試后的一些感悟。文章最后附上自己總結的面試題,供大家分享交流。由于本人文筆水平很臭,如有不通順的地方可以在評論區指出來,看到我會麻溜的改正!對待學問是馬虎不得的,你說是不?
首先,我想說目前iOS開發工作真的是不好找了(對于大牛,你就當我這話沒說)。這是通過前一段時間我的親身經歷感受到的(怪我水平很臭嘍)。為此,我總結出了以下四點原因:
1、你的不思進取(原諒我說話太直白,可事實就是如此)
2、iOS程序員供大于求,市場已經飽和
3、移動互聯網行業的逐漸成熟導致用人單位要求越來越高
4、來自小程序的沖擊
前面說了,如果你是大牛,還用去找工作?工作都來找你了(大牛就是這么牛)。而你呢?還是好好反省反省吧!至于市場飽和,相信大家都早已經得到這個消息了。這其中既有移動互聯網前期積累的泡沫破裂的原因,也有大量新的iOS開發者不斷涌入的問題。我的iOS技術交流QQ群里時不時會有人出來吆喝一句“iOS已經爛大街了,沒人要了”。都爛大街了,好憂傷!至于用人單位要求越來越高,我就不解釋了,這個是你需要去好好反省反省的。最后我提到了小程序的沖擊。為什么這么說呢?因為我感覺到小程序把一部分人的視線轉移到了輕應用上面去了,這就導致一些native移動端的業務被小程序給搶走了。不過對一些業務比較簡單的場景來說,小程序的確是一種比較合適的解決方案。一個是節省成本;另一個是方便快捷。總之,現在的iOS開發工作真的是越來越難找了。
分析了大的市場行情,再來看一下公司。公司如人,人有靠譜和不靠譜之分,公司亦是如此。前段時間的面試讓我感覺到一個靠譜的公司招人還是挺難的。大牛不好請(關鍵是貴啊),小牛又看不上,而且還怕被忽悠,同時又要控制人力成本,所以用人單位考慮的要比應聘者多,他們一般情況下會找一個平衡點。即既要達到崗位要求,人力成本又要在可接受的范圍之內。所以在招聘上那是一個糾結啊!稍微大一點的公司可能主要考慮聘者的技能了,因為大公司業務龐雜,規模和實力是小公司比不了的,對人才的渴求遠比小公司要大。如何進大公司呢?是不是又該反省了!!!
啰嗦的有點多,我的開場白就到這里吧!下面說一下我的面試經歷。
由于上家公司待的比較久,平常只顧擼碼,導致忽視了知識點的總結。一下進入面試狀態,面對面試官那么多的技術點問題,還真有懵!所以第一天在面試昆侖億發股份科技
和51Talk
兩家公司時表現不理想。由于好久沒有參加過面試了,心理上沒準備好,語言組織的不好,技術點回答的不到位,導致整個面試過程感覺比較糟。完全不在狀態啊!相比第一家昆侖億發股份科技
,第二家51Talk
表現的比較從容一點,一面我感覺問題不大。可二面的問題感覺有點奇葩,有點吃不準。比如面試官司問你之前公司(P2P金融)有催收嗎?是怎么催收的?針對第一個問題我回答有,但第二個問題我該怎么回答。我有點方,不知道他想考什么。是考查我對公司業務的了解程度還是試懷疑我之前待的公司是否是一個不正當的打手公司。我笑笑,沒說話...不過挺郁悶的。我一個程序員一定要去了解催收部門的手段嗎???第一天就碰了倆釘子。不過也沒關系,成事開頭難嘛。隨即,我加強了技術點的學習總結和面試技巧的學習。
面試是切磋,更是交流。通過面試,即能發現自身的不足,又能對自己從事的工作有更全面的了解。接下來的面試我去了滴滴、58同城、懂球帝、皇包車旅行、借貸寶、羅輯思維、美團、新浪
等公司。滴滴的面試是印象最好的。面試官比較隨和,專業,干脆,幾個問題下來明顯的能感覺到對方內功很深;58同城
主要問的最近的項目,你在項目中做了哪些東西以及工程中使用到了哪些比較好的技術點;懂球帝
問的問題便向設計,不過面試官的態度不怎么友善,一副不耐煩的樣子;皇包車旅行
問的主要是設計方面的問題,便向于架構方面;借貸寶
是感覺最不好的一個,老是被打斷,都不能了好的表達自己了,所以聊到一半我就放棄離開了;羅輯思維
面試官挺溫和的,感覺不錯;美團
面試官是綿里藏針,要小心回答面試官的問題,不要打哈哈;新浪
面我的是一個老程序員了(大牛),問的東西比較大,而且偏向后端的大并發,有點小郁悶。為什么不找一個iOS程序員跟我聊呢?在跟不同的面試官溝通交流的時候的確學到了不少的東西,而且還增加了不溝通交流的技巧。最重要的就是跟很多同行過了招,發現了自身的很多不足不處,這會還在反省呢!
總結一下面試的要點:
1、充分準備,保持心態平和
2、尊重面試官司,包容心
3、隨機應變
4、在面試中不斷學習總結,為下一次面試做準備
5、不卑不亢,敢于表達自己
6、坦承
做到以上幾點,感覺offer也離你不遠了!
經過辛苦的耕耘,最終拿到了4家公司的offer,對這份成績還算滿意。不過,前路仍然漫漫,需要更加努力!
最后還有一個比較痛的領悟:
機會總是留給有準備的人的
機會總是留給有準備的人的
機會總是留給有準備的人的
ok!下面奉上本人總結的iOS面試題:
1、說一下OC的反射機制;
2、block的實質是什么?有幾種block?分別是怎樣產生的?
3、__block修飾的變量為什么能在block里面能改變其值?
4、說一下線程之間的通信。
5、你們應用的崩潰率是多少?
6、說一下hash算法。
7、NSDictionary的實現原理是什么?
8、你們的App是如何處理本地數據安全的(比如用戶名的密碼)?
9、遇到過BAD_ACCESS的錯誤嗎?你是怎樣調試的?
10、什么是指針常量和常量指針?
11、不借用第三個變量,如何交換兩個變量的值?要求手動寫出交換過程。
12、若你去設計一個通知中心,你會怎樣設計?
13、如何去設計一個方案去應對后端頻繁更改的字段接口?
14、KVO、KVC的實現原理
15、用遞歸算法求1到n的和
16、category為什么不能添加屬性?
17、說一下runloop和線程的關系。
18、說一下autoreleasePool的實現原理。
19、說一下簡單工廠模式,工廠模式以及抽象工廠模式?
20、如何設計一個網絡請求庫?
21、說一下多線程,你平常是怎么用的?
22、說一下UITableViewCell的卡頓你是怎么優化的?
23、看過哪些三方庫?說一下實現原理以及好在哪里?
24、說一下HTTP協議以及經常使用的code碼的含義。
25、設計一套緩存策略。
26、設計一個檢測主線和卡頓的方案。
27、說一下runtime,工作是如何使用的?看過runtime源碼嗎?
28、說幾個你在工作中使用到的線程安全的例子。
29、用過哪些鎖?哪些鎖的性能比較高?
30、說一下HTTP和HTTPs的請求過程?
31、說一下TCP和UDP
32、說一下靜態庫和動態庫之間的區別
33、load和initialize方法分別在什么時候調用的?
34、NSNotificationCenter是在哪個線程發送的通知?
35、用過swift嗎?如果沒有,平常有學習嗎?
36、說一下你對架構的理解?
37、為什么一定要在主線程里面更新UI?
下面還有一些更干的面試題,你值得擁有!
招聘一個靠譜的 iOS
github里面有大神附上了答案
招聘一個靠譜的 iOS 答案
這里還有MrPeak大神的中級面試題
iOS 中級面試題
下面是答案
iOS 中級面試題 答案
明天放假!
祝小伙伴們“五一”國際勞動節快樂啊!
更新
MrPeak 大神的中級面試題的答案鏈接中,有的答案不準確,僅供小伙伴們參考!