Android程序員面試造航母,工作擰螺絲?各種緣由大揭祕!

最近,程序員圈子裏流行着一種說法:面試造航母,工作擰螺絲

它描述了程序員工作中的一種怪象,面試的問題各種高大上:

NDK,音視頻開發瞭解過嗎?

講講熱修復,Android的前沿技術瞭解過嗎?

講講你在項目中的優化工作%&*%#@¥……

諸如此類

然而,過五關斬六將,一路拼殺下來,終於拿到了心儀的offer,入職以後,每天干的工作卻是一些簡單的增刪改查,又或者是技術性不強的業務代碼編寫,甚至是一些拷貝粘貼的日常性工作,與面試時的情況大相徑庭,不禁讓人大跌眼鏡。這種說法之所以能夠流傳開來,肯定是引起了廣大碼農們的共鳴,想必很多人都遇到了這種情況。

那麼,如此強烈的反差和對比,到底是什麼原因造成的呢?本文就試圖來一次大猜想,對箇中緣由進行一些分析和總結。

Android程序員面試造航母,工作擰螺絲?各種緣由大揭祕!

工作必需

在展開表達之前,我先說一個關於辦卡的小故事,前一段時間,我去歡樂谷遊玩,當時他們正在大力推銷年卡,一年之內可以不限次數地進園遊覽,價格也相對公道,所以很多人都選擇了購買年卡,我也不例外,辦卡的流程比較簡單,一共就三步:交費,拍照,制卡。輪到我了,交費和拍照都非常順利,可是到了制卡這一步卻出了問題,那個制卡機不能吐卡了,工作人員當時也比較着急,按了按某些按鈕,並用手拍了拍機器,都沒有起作用,制卡機依然不能正常工作,這時候,工作人員只好抱歉地讓我等一等,她叫來了另外一個看起來更爲熟練的同事,很快就把機器修改好了,我也順利地拿到了我的年卡。

這個故事像極了程序員的日常工作,沒錯,如果一切如你所願,用戶輸入的數據非常規整,服務器永遠不會donw機,網絡也不會抖動,各種系統參數的設置也是恰如其分,那麼,你只需要掌握基本的編程知識和技能就足以應對了,然而,理想很豐滿,現實很骨感,各種異常情況、各種突發狀況層出不窮,讓人應接不暇,況且,業務還在飛速發展,技術還在不斷更新迭代,絕對沒有一勞永逸的工作,特別是對於程序員這種職業來說更是如此,這個時候,如果你僅僅只會擰螺絲,對於編程的系統知識掌握不夠深入,對於技術棧的學習不夠全面,那麼,你就會像那個工作人員一樣,面對問題時束手無策,只能求助於他人了,偶爾一兩次倒也不傷大雅,但長此以往,就只能被IT圈所拋棄了。

這確實是一個客觀現實的原因,雖然我們可以調侃這種現象的荒謬,但如果靜下心來思考,會明白這種現象存在即合理,只有全副武裝了自己,讓自己具備“造航母”的一身本事和格局,那麼,我們在日常擰螺絲的工作中,才能更加舉重若輕,遊刃有餘,況且,在工作的舞臺上,只要你足夠優秀,足夠突出,慧眼識珠的領導們自然也會讓你開始“造航母”的,如果入職以後,你一直還在擰螺絲,可能就得反思一下了。

這是第一個原因,也是最務實的、最有可能性的原因,我們接着來看下一個。

Android程序員面試造航母,工作擰螺絲?各種緣由大揭祕!

面試官裝X、炫技

第二個原因就是面試官裝X、炫技,這種情況也會經常發生。作爲一個面試官,他其實是有心理優勢的,自然而然的就認爲自己的水平一定高過候選人(當然這是錯的),更有甚者,一些有自卑心理的面試官,會問出一些所謂“高深”的問題,來顯示自己的能力和水平,這種情況下,如果通篇問下來都是諸如以下的問題,是顯示不出面試官的水平的:

udp是不可靠的傳輸,如果你來設計一個基於udp差不多可靠的算法,怎麼設計?

講解下etcd幹什麼用的,怎麼保證高可用和一致性?

