程序員面試,為什么不跟我談高并發(fā)?

作為一個看過幾千份簡歷,面試過幾百人的面試官,常常會看到簡歷中有如下文字:

對業(yè)務(wù)邏輯解耦,高并發(fā)等有比較深入的研究和豐富的開發(fā)實戰(zhàn)經(jīng)驗

對解決高并發(fā)問題有深入理解

熟悉大并發(fā)技術(shù),如:反向代理、負(fù)載均衡、Keepalived

而當(dāng)我在面試中,問及對方的職業(yè)規(guī)劃的時候,也有一大半人會回答

希望將來可以處理高并發(fā)業(yè)務(wù)

希望學(xué)習(xí)高并發(fā)相關(guān)技術(shù)

希望開發(fā)數(shù)千萬/數(shù)億級別并發(fā)的應(yīng)用

但是當(dāng)我問及以下問題的時候,絕大多數(shù)人都會麻爪:

負(fù)載均衡有幾種分配方式?(大概不到1/10的簡歷提及高并發(fā)的人能答出來)

有沒有用任何方式(比如虛擬機(jī))模擬過各種集群(API服務(wù)器,數(shù)據(jù)庫,CDN等等)?

有沒有用任何方式測試過采用了高并發(fā)應(yīng)對策略后對項目的改進(jìn)和提升?數(shù)據(jù)有什么變化?

如果業(yè)務(wù)規(guī)模再次擴(kuò)大,下一階段應(yīng)該用什么技術(shù)和策略?

問題就在這里了,

為什么我會把簡歷里提及“高并發(fā)”的絕大多數(shù)人KO掉,或者在面試中,對職業(yè)規(guī)劃只有“高并發(fā)”的人發(fā)拒信?

很愛“高并發(fā)”的面試者,應(yīng)當(dāng)如何在簡歷中體現(xiàn)自己的能力和期待?

首先,絕大多數(shù)人沒有考慮過如何把技術(shù)應(yīng)用于高并發(fā)場景

以PHP碼農(nóng)圈子而言,絕大多數(shù)用PHP的企業(yè)都是初創(chuàng)或者早期公司或者技術(shù)儲備并不豐富的中小企業(yè),這些企業(yè)做正常業(yè)務(wù)的很難有做高并發(fā)的使用場景。(例外:涉黃,涉賭,超大企業(yè)【騰訊華為之類】外包團(tuán)隊)

因此,大多數(shù)的初中級PHP碼農(nóng)是沒有機(jī)會在生產(chǎn)環(huán)境應(yīng)用高并發(fā)相關(guān)技術(shù)的,自然也就不會有什么積累和心得。

我經(jīng)常會問沉迷于高并發(fā)的面試者:當(dāng)你有了一個數(shù)千萬乃至數(shù)億級別的高并發(fā)解決方案的時候,你準(zhǔn)備用在哪里?讓誰買單?

顯而易見,買單的是企業(yè),企業(yè)為用戶服務(wù),但是這樣規(guī)模的企業(yè)本身已經(jīng)不是很多,而且它們使用的方案或者是已有的成熟方案,或者是企業(yè)內(nèi)部長期迭代得來,不太會有人冒業(yè)務(wù)中斷的風(fēng)險去應(yīng)用一套外部的沒來頭的方案。

另外,解決高并發(fā)的方案不是單純的三五項技術(shù),而是許多套完整的技術(shù)棧,把它運行起來需要一個完整的研發(fā)、運維團(tuán)隊來進(jìn)行支持,沒有幾個單獨的個人可以百分百解決,那么這個人的技能短板會立刻導(dǎo)致方案不可靠。

因此,脫離使用場景的技術(shù)價值是要大打折扣的。

第二,高并發(fā)背后的高成本是大多數(shù)人沒有考慮過的

硬件成本的問題:一般在企業(yè)中做開發(fā),都至少要有開發(fā)環(huán)境,集成測試環(huán)境,生產(chǎn)環(huán)境,有的時候還需要有鏡像的災(zāi)備環(huán)境。如果用了服務(wù)器集群,那么高并發(fā)方案的服務(wù)器的數(shù)量就要比堆硬件硬抗的方案翻好幾倍。而且運維的成本也會增加很多。

人力因素也很重要,人肉運維自然是成本貴,能寫程序搞自動運維的工程師顯然更貴。

成本需要企業(yè)來買單,程序員學(xué)了用了新技術(shù)開心了,企業(yè)成本提高做掛了顯然不是企業(yè)想看到的。

