離職的時候,公司領導問我接下來是否是繼續(xù)從事 iOS 行業(yè)因妇,我略帶羞澀地回答“接下來估計會找產(chǎn)品經(jīng)理項目經(jīng)理這樣的職位问潭,去從事工作中包含更多與人溝通內(nèi)容的職業(yè)”。領導點點頭婚被,還給了我一些不錯的建議狡忙。
近兩年,在業(yè)界周知的是移動端 iOS址芯、Android 的開發(fā)每況愈下灾茁,這不單單是因為跨平臺的開發(fā)越來越出色,更主要的原因是在于移動端的開發(fā)相對簡單谷炸,不需要程序員動很多的腦子北专,只要搭建漂亮的界面,而所需的控件大部分都已經(jīng)被官方寫好了淑廊。
在與老同事依依惜別之后逗余,我終于來到了上海,投簡歷的時候依然是“iOS 開發(fā)工程師”季惩,原因很簡單录粱,雖然我以前做過產(chǎn)品經(jīng)理的活腻格,但我主要還是個 iOS 開發(fā),而直接去投產(chǎn)品經(jīng)理的崗位估計會無人問津啥繁。
但事實是菜职,我在51、智聯(lián)旗闽、獵聘上投了幾家招聘 iOS 的公司酬核,幾天過去——無人問津。
離職之前适室,我設想的是:第二家公司要么去大廠嫡意,可以學習到先進的技術(shù)和團隊管理經(jīng)驗;要么去小的公司捣辆,可以擔任更多的職責蔬螟,從而磨煉自己的能力。我個人更傾向于后者汽畴。
從長遠來看旧巾,一直當個程序員寫代碼不是長久之計,哪怕三年五載之后自己變成行業(yè)的大神忍些,可那個時候的iOS行業(yè)估計不會比現(xiàn)在好鲁猩。
幾天過去,我的簡歷除了被幾個提供海外東南亞國家工作的獵頭看上罢坝,其他公司的人事基本上都是看過之后就直接放進人才庫廓握。我因此非常焦慮,想著自己就要在上海當一個無業(yè)游民炸客,整日無所事事了疾棵。無所事事令我焦慮,焦慮令我無法靜下心來學點東西痹仙,無所學便無所進步是尔,接著有一種人生開始變得灰暗了的感覺。
后來我改變了策略开仰,調(diào)整了簡歷內(nèi)容拟枚,主要是讓HR可以看到簡歷上的關鍵字與他們的招聘對應,接著一口氣投了50家公司众弓,沒想到這下效果立竿見影恩溅,當天就收到面試邀請,隔天又收到兩家面試邀請谓娃。
我逐一去查了邀請面試的公司脚乡,都是初創(chuàng)公司和外包公司,看過他們的產(chǎn)品也差強人意滨达,于是簡單地溫習了一下面試題后便面試去了奶稠。
2019年4月4日俯艰,星期五。
今天有兩場面試锌订。接下來是清明3天小長假竹握,公司都放假了,自然也就不會有面試了辆飘。前一家面試公司的聘用電話已經(jīng)打來了啦辐,我暫時壓下了,說想考慮一段時間蜈项,主要也是想對比各個公司的情況芹关。
今天第一場面試非常順利,第二次是臨時安排的紧卒,在趕去的路上簡單 Google 了下這家公司充边,也是家外包公司,做金融產(chǎn)品的常侦,這樣的公司在上海估計一抓一大把,因此心里想跟前面的公司區(qū)別不大贬媒。
可實際的情況是——區(qū)別很大A觥!际乘!
面試我的是一個看起來完全不太像程序員的程序小哥坡倔,濃密的頭發(fā),娃娃臉脖含,個子不算高罪塔,看起來很干練的樣子,眼神犀利卻無兇氣养葵。
首先是自我介紹征堪,我說了一下大學以來的經(jīng)歷,對我來說很輕松关拒。
然后問我以前做的產(chǎn)品中用到了哪些技術(shù)佃蚜,這個倒有點令我不知從何開始了,因為我覺得自己寫過的代碼都挺簡單的着绊,要是說一些控件和第三方是不是顯得很 low谐算?于是我說了推送的集成,其中運用了通知和消息兩種方式(我的回答:通知可以在前臺與后臺都收到归露,但是得走蘋果的APNS洲脂,處理起來相對麻煩;而消息只能在前臺收到剧包,是通過 App 內(nèi)的長鏈接實現(xiàn)的恐锦,集成簡單往果;而在我的產(chǎn)品中把兩者都實現(xiàn)了,且可以根據(jù)場景互相切換)踩蔚。但我萬萬沒想到接下來開始了我非常尷尬的“表演”棚放,而此時的我還不知道坐在我面前的是一個8年開發(fā)經(jīng)驗的大神。
當我把回答中的消息說完時馅闽,小哥馬上問道:那么消息是怎么實現(xiàn)的呢飘蚯?
這時我吃了一驚,一般 iOS 面試說到推送不都是講蘋果APNS那套流程嗎福也?而消息是不走APNS的局骤,可我只知道它是應用內(nèi)長鏈接啊。為了避免完全答不上來暴凑,我謹慎地問了下:你指的是消息實現(xiàn)原理嗎峦甩?小哥點點頭:嗯,就是消息具體是怎么實現(xiàn)的现喳。
這時我確定自己回答不了該問題了凯傲,便坦誠地說自己只是經(jīng)常使用消息,但是對其的實現(xiàn)方式?jīng)]有深入的了解過嗦篱。
小哥說好的冰单,補充說:消息需要長鏈接,長鏈接是怎么實現(xiàn)的呢灸促,使用的是socket诫欠、TCP還是TDP,問的就是這個了浴栽。接著再問我:談談你對多線程的了解荒叼。
我回答多線程有3種實現(xiàn)方式NSThread、OperationQueue典鸡、GCD被廓,個人平時開發(fā)主要用GCD,這個比較底層椿每,功能也更強大伊者。于是小哥問我GCD有哪些具體方法和我實際的應用,這個我回答得不錯间护。然后小哥再分別問了NSThread和OperationQueue亦渗,我說只是知道這些,但是實際沒有應用過汁尺,也就無法回答了法精。
小哥點點頭,了解了,談談你對Runloop的理解吧搂蜓。
由于剛剛的回答不好勋桶,我開始有點緊張圾另,竟然把Runloop聽成了Runtime吠冤,于是開始說起了Runtime尼酿,小哥喊停,提醒我是Runloop殉挽,然后我就懵逼了丰涉,準備面試的時候我重點復習了Runtime,而Runloop給忘了斯碌,自己支支吾吾了幾句一死,我再次說道抱歉,表示自己可能開發(fā)中用過Runloop傻唾,但是一點印象都沒有了投慈。
小哥說好的,很有耐心冠骄,也沒露出絲毫鄙視的神情伪煤。接著讓我說說Runtime,我先說了Runtime的消息機制凛辣,小哥讓我解釋Runtime的消息轉(zhuǎn)發(fā)的兩個參數(shù)并詳細說說其中的SEL带族,SEL我只知道它對應的是方法;然后我說了Runtime的應用蟀给,說到給分類實現(xiàn)添加屬性的時候,小哥問我具體如何實現(xiàn)阳堕,這里我只有印象跋理,但具體實現(xiàn)和其方法沒記。
小哥還問了KVO恬总,想必大家都覺得KVO嘛前普,一種不同類之間的通訊方式,觀察對象的屬性壹堰,適合一對多的情況下使用拭卿。但小哥完全不落俗套,問的是如何實現(xiàn)一個KVO贱纠。我又懵逼了峻厚,他考得全都是很底層的問題啊谆焊!或者說惠桃,他的這些問題,我根本就沒準備到位!
當我又打算再一次說抱歉的時候辜王,小哥卻鼓勵我繼續(xù)回答劈狐,讓我再想想,其實我想到了重寫 set 方法呐馆,我當時沒想通的是:雖然在 set 方法里可以知道屬性被修改了肥缔,但該用什么方式如何告訴外界呢?總不能用 delegate 或notification 吧汹来?接著小哥還跟我稍微討論了一下這個問題:重寫 set 方法的思路是對的续膳,接著使用回調(diào)就可以告訴外界了。
技術(shù)的面試大概進行了25分鐘俗慈,我答得不好姑宽,但小哥始終敬而無失,也讓我在內(nèi)心感謝和敬佩他的職業(yè)素養(yǎng)闺阱。
面試后半部分就聊得比較輕松了炮车,這時我才知道小哥已經(jīng)做程序員8年了——真是“其貌不揚”,他各種語言都會寫酣溃,平時主要寫的是 iOS瘦穆,如果按照 iOS 編年史去算的話,小哥在2011年(當時的系統(tǒng)是 iOS 4赊豌,iPhone 4才上市一年)就已經(jīng)開始從事 iOS 開發(fā)扛或,可以算得上國內(nèi) iOS 開發(fā)的大佬了吧。而他是前飛信團隊的碘饼。他們公司是專門做即時通訊第三方SDK開發(fā)的熙兔,專門為各大金融、銀行提供軟件服務艾恼,是一家非常專業(yè)的即時通訊軟件供應商住涉。公司很少需要加班,且周末必定雙休(因為周末股市休市)钠绍,而上海這邊只有他一個 iOS 開發(fā)舆声,因此公司決定再招一個。
當我放松下來之后柳爽,我腦子轉(zhuǎn)得也快多了媳握。這么一個活大佬坐在我面前,為何不跟他聊聊對我職業(yè)生涯有利的話題呢磷脯?所以我問小哥:你從事 iOS 開發(fā)這么久蛾找,現(xiàn)在對 iOS 的看法是怎樣的呢?小哥很實在的回答我說:其實我目前也不怎么看好 iOS赵誓,但是不能只會 iOS腋粥,像React Native晦雨、Flutter都要了解的......
最后從這家面試公司走出來的時候,我感覺興奮極了隘冲。這就是我想要的面試闹瞧,真的暴露我自己不足的面試,可以和厲害的人直接對話展辞,還能為自己指明方向奥邮。
再總結(jié)和對比這兩天的面試,小公司的面試主要談項目經(jīng)驗罗珍,加上幾個基礎題洽腺,另外再提出幾個業(yè)務需求讓你給出簡單的實現(xiàn)方案;而小哥的面試內(nèi)容則是緊扣公司的業(yè)務需求覆旱,更多的涉及底層知識蘸朋,環(huán)環(huán)相扣,而專業(yè)的基礎功底在回答這些問題的時候則暴露無遺扣唱,而這樣的技術(shù)面試則必須要有“精通”的工程師方能設計出來了藕坯。
公司福利到位,周末雙休噪沙,沒有犧牲身體健康的加班炼彪,有牛逼的技術(shù)團隊,不出1年我的專業(yè)功力必然大漲正歼,三年五載后辐马,我也會成為這位小哥一樣對自己專業(yè)非常自信的程序員。不論是公司待遇局义,還是對我的 iOS 技術(shù)提升喜爷,這家公司就是我找 iOS 開發(fā)的理想單位。然而萄唇,當我見識了自己心中理想的單位贞奋,并設想自己進入其中工作和未來幾年前景時,我心中豁然開朗:這很好穷绵,但這并不是我想要的。
于是特愿,我接受了一家規(guī)模較小的公司提供的產(chǎn)品經(jīng)理的職位仲墨。
如果說,當年畢業(yè)時選擇從事 iOS 開發(fā)是為了不錯的收入揍障,那現(xiàn)在選擇產(chǎn)品經(jīng)理的崗位則是為了讓我的天性和工作相結(jié)合目养。我這個人比較擅長和別人打交道,也熱衷于協(xié)調(diào)和整理資源毒嫡,雖然沒有哪樣特別精癌蚁,但什么都會一點幻梯,更重要的一點是,我也覺得懷有匠心精神去做一名工程師挺好努释,我更想做一名創(chuàng)作者碘梢。
我和愛人一起來的上海,兩人都在找工作伐蒂,我面試的這幾天煞躬,她一直陪著我,支持我逸邦,文末表示對摯愛的感謝恩沛。
補充:今天我接到了小哥公司的錄用電話,人事說如果談得攏就可以安排上崗時間了缕减。真沒想到袄卓汀!我內(nèi)心非常感謝小哥的面試桥狡,也非常感謝貴公司對我的認可搅裙。
——2019.04.09
//
// 清風明月時常有
// Created by Cry on 2019/4/8.
// Copyright ? 2019年 FuGui. All rights reserved.
//