講下raft算法的基本流程?raft算法裏面如果出現腦裂怎麼處理?有沒有了解過paxos和zookeeper的zab算法,他們之前有啥區別?

了不瞭解tcp/udp,說下兩者的定義,tcp爲什麼要三次握手和四次揮手?tcp怎麼保證有序傳輸的,講下tcp的快速重傳和擁塞機制,知不知道time_wait狀態,這個狀態出現在什麼地方,有什麼用(參考quic)?

redis有沒有用過,常用的數據結構以及在業務中使用的場景,redis的hash怎麼實現的,rehash過程講一下和JavaHashMap的rehash有什麼區別?redis cluster有沒有了解過,怎麼做到高可用的?redis的持久化機制,爲啥不能用redis做專門的持久化數據庫存儲?

如果全是這樣的問題,是不能體現面試官b格的,他必定是要你手寫算法,除了公司項目之外,業務有沒有研究過知名項目或做出過貢獻?等等,這樣才能提高他的身段,換句話說,有些面試官甚至把面試當成了自己裝X、炫技的一個舞臺。

這是第二個原因,這種情況的可能性也不小。

Android程序員面試造航母,工作擰螺絲?各種緣由大揭祕!

拒絕候選人

第三個原因就是通過一些高深的問題來拒絕候選人,面試的時候問你怎麼“造航母”,直到你回答不上來,然後讓你感覺達不到職位的要求,通過這樣的方式來將你拒之門外。什麼時候會發生這樣的情況呢?可能性也比較多:比如面試官是一個古板的人,但你的言談舉止稍顯輕佻;比如面試官非常討厭紋身,但你恰恰在顯眼處紋了一個;比如面試官是個潔癖,但你當天恰好沒有收拾得那麼幹淨;甚至,你長得像面試官前女友的現男友。。。

這種情況其實是存在的,很多時候,面試就跟相親一樣,如果沒有眼緣,或者氣質相去甚遠,那麼面試成功的可能就會變得很小,既然氣場不合,那面試官就會想方設法打發你走,問一些高大上的問題就成了一種常用的手段,這樣至少不會把氣氛搞得很尷尬,最後也讓候選人知難而退,而真正的原因也有面試官心知肚明瞭。

壓價

第四個原因就是壓價,候選人可能各個方面都比較合適,但要價相對偏高,那這種時候怎麼辦呢?其中一種手段就是問一些深奧的問題,壓壓候選人的銳氣,讓候選人覺得自己原來還那麼多東西沒有掌握,然後面試官再適時地提示薪酬方面的問題,受到打擊的候選人可能就會在工資問題上做出讓步。

看看,這種迂迴戰術在面試過程中也是存在的,項莊舞劍,意在沛公,表面上看起來是問你技術問題,但其實是嫌你要的工資太高了,特別是,如果你的期望薪酬還高過面試官的話,甭提他心理有多不爽了,當然得搞一些難題來爲難爲難你。學海無涯,知識的東西是沒有盡頭的,面試官既然能做爲面試官,必然有他的過人之處,至少也得到了大家的認可,所以他要想問倒你,其實是不難的。

這是第四個原因,除了上面提到的這些,還有一些其它的因素導致了這種現象,我們來看最後一個原因。

Android程序員面試造航母,工作擰螺絲?各種緣由大揭祕!

其他方面

還有一些其他原因導致“面試造航母,工作擰螺絲”:

  • 面試官的心情不好。比如面試官上班坐地鐵的時候,被人踩了一腳,心情異常不美麗,或者面試前與產品經理吵了一架,或者剛好被領導批評了,這時他正想找個人發泄一下情緒,通過問一些“造航母”的問題來虐一下候選人,來找一些心理上的平衡。

  • 套方案。在研發過程中遇到了一些非常棘手的問題,暫時又沒有找到一些好的解決方案,把這種問題當做面試題,試圖從候選人那裏獲得問題的解決辦法,這種情況也並非罕見,因爲問題較難,所以當然會歸到“造航母”的類別。

上面羅列了“面試造航母,工作擰螺絲”這種怪象的種種原因,你覺得還有其他原因嗎?歡迎來補充。

什麼?你也想擁有造航母的能力?

還是先學着吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章