因此,如何用各種方式降低你的方案的成本【比如在虛擬環(huán)境做各種測試】并且說服企業(yè)應(yīng)用,是面試者要思考的問題。

第三,高并發(fā)只是業(yè)務(wù)規(guī)模巨大導(dǎo)致的眾多嚴(yán)重問題中的一個,還不一定是最重要的那個

高并發(fā)只是表象,業(yè)務(wù)規(guī)模用戶規(guī)模巨大會導(dǎo)致一系列嚴(yán)峻問題,不僅僅是高并發(fā)。

舉例來說,團(tuán)購秒殺拍賣之類的場景是常見的高并發(fā)應(yīng)用場景??偠灾际琴u貨,但是在賣貨的大前提下,商品庫存數(shù)字的變化(要不要實時,要不要各端同步),訂單狀態(tài)變化對業(yè)務(wù)流程的影響(下單減庫存還是付款減庫存還是發(fā)貨減庫存,預(yù)售和返現(xiàn)等營銷行為導(dǎo)致的錢款卡券變化)都有可能導(dǎo)致整個方案變化?!鞠胂?2306,處理商品庫存數(shù)據(jù)的實時性要比處理高并發(fā)請求復(fù)雜的多】

因此,結(jié)合具體業(yè)務(wù)場景,展示出面試者在整個業(yè)務(wù)場景中,包含但不限于高并發(fā)技術(shù)而體現(xiàn)出來的價值,才能為面試加分。

第四,你說你擅長高并發(fā),你得要證明給我看

從面試的角度來說,我除了預(yù)設(shè)的面試題之外,還會很細(xì)致的詢問對方的簡歷細(xì)節(jié)。

知乎用戶:為什么有面試官喜歡讓面試者用紙筆寫代碼?

面試者在簡歷上寫了擅長高并發(fā),那我就要三段論問一下:是什么問題,怎么解決的,效果如何?

即使去掉偽造簡歷和過度美化簡歷的人,仍然有大多數(shù)人無法回答第三個“效果如何”的問題。

大量的聲稱研究過負(fù)載均衡的面試者都是用兩三臺電腦搭一個環(huán)境測試能夠?qū)崿F(xiàn)平均分配的負(fù)載均衡策略,但是如果問“如果我想測試三五臺或七八臺服務(wù)器的場景應(yīng)該如何實現(xiàn)?”就又答不出來了。

(答案:現(xiàn)在有docker,古時候有各種虛擬機(jī)【vmware,virtual box】和云端部署【gae,sae之類】,實在不行還可以用各種云服務(wù)器的按量付費按小時啟動服務(wù)就好)

因此,用豐富的細(xì)節(jié)和深刻理解的心得體會來證明面試者的技能水平,是面試要解決的一個最核心的問題

總結(jié):

掌握高并發(fā)技術(shù)不是壞事,技術(shù)好不僅僅體現(xiàn)在能處理高并發(fā)

有水平需要證明,證明需要實踐(企業(yè)沒有責(zé)任挖掘面試者的價值,面試者需要自己證明)

能解決實際業(yè)務(wù)問題的技能才是企業(yè)需要的,企業(yè)里沒有龍,面試者的屠龍之技就沒有賣點

不要過度美化簡歷(我的建議:至少要能夠抗住3-5個刨根究底的問題才能寫到簡歷上)

以上就是我的分享。感謝各位耐心的看完文章,最后再分享一個我自己的后端技術(shù)群,群里自己收集了很多Java架構(gòu)資料,大家可以進(jìn)群免費領(lǐng)取群號:680075317,也可以進(jìn)群一起交流,比如遇到技術(shù)瓶頸、面試不過的,大家一些交流學(xué)習(xí)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 人間有壞人,也有好人。這個社會上永遠(yuǎn)是好人很多,好人活得更好。在我們還年輕的時候,這必須當(dāng)成信仰。在漫長的人生歲月...
    糖鑫鑫閱讀 759評論 1 4
  • 小弟家陽臺上養(yǎng)著兩棵茶樹,是年初他們單位送的,在母親辛勤的照料下,長勢喜人,已有半米多高。 上月底我們剛從深圳回來...
    儷米閱讀 1,001評論 2 3
  • 1有多少人,在收到一條半生不熟的朋友的微信后,因為心里想“我沒空”而選擇性忽視?然而你習(xí)慣性點擊朋友圈五顏六色的圖...
    麥琪的英語閱讀 1,035評論 0 0

友情鏈接更多精彩內(nèi)容