技術(shù)面試?yán)鲜怯袆攀共怀鲈撛趺崔k
又到了一年金三銀四,回想到很多年前我剛參加工作時(shí)的面試經(jīng)歷,那時(shí)都是呆呆地等著面試官問問題,被問到一些自己并不熟悉的問題時(shí)要不就是思考半天也切不中要點(diǎn),要不就只能無奈地回答并不清楚了。其實(shí)不管是經(jīng)驗(yàn)不足的初級工程師,還是面臨更高要求的資深工程師,在面試上都會有一樣的困擾:如何在掌握的知識有限的情況下,完成好一場高質(zhì)量的面試呢?下面是小編為大家收集關(guān)于技術(shù)面試?yán)鲜怯袆攀共怀鲈撛趺崔k,歡迎借鑒參考。
本文最適合以下幾種情況的同學(xué)參考:
1.知識面有限的初學(xué)者
2.希望首次加入大公司的技術(shù)同學(xué)
3.面臨技術(shù)深度要求的技術(shù)同學(xué)
雖然文中主要以后端開發(fā)為例介紹技術(shù)面試的準(zhǔn)備方法,但是和其他崗位的面試也有相似之處,其他朋友也可以作為參考。
兩個(gè)悲劇的面試故事
小黃去年剛從計(jì)算機(jī)專業(yè)畢業(yè),但是感覺對技術(shù)掌握得還不夠,就又報(bào)名參加了一個(gè)培訓(xùn)班,年底剛從培訓(xùn)班畢業(yè),懷揣著精心準(zhǔn)備的簡歷,想到杭州闖一闖。今天上午到了一家裝修還不錯(cuò)的公司面試,感覺這家公司窗明桌凈,辦公桌前都是Mac筆記本加雙屏顯示器,比昨天面的那家外包公司可好多了,心想一定要好好發(fā)揮抓住這個(gè)機(jī)會。
老王工作五六年了,今年剛從一家不小的公司出來,公司效益不好,年底裁員了,不幸老王在年前的最后一次裁員名單中中獎(jiǎng)了。雖然短期內(nèi)也沒什么太大的經(jīng)濟(jì)問題,但是之前拿到offer的都是一些沒上軌道的小公司,跟之前待過的公司比總感覺是明珠暗投不太甘心。這次面試的公司看上去還滿正規(guī)的,如果能進(jìn)去,就算不漲薪,但是心理上落差總是小一點(diǎn)。
小黃按部就班地說完了自己準(zhǔn)備的項(xiàng)目介紹,然后面試官就照著簡歷問了起來。“你熟悉MySQL數(shù)據(jù)庫?”,“對”,“唔...那你能說說MySQL常用的有哪幾種存儲引擎嗎?”,“啊?什么是存儲引擎?”。小黃心想,昨天復(fù)習(xí)了面試寶典里的數(shù)據(jù)庫索引,老師說這個(gè)是要點(diǎn),面試官怎么不按常理出牌呢。“你簡歷上寫了使用過Kafka消息中間件?”,“嗯,對的”,“那你能說說Kafka的拉模型和其他推模型消息中間件的區(qū)別嗎?”,“...”,“今天面試就到這里,有后續(xù)的話HR在一周內(nèi)會聯(lián)系你的”。
老王在隔壁的會議室里坐了下來,面試官讓老王先介紹一下自己最近比較有代表性的項(xiàng)目,老王大概說了說自己這兩年做的一個(gè)平臺的功能。面試官問:“在這個(gè)項(xiàng)目過程中你有碰到什么印象比較深的技術(shù)難點(diǎn)或者業(yè)務(wù)難點(diǎn)嗎?”,老王想了一想,感覺一下子有點(diǎn)想不起來。面試官繼續(xù)問:“剛才你介紹的項(xiàng)目里有說到XXX功能,那在YYY異常情況下如果處理ZZZ問題呢?”。老王心想以前也沒考慮過這個(gè),那我就直接現(xiàn)場推敲一下吧,“這里要先這樣,對了,那里要那樣,不對,這里還有一種情況”。十分鐘過去了,老王還在原地兜著圈子,而且絲毫沒有停下來的意思。面試官只能打斷老王換了一個(gè)問題:“那你能介紹一個(gè)你有過深入了解的技術(shù)嗎?”,老王:“我好像這幾個(gè)都了解一點(diǎn)”。“那關(guān)系型數(shù)據(jù)庫中的聚集索引和非聚集索引有什么區(qū)別呢?”,“好像這兩個(gè)的存儲方式有點(diǎn)不同,非聚集索引開銷會大一點(diǎn)”,“那么為什么非聚集索引開銷會比較大呢?”,“這個(gè)問題好像要涉及操作系統(tǒng)之類的知識,有點(diǎn)太深了”。40分鐘后,老王也結(jié)束了面試。
工程師何苦為難工程師?
為什么面試官老是會問一些莫名其妙的問題?我怎么可能了解計(jì)算機(jī)方面的所有問題呢?為什么他問得這么深,寫代碼的時(shí)候能有什么用?
之前我在一次失敗的面試之后總是感覺有點(diǎn)不舒服,我感覺我的水平也是挺不錯(cuò)的,為什么到了面試就總感覺發(fā)揮不出,而且老是被“虐”呢?下面我們一起來想想辦法。
該怎么辦?不打無準(zhǔn)備之仗!
如何完成好一場高質(zhì)量的面試?這是我們在文章一開頭提出的問題。首先我們要知道,我們掌握的知識一定是有限的,不管學(xué)到了多少,仍然還會有不知道的知識。特別是對技術(shù)深度有要求的資深崗位,想要面面俱到幾乎是一個(gè)不可能的任務(wù)。但是為什么有些人就能很輕易地拿到offer呢?
首先,我們分析一下一場面試的結(jié)構(gòu)。
面試的結(jié)構(gòu)
一般技術(shù)面試都會分為四個(gè)部分:項(xiàng)目介紹/自我介紹、技術(shù)能力問答、綜合能力問答、反向提問環(huán)節(jié)。而其中前三個(gè)部分對面試的成敗影響最大。首先,面試一般都會以項(xiàng)目介紹/自我介紹來進(jìn)行切入,其實(shí)技術(shù)面試的自我介紹主要也是介紹自己的項(xiàng)目經(jīng)驗(yàn)。然后會穿插著對技術(shù)能力和綜合能力的評估,一般這一步都會由之前的項(xiàng)目介紹引申出來。
一般來說,面試官在每個(gè)環(huán)節(jié)希望了解的主要是:
1.項(xiàng)目介紹——基本背景、擅長的業(yè)務(wù)領(lǐng)域、解決問題的能力、技術(shù)層級
2.技術(shù)能力問答——技術(shù)深度、分析能力、抽象能力、學(xué)習(xí)能力
3.綜合能力問答——工作素養(yǎng)、協(xié)作能力、學(xué)習(xí)素養(yǎng)
雖然看上去眼花繚亂的非常多,其實(shí)核心關(guān)注的就是幾點(diǎn):技術(shù)好、好合作、主動(dòng)性強(qiáng)。
對于大部分面試官來說,一般也不會做太多事前準(zhǔn)備和細(xì)密的事后分析,大多都是靠一個(gè)大概的印象來做出判斷的。所以面試的一個(gè)訣竅就是:突出亮點(diǎn)。一旦面試中有讓人印象深刻的亮點(diǎn),其他方面只要不是太差一般面試就十拿九穩(wěn)了。
單點(diǎn)突破
但是很多讀者應(yīng)該和我以前一樣,覺得自己好像也沒什么亮點(diǎn)啊,總感覺沒什么特別的可說。但是通過總結(jié)和準(zhǔn)備,我相信每一個(gè)人都可以有自己的亮點(diǎn),而且是很多個(gè)亮點(diǎn)。
首先,我們可以通過總結(jié)來得到一份優(yōu)秀的項(xiàng)目介紹。關(guān)鍵點(diǎn)就在于不能光介紹項(xiàng)目完成的需求,因?yàn)檫@些對于面試官來說并沒有什么價(jià)值,畢竟我們面的是開發(fā)崗位不是產(chǎn)品崗位:)在項(xiàng)目介紹中,我們應(yīng)該明確描述我們在項(xiàng)目中解決的問題,包括技術(shù)難題和業(yè)務(wù)難題。如何表述可以參考一下現(xiàn)在流行的STAR法則,即在什么情況下(Situation),面臨一項(xiàng)什么樣的任務(wù)(Task),采取了什么樣的行動(dòng)(Action),達(dá)到了怎樣的結(jié)果(Result)。這樣的表述可以很好地展示自己的解決問題能力,充分顯示了自己在工作中的主動(dòng)性。
然后,我們還可以通過準(zhǔn)備來深挖幾個(gè)在工作中比較重要的技術(shù)點(diǎn)作為“技術(shù)亮點(diǎn)”展示,這指的不是僅僅通過“面試寶典”來準(zhǔn)備的膚淺的理論知識,而應(yīng)該是能做到真正的言之有物、切中工作要點(diǎn)的實(shí)踐性的深入知識點(diǎn)。這一步是本文所有面試準(zhǔn)備技巧中唯一對技術(shù)水平有要求而且是要求很高的步驟,技術(shù)水平不夠的朋友可能發(fā)愁怎么準(zhǔn)備,技術(shù)水平比較高的朋友可能又會疑惑到底什么是實(shí)踐性的深入知識點(diǎn)。大家不用擔(dān)心,我已經(jīng)為大家準(zhǔn)備好了學(xué)習(xí)材料或者說是參考樣例。通過學(xué)習(xí)或參考工作經(jīng)驗(yàn)較豐富者的總結(jié)文章我們可以更容易地獲得自己的技術(shù)亮點(diǎn)。
實(shí)踐性的深入知識點(diǎn)的最大特點(diǎn)就是:工作中會使用且可以層層深入形成問題鏈條。關(guān)系型數(shù)據(jù)庫是后端開發(fā)離不開的技術(shù),而數(shù)據(jù)庫索引又是程序中的SQL語句執(zhí)行效率的關(guān)鍵,大家可以通過我之前編寫的一系列數(shù)據(jù)庫索引相關(guān)的文章來了解一個(gè)實(shí)踐性的深入知識點(diǎn)到底長什么樣。后續(xù)我也會不斷更新更多淺顯易懂的高階技術(shù),有興趣的朋友可以持續(xù)關(guān)注一下。下面的文章主要以知識點(diǎn)講解為主,需要具體的一系列相關(guān)面試題的朋友可以在文后留言,如果人數(shù)比較多我會考慮另外寫一篇文章講解具體的面試題并鏈接到對應(yīng)的知識點(diǎn)。
1.數(shù)據(jù)庫索引是什么?新華字典來幫你 —— 理解
2.數(shù)據(jù)庫索引融會貫通 —— 深入
3.20分鐘數(shù)據(jù)庫索引設(shè)計(jì)實(shí)戰(zhàn) —— 實(shí)戰(zhàn)
4.數(shù)據(jù)庫索引為什么用B+樹實(shí)現(xiàn)? —— 擴(kuò)展
連點(diǎn)成面
但是有了準(zhǔn)備之后,我們怎么能防止面試官問出很多超出我們準(zhǔn)備范圍的“奇怪”的問題呢?這就需要我們有效地引導(dǎo)和填充整個(gè)面試的過程。一般一場技術(shù)面試會在40分鐘到60分鐘,如何完成好一場技術(shù)面試的關(guān)鍵就在于如何用亮點(diǎn)來充滿這40到60分鐘。
一般一個(gè)技術(shù)亮點(diǎn)會包含一系列層層遞進(jìn)的內(nèi)容,所以可以問出大概三到五個(gè)問題。如果發(fā)現(xiàn)面試官不知道應(yīng)該如何追問,那么你可以簡短一些地把后續(xù)知識點(diǎn)一次性介紹完。一般這些問題都說完時(shí)間就過去了十到十五分鐘,而項(xiàng)目介紹和相關(guān)的問答會占用大概10分鐘。如果我們準(zhǔn)備了兩個(gè)技術(shù)亮點(diǎn),加上前后的一些非技術(shù)性問題和反向提問,那么基本上一場面試就圓滿地結(jié)束了。
那么如何讓面試官問出自己想問的問題呢?這就需要我們準(zhǔn)備好一個(gè)“劇本”了。
首先,面試的開場一定是項(xiàng)目介紹,可以將我們準(zhǔn)備好的技術(shù)亮點(diǎn)與項(xiàng)目介紹中解決的技術(shù)難題結(jié)合起來,這樣面試官基本都會根據(jù)這個(gè)點(diǎn)繼續(xù)往下追問。
其次,我們還可以對簡歷內(nèi)容進(jìn)行特意的編排來誘導(dǎo)面試官主動(dòng)提出我們準(zhǔn)備好的問題。例如在簡歷中把擅長的技術(shù)放在更靠上的位置突出顯示,并且增加更多的深入解釋。這樣不僅可以引起面試官的注意,還能使簡歷顯得更有技術(shù)含量,更容易通過篩選。
最后,還可以厚著臉皮主動(dòng)提出自己對某一個(gè)領(lǐng)域比較了解,嘗試詢問面試官對這一部分有沒有興趣。
通過上述這三點(diǎn),基本上80%以上的面試就能夠順順利利地圓滿完成了。
問題總結(jié)
在掌握了面試的技巧之后,我們再來看看之前小黃和老王到底犯了什么錯(cuò)誤,我們也能避免踩坑。
初級開發(fā)小黃的問題:
1.惜字如金,沒有充分回答問題;
對于面試官提出的“是否用過”“是否了解”這樣的問題,應(yīng)該補(bǔ)充上能夠證明自己是內(nèi)行的解釋。
2.等著面試官提問,沒有主動(dòng)地引導(dǎo)。
我們應(yīng)該主動(dòng)將問題引導(dǎo)向自己擅長的方面。
資深開發(fā)老王的問題:
1.項(xiàng)目經(jīng)歷沒有準(zhǔn)備;
只講了項(xiàng)目的功能,而不講過程中遇到的業(yè)務(wù)難點(diǎn)和技術(shù)難點(diǎn)。
2.過分糾結(jié)細(xì)節(jié),但是表述又不流暢;
3.問題抓不住重點(diǎn),從細(xì)節(jié)開始推敲,反反復(fù)復(fù)。
表述復(fù)雜問題時(shí)應(yīng)該從宏觀到微觀。先從比較高的層次入手,劃分大的模塊,確定模塊間的交互,然后再逐個(gè)模塊地細(xì)化細(xì)節(jié)。這樣不僅自己能夠更容易地解決問題,而且面試官也更容易理解,避免發(fā)生即使回答了正確答案但是面試官也不認(rèn)同的情況。
相關(guān)文章: