IT面試技巧:面試常見的幾個問題
IT技術崗位面試常見問題包括以下幾類問題及回答技巧:
Q1: 挑一個應聘者覺得做的最好的項目講一下。
最好事先把簡歷上面寫的項目或者
課程設計
過一篇,拿張紙寫一寫,盡量把以前做這個項目的時候承擔的任務、角色、遇到的問題用最簡練的語言說出來。同時,處理這個問題時不同的企業(yè)可以選擇不同的項目來回答。如果你沒有項目經(jīng)驗,可以把以前自己做過的作品或實驗拿出來講。要思路清晰,然后重點突出對項目的貢獻以及其它方面的能力。
Q2:應聘者在項目中遇到的最有挑戰(zhàn)性的問題是什么?
要把之前碰到過的有挑戰(zhàn)性的問題以及如何解決的回想一下,首先精簡的描述問題,然后重點在你是如何處理這個問題的。
Q3:從項目中得到的最大收獲是什么?
這個問題比較好回答,答案也可以很發(fā)散,比如:技術水平有了很大的提高;通過解決項目中出現(xiàn)的各種bug,解決問題的能力有了很大的提升;通過幾個人協(xié)同完成一個項目,增強了
團隊合作
精神等等。
Q4:挑一個寫程序中遇到的bug以及如何解決的講一下。
這個問題和Q2有點像,但是限制性小了一點。其實程序中遇到的bug肯定很多很多,但是在沒準備的情況加上面試的緊張下,可能會大腦空白,思路混亂。所以需要事先準備一下。
Q5:項目中用的最多的語言是什么? 或者最擅長的語言是什么?
這個問題出現(xiàn)的概率也是相當之高,回答也要謹慎,要根據(jù)應聘的職位靈活回答。假如申請的職位要求C/C++,那千萬不能只說C,如果你確實對C++不是很熟悉,那么可以換一個說法,比如C++也用,但是用的少,然后舉幾個例子證明你的
學習能力
確實強??傊灰t虛也不要撒謊。
Q6:如果遇到不同意見,如何處理?
這個問題面試官也非常喜歡問,主要考察你的團隊合作精神,是否有包容心接納不同的意見,以及如何處理與他人的沖突。
我是應屆畢業(yè)生,面試的時候應該怎么說
你如果仔細看完下面的內容,一定會對你有用的
開始之前務必記住:
黃金法則:80/20---你要承擔起80%的談話而面試官只會說20%。
白金法則:你必須試著控制面試的節(jié)奏和話題。
鉆石法則:對于沒有把握的問題,拋回給面試官
1. 在一分鐘內介紹一下你自己
這似乎是必答題。
不要以為這很容易。如果你用一分鐘來重復你的簡歷,恭喜你,你的印象加分沒有了!建議你最多用二十秒鐘介紹自己的姓名、學校、專業(yè)。然后話鋒一轉,引出自己的優(yōu)勢或強項。一定要在最短時間內激發(fā)起面試官對你的好感,或者至少是興趣。
成功的模式可以是:我叫XXX,英文名字XXX,XX省XX市人,今年6月將從XX學校XX專業(yè)本科(??疲┊厴I(yè)。除了簡歷上您看到的介紹,我愿意特別說一下我在XXX方面的特長/我最大的特點是……(給出事例)。正是基于對自己這方面的自信,使我有勇氣來應聘貴公司的XXX這一職位。(看表)一分鐘到了,希望我沒有超時。(很陽光的微笑)
如果面試官不是EQ太低,你的最后一句話應該會使他放松和微笑。資歷嫩一點的還會接著問:“為什么你會這么認為呢?”如果他真的這么問你,Bingo!你完全有機會操縱這次面試!
2. 應屆生經(jīng)常會被問到的一個問題是:你為什么會選擇你目前學習的專業(yè)呢?
千萬當心,這個問題的目的是考察你的Decision Quality這一項勝任力,所以不要簡單的說“感興趣”或者“就業(yè)前景樂觀”等。給大家一個成功的范例(同樣適用于諸如‘您所做過的一個成功/最大的決定是什么”):
問:張先生,您為什么會選擇財務專業(yè)呢?
答:的確,財務已經(jīng)連續(xù)多年成為高校熱門專業(yè),這造成了就業(yè)時無可避免的激烈競爭??僧敵跷疫x擇財務專業(yè)時并不是單純因為它的熱門程度。我早就把就業(yè)目標鎖定在蘇州工業(yè)園區(qū)的外資企業(yè)。根據(jù)我高三時搜集到的統(tǒng)計資料,園區(qū)當時有外企XXX家,而且每年以XXX%的速度在增加。以每個公司財務部至少5個人計算(總賬,應收應付,稅務,出納再加上一個經(jīng)理),加上園區(qū)的平均離職率是15%,則在我畢業(yè)時,可以有XXX個空缺。我畢業(yè)那年應該全國有XX相關專業(yè)的畢業(yè)生。其中可能有10%會瞄準蘇州,而我填報的蘇州大學在當?shù)乜诒锌?,屬于中等偏上。那么,?/2的對手能被我淘汰。再加上我就在蘇州本地學習,四年中可以更早的尋求機會,所以,我很有信心的選擇了這個專業(yè)。
其實,沒有哪個面試官會相信你真的作過如此縝密的調查分析,但你已經(jīng)展示了你做決策時的思路,所以可以加分。
記?。核械幕卮鹨夏銓I(yè)的特點。不要說得太到位,可以自圓其說就行了,不然,他們會覺得你要么太虛偽,要么太狂妄。還有,應該表示對自己的專業(yè)的確感興趣,或者增加點戲劇效果:我本來理解的財務管理就是管賬,所以開始的時候還真后悔了一陣,直到大三時開始了在企業(yè)的實踐,才有了改觀,并真正喜歡上了我的專業(yè)。這樣顯得真實可信,更重要的是,很自然的由你引導到準備好的問題:實習的收獲。
3. 為了考察您Learning on the Fly這一條勝任力,通常我們會問您在實習期間的收獲。
此時,不要夸大自己的成績,謙虛一點。還有,不妨說一下自己的失誤(不用怕,畢竟你是在實習)。記?。涸敿氄f明當時的情況(Situation),你要達到的目的(Task),你采取了哪些步驟(Actions),事情的結果(Result),還有你得到的經(jīng)驗教訓(Lesson learned)以及后來怎樣運用到工作中避免犯類似的錯誤。最后做出總結:原來書本上的知識要能夠在工作中熟練運用,這期間還有很長的一段路要走。還可以說:回到學校后,我對自己的實習經(jīng)歷作了一番總結,發(fā)現(xiàn)自己在XXX方面還需要加強。所以,我很注意利用大學的最后一個學期來彌補這一不足?,F(xiàn)在,我對自己很有信心,如果時間能夠倒流,我相信我能做到更好。
·你有過和別人合作的經(jīng)歷嗎?(千萬要回答“有”)那么,在這過程中,你是如何處理意見分歧的呢?
現(xiàn)在是考察你的Conflicts Management。
現(xiàn)在的絕大部分企業(yè)都不欣賞沒有原則的老好人。所以,你要把自己包裝得強勢一些。
我本人比較滿意的回答:
每個人在團隊中都應該可以自由坦誠地發(fā)表意見,我會非常認真的聆聽,分析;但對于自己的意見我不會沒有原則的輕易放棄。民主過后還需要集中。我是學校英語俱樂部的主席,在組織校際年度聯(lián)歡時,有兩個干事的意見和我不一致。(停頓一下,讓面試官記住你的這個閃光點)我和他們開了會。大家都闡述了各自的理由。很遺憾,我仍然沒有說服這兩人。在這種情況下,我感謝他們的積極參與,但表示仍然會采用我的方案。我的理念是:Meeting 不等于Voting,完全不需要少數(shù)服從多數(shù);我是負責人,我相信自己有能力采取最佳方案;假如失敗了,我也會承擔主要責任。而如果我是團隊的普通一員,我會保留自己的意見,但還是認真執(zhí)行管理者已經(jīng)做出的決策。當然,學校畢竟不同于公司,情況會更加復雜,但我堅信,只要遵循“對事不對人”的原則,任何問題都可以得到解決。
在回答時,一定要眼睛看著面試官,微笑,以沖淡你的咄咄逼人。
如果你實在沒有把握,可以把問題拋還給面試官,試舉一例(還是同樣的問題):
問:你是如何處理意見分歧的呢?
答:您問的恰好也是我最困惑的一點,而學校里老師從來不給我們這樣的指點。一方面,我不想做沒有原則的老好人,另一方面,大家都是朝夕相處的同學,我不想讓他們覺得我盛氣凌人。我當時是這樣做的:…… 可一直到現(xiàn)在,我都不知道是否作的正確,也許我可以從您那里得到一些指教,您說我當時這么做有問題嗎?
如果對方馬上對你言傳身教,那他鐵定是菜鳥,你不用緊張了,因為,合理的反應應該是不置可否的說:其實這個問題永遠不會有標準答案。
·問:說說您的缺點,好嗎?
答:缺點每個人都有很多。我不會說什么“我最大的缺點就是工作太投入,不注意休息” (笑,純真或爽朗的笑,視對方反應而定)。我最大的缺點就是面對高層管理者時會無比緊張,異乎尋常的緊張,有時甚至會語無倫次甚至失語。明明沒有犯錯誤,也會臉紅心跳。我猜想這是在學校老師恐懼癥的延續(xù)吧。(注意這最后一句話,足以使面試官原諒你的這一缺點)。我的另一個缺點是不會或者說是沒有勇氣說NO。從實習開始就是這樣,即使自己已經(jīng)是超負荷了,對于別人的要求,不管是上司還是同級,都仍然會答應下來,而我又是有了一點小事就會睡不著的人,所以不得不常常開夜車把事情做完;而別人發(fā)現(xiàn)每次我都能完成任務,就認為我還有余力,就又交給我新的任務……
·問題 碩士做銷售,你從興趣上著手,應該可以。還能在“碩士”學歷的理解上可以做文章。例如:我從不認為碩士在能力上肯定會比本科生強,也不認為理所當然比本科生高一個級別。我一直認為,三年的碩士研究生經(jīng)歷,最大的收獲是自己的學習能力和實際運用能力的極大提高。同樣是應屆生,我會更沉著,更周詳,更自信。
·問 在人際溝通上是否曾經(jīng)有過不和諧? “有,肯定有!其實我這個人很容易和別人相處,因為我會換位思考,以此來理解他人。但是!如果遇到價值觀和我有抵觸的人,我會無法容忍,可能會不能進行有效溝通。我最痛恨三種人:說話言而無信;做事虎頭蛇尾;妄想不勞而獲。這種人已經(jīng)觸犯到我的原則底線。當然,我不會拂袖而去,但實在不愿敷衍。也許這就是還不夠世故圓滑吧。我很矛盾,不知道該做怎樣的拿捏與平衡?!?
明白了嗎?這是我自己第一次面試時回答的答案。自己覺得有4個優(yōu)點:1、說明溝通不暢的根本原因不在你;2、表示你涉世未深,還很純真;3、show了一下你的人格魅力;4、表明你愿意改變。
·作為應屆生,在面試前,應該了解一下外企的部門架構。以歐美企業(yè)為例,一般部門內的職位從低到高依次為:助理(如果是本科生,有時候可以跳過)---專員---資深專員---主管---資深主管---部門副經(jīng)理/Section Manager---部門經(jīng)理。一般,主管要求有5年以上的相關工作經(jīng)驗,這是一個分水嶺。好,回過來談談面試時如何回答關于職業(yè)生涯規(guī)劃問題。其實,這種問題并不需要你回答得無懈可擊,這也辦不到---你說得通俗了,認為你胸無大志; 回答太專業(yè)了,又覺得你好高鶩遠。
回答這類問題,有以下幾點可以幫你加分:
A. 設定一個與自己專業(yè)相關的長遠目標;這個目標要和公司的工作有關但不要局限在企業(yè)內部(因為空間有限,會遭遇許多太過于細節(jié)的問題)。例如,HR專業(yè)的學生可以說,自己的目標是在35歲之前,也就是10年內,成為一名優(yōu)秀的人才測評專家或者資深企業(yè)人力資源顧問;工程技術專業(yè)的學生,可以成為精益生產(chǎn)專家或者黑帶大師;IT專業(yè)則可以在信息資源整合和ERP解決方案方面成為專家,等等。
注意,要著重在你想做些什么,而不是你想爬到什么級別。
B. 把這個目標分解,以1年,3年,5年,10年的進度,逐步推進。這個就要靠你自己編了,恕在下不能一一舉例。
記住,每個階段都要說明你能為公司做出怎樣的貢獻,你能得到怎樣的提高,這與你長遠目標的關系在哪里。此時,可以適當聯(lián)系到剛剛提到的部門架構。
C. 在此過程中,除了自己想辦法不斷充電,還要說一下你希望公司可以給你怎樣的幫助。比如能夠有崗位輪換的機會;或者能夠參與各種項目等。不要提希望公司會給你培訓,送你出國,給你報銷學費,要表現(xiàn)得自己希望在實踐中成長。
D. 強調自己的穩(wěn)定的心態(tài)。你可以這樣說:“中國人最講究‘名正言順’或者‘不在其位,不謀其職’,所以很多人都認為,只有給了主管的職位,才能運用主管的權利,發(fā)揮主管的作用。我的理念和別人不同,我認為恰恰相反,當你展示出了主管該具有的能力,能完成更多的工作,公司自然會考慮對你的職位進行調整。在沒有足夠的權力時,要使用自己的影響力,所以我鄙視那些成天想著晉升卻沒有任何建樹的人?!边@樣子,你的自我包裝就成功了一大半。
最后要注意,在回答類似問題時,不要顯得太胸有成竹。偶爾顯示出涉世未深可以讓面試官覺得你還有學生的單純。“這個問題很大,我在學校里也曾經(jīng)斷斷續(xù)續(xù)的考慮過,現(xiàn)在我簡單的講一下,可能會顯得一廂情愿,希望得到您的指教”這樣的一個緩沖在許多時候很管用哦。 (還記得鉆石法則嗎?)
·在被問到家庭情況的時候,應該怎么回答,我覺得不能一概而論了,就我知道,有些公司問這些是希望能招到相對穩(wěn)定的學生,一般而言,他們覺得農(nóng)村的孩子比較能吃苦,家里條件不太好的比家里條件好的穩(wěn)定,當然這也不能以偏概全,但突出父母對自己的教育以及性格中某些優(yōu)秀地方的影響是最為保險的我不知道您是否有工作經(jīng)驗,但對于應聘營銷代表,我的建議有如下幾點:
A 強調你的營銷理念---當別人在推銷牛排時,我在推銷牛排在鐵板上燒烤的滋滋聲。許多不成功的營銷在于只著眼在自己的產(chǎn)品如何物美價廉;許多成功的營銷注重了解客戶的需求;而我認為最成功的營銷應該能夠站在客戶發(fā)展的角度,培養(yǎng)出/挖掘出他們對你產(chǎn)品的需求。(大概就是這個意思,自己補充,呵呵)
B 強調每一種性格都會有人欣賞有人討厭,如果單靠性格魅力做營銷,是一種悲哀。(現(xiàn)在,可以隨意的說你的優(yōu)點和缺點了,:))
C 做銷售的優(yōu)勢?你自己有什么優(yōu)勢,都可以聯(lián)系到銷售的工作上,不要瞎編,只要轉個方向思考。就像世界上沒有自認為丑的無藥可救的女孩子
4. 有人問起多個問題同時出現(xiàn)時,應該如何解決。
這就是Priority Setting的勝任力。應對思路是把所有要處理的事情按輕重緩急分成4個象限:重要而且緊急;重要但不緊急;不重要但緊急;不重要也不緊急。
但記住,不要直接敘述這個思路,這會讓人覺得你不像應屆生。還是通過舉例說明比較好。
我面試過的一個比較好的例子:我在大三時正好要復習準備英語6級考試,這時有機會可以去一家企業(yè)做兼職部門助理,但需要每周花三個半天。同時,每月一次的英語沙龍活動要組織安排,還要(不好意思地說)抽空陪陪女朋友(最后一點很重要,可以活躍氣氛,還為下面制造了一個不重要不緊急的事例)。我當時利用沒有課程的下午去公司工作,一般要到5點半回學校。在公車上的30分鐘正好用來總結當天在公司的收獲和需要了解的知識。在食堂與女朋友吃晚飯,六點半去教室自習,到十點回宿舍。英語沙龍的工作委派給大二的兩個干事,他們每天會到自習教室找我談10分鐘,我會給他們一些建議。這樣,我沒有花太多的精力在沙龍活動上,可對整個過程都有了解和掌控。后來6級考試順利通過,那家公司對我的工作評價很高,我也學了很多東西;英語沙龍的活動如期舉行,我和女朋友也沒有疏遠。
這同時展示了三條勝任力:priority setting; delegation和work/life balance
(二)
今天面試一個HR助理的職位,應聘的女孩子一坐下,我就知道會Reject她:手指甲上涂蔻丹我沒有意見,但拜托不要一塊塊剝落褪色。說實話,我很懷疑現(xiàn)在大學的就業(yè)指導老師都在忙什么,這樣初級的面試禮儀都沒有強調。
好了,回到我自己的文章。今天想提一下面試的肢體語言。我面試過的應屆生應該沒有1000也有800了吧。我發(fā)現(xiàn)幾乎90%的人在入座后都采用一種非常閉合的姿勢,很拘謹。這不能說是壞事,但的確會讓面試開始的破冰顯得艱難?,F(xiàn)在,閉上眼睛,想象一對親密情侶在燭光下甜蜜交談,他們的姿勢應該是幾乎一樣的;你們平時和好朋友促膝長談,相信采用的也是相同的姿勢;電視上的國家元首交談時,絕大多數(shù)情況兩人的姿勢也相同或接近。這是因為:兩個人如果在交談過程中采用同一種姿勢,則雙方在潛意識中會有彼此認同的感覺。我們把這樣的姿勢一致稱為Rapport。我本人非常注重采用Rapport來增進溝通效果(特別是,如果有人盛氣凌人的叉腰對我說話,不論他的職位高低,我也會叉腰和他說話---輸人不輸陣 :))
還有,面試時,手勢的運用很重要。特別是回答較大的問題時,用手虛擬的在桌面上列出1,2,3,這樣會讓人覺得你很有條理,而且不會顯得很稚嫩。而說到我會怎樣怎樣時,把手掌放在心口,真的有強化的效果
一句話:面試時,要表現(xiàn)的有教養(yǎng),容易接近
IT面試經(jīng)驗:程序員面試什么最重要
程序員面試一直是社區(qū)樂于討論的熱門話題。我自己從06年實習以來,先后經(jīng)歷了4家軟件公司,全部是外企,其中有世界500強的通信企業(yè),有從事期權期貨交易的歐洲中等規(guī)模的金融公司,也有為大型汽車制造商開發(fā)Android智能汽車的新興公司??缛隝T行業(yè)以來,我在求職過程中經(jīng)歷過多次面試,最近兩年也有過多次面試別人的經(jīng)驗。我感覺現(xiàn)在到了對這個問題發(fā)表自己看法的時候,這篇文章是我站在面試官角度對于程序員面試問題的一個階段性反思和經(jīng)驗總結。
目標
相信和不少朋友一樣,有了幾年工作經(jīng)驗成為Senior后就開始了面試別人的經(jīng)歷。我在最初這個階段只是按照自己的想象把”找到基礎好的程序員“,”找到算法能力優(yōu)秀的程序員“,”找到有Android開發(fā)經(jīng)驗的程序員“等作為面試的目標。但是,實際的經(jīng)歷告訴我,尤其是按“基礎好”,“算法好”這些目標招到的人最終效果并不好。比如,有的面試者基礎知識和算法掌握情況不錯,進程、線程、內存等概念清晰,基本的Hash,二叉樹,快速排序等數(shù)據(jù)結構和算法也比較熟悉,但是進公司后在實際工作中表現(xiàn)得很糟糕。后來,我才發(fā)現(xiàn)原來是我的面試目標出了問題,我原先的面試方法更像是大學的算法或操作系統(tǒng)期末考試,按照這種方法讓許多并不合適的人通過了面試,同時也可能錯過了許多合適的人。
后來,我的反思是,從公司的角度講,面試的根本目的是找到“能夠干好工作”的人,而“高學歷”,“算法好”,“基礎好”,“有經(jīng)驗”這些都是表象而不是根本,它們并不能直接和“工作好”劃等號。
方法
目標明確了,但接下來的問題是假設面試者是一個黑盒系統(tǒng),“工作好”不是直接可觀測變量,你所能直接觀測的變量是基礎、算法、經(jīng)驗、學歷、性格、談吐、年齡等等。所以,實際上,你只能從“基礎好”,“算法好”等可以直接觀測的量去推測“工作好”的概率,這就是一個在“X好“條件下”工作好“的條件概率問題:P(工作好 | X好)。
根據(jù)這個模型,面試所應該考察哪些方面就很明顯了,那就是選擇那種最具有區(qū)分性的方面來考察。比如,考察面試者的體型特征沒有太大意義,因為P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,體型特征不具有區(qū)分性,這不是面試所應該關注的內容。
面試官應當結合職位的要求明確哪些因素具有比較好的區(qū)分性。比如,如果要招一名技術門檻比較高的3D游戲引擎開發(fā)工程師,面試者A具有3D游戲引擎開發(fā)的經(jīng)驗,但是在基礎知識和算法面試方面表現(xiàn)一般;面試者B相反,基礎知識和算法面試表現(xiàn)很好,但沒有游戲開發(fā)經(jīng)驗,而你只能選擇其一。你選誰呢?其實,這就是兩個條件概率問題P(工作好|經(jīng)驗好,基礎一般,算法一般)和P(工作好|沒經(jīng)驗,基礎好,算法好)。這個問題就留給面試官來判斷了,就我個人而言,對于技術門檻較高需要技術積累的職位,經(jīng)驗更加說明問題,因此,我更傾向于面試者A。
下面,我再結合自己的經(jīng)驗談談對面試中常見方面的看法。
算法
算法是Google和MS等大公司面試所重點考察的內容。我個人很喜歡算法,曾經(jīng)參加ACM/ICPC拿過北京賽區(qū)的13名。但是,就個人經(jīng)驗來看,我所接觸過的絕大多數(shù)開發(fā)職位而言,算法都不適合作為考察面試者優(yōu)劣的主要因素。對于普通的非算法性開發(fā)職位,考察面試者的算法就相當于考察他打乒乓球好不好一樣,與目標“工作好”的相關性太低。就我個人的經(jīng)驗來看,差不多P(工作好|算法好)=50%,也就是算法面試沒有太大的區(qū)分性。
甚至,還有一種很不好的情況特別多地出現(xiàn)在算法好的面試者身上,我稱之為“只磨刀,不砍柴”。什么意思呢?有類人只對什么A*算法,異步編程,JVM類加載機制這種純技術問題感興趣,對實現(xiàn)用戶需求毫無興趣。這類人看起來有一定的技術能力,但是對公司來講貢獻十分有限,甚至不如技術一般但認真負責的人。所以,一旦遇到面試者算法好,我就特別留意考察會不會是這種“只磨刀,不砍柴”的人。
另外,雖然我個人不了解Google和MS,但我對于其特別重視考察算法能力的面試策略是持懷疑態(tài)度的。即使在這樣的世界級大公司,算法雖然重要,但可以想象在項目實施過程所遇到的各種各樣問題中,算法問題絕大多數(shù)時候不會是主要瓶頸,沒有到那種需要每個人都是算法高手的情況。實際上,絕大多數(shù)項目真正難點并不是一兩個算法瓶頸,甚至也不是單點的技術瓶頸,而是系統(tǒng)性的組織、協(xié)調、設計、開發(fā)問題,有大量的看起來不是那么有技術含量的臟活累活,也有許多問題是由于信息不足,并不是技術能力強就能克服這些困難。一個團隊最好優(yōu)勢互補,有人算法強,有人業(yè)務分析能力強,有人擅長后端服務,有人擅長前端界面,有人聰明,有人踏實,這是最好的。如果按照“算法好”的單一標準選材,必定會把許多優(yōu)秀的人才拒之門外。
基礎
基礎面試是指考察諸如指針使用、進程線程概念等基礎知識的面試,十分類似于大學期末考試題。我曾經(jīng)以為基礎面試十分重要,但是現(xiàn)在不這么看了。在工作中基礎的確是重要的,但是在面試過程中,它必須具有區(qū)分性才有意義,也就是說P(工作好|基礎好)的概率要高,那么考察指針使用,進程線程區(qū)別這樣的基礎題目才有它的意義。我的實際經(jīng)驗是,基礎面試并不具有很好的區(qū)分性,和算法一樣, 差不多P(工作好|基礎好) = 50%。同時,基礎面試是最容易準備的,中國人有長期的應試教育經(jīng)驗,要準備幾個把玩指針題目太容易了。
我曾經(jīng)遇到過這樣的面試者,他的C語言基礎和編譯、鏈接等原理掌握得非常好,給我留下了深刻的印象,我給的面試結論是:知識面不寬,只會C語言,但基礎很扎實,建議錄用。后來的事情證明了那個結論的前半部分是對的,但是”建議錄用“錯了。他在實際工作中表現(xiàn)得一塌糊涂,不理解需求,不理解整體架構;同時,上班時間不是花在項目上,而是花在閱讀諸如《程序員的自我修養(yǎng)》之類的書籍上。最后,這位同事由于長期“不出活”離開了公司。
基礎不是不重要,而是“基礎好”不足以說明面試者能干好工作,因為基礎是屬于局部性知識,而實際工作需要綜合性能力,二者有天壤之別。C語言、操作系統(tǒng)能考高分,但是不會寫程序的人在大學我們還見得少嗎? 軟件開發(fā)就像蓋房子,綜合能力是設計和搭骨架,基礎知識是碼磚。張小龍原先Foxmail是Delphi開發(fā)的,他它不懂C#,你如果要招聘一個開發(fā).NET Email客戶端的人,你考察他對CLR掌握得好不好有意義嗎? 讓張小龍來開發(fā)一個C#版的Foxmail真的會有困難嗎? 你招一個精通C#但沒有Email客戶端開發(fā)經(jīng)驗的人來真的比張小龍靠譜嗎?
我說基礎知識不重要,和古人說的“不積洼步無以至千里”是不是矛盾呢?不矛盾!“洼步”與“千里”是一種可累加關系,但再多的“基礎知識”都累加不成“綜合能力”。學習軟件開發(fā)要像持續(xù)集成一樣,一開始就是一個完整的系統(tǒng),雖然規(guī)模不大,問題很多,但它麻雀雖小五臟俱全,從小系統(tǒng)到大系統(tǒng),從簡單系統(tǒng)到復雜系統(tǒng)逐步演化。
所以,基礎好本身不足以說明太多的問題,必須進一步考察綜合能力。對于基礎面試表現(xiàn)不好的面試者,如果時間允許也要進一步考察,有的面試者其實是有能力的,只是沒有進行充分的準備。最理想的狀態(tài)當然是基礎和綜合能力俱佳,若不能兼顧,應當綜合能力優(yōu)先。
經(jīng)驗
這里所說的經(jīng)驗不是通過工作了多少年來衡量的,而主要是指面試者的經(jīng)歷,比如,是否完整地實現(xiàn)過一個軟件,或作為主要開發(fā)者完成過一個項目。經(jīng)驗的重要性在于它能說明一個人的綜合能力。從項目的性質、規(guī)模和難度,面試官就可以大致判斷出面試者的綜合能力。如果一個面試者一直在大公司負責一個小模塊的開發(fā)維護,那么基本可以判斷他不具備獨立或作為主要開發(fā)者承擔一個項目的能力,只適合在另一家大公司做類似的事情。對于門檻較高需要長期技術積累的職位,相關經(jīng)驗更顯得尤為重要,比如,Linux內核開發(fā),JVM開發(fā),游戲引擎開發(fā),數(shù)據(jù)庫實現(xiàn),高級UX等。對于這類職位,沒有經(jīng)驗的面試者即使綜合素質不錯也是需要長時間的學習和積累才能勝任。所以,基本上如果確定了你的職位屬于此類,那么相關經(jīng)驗毫無疑問應該成為首選因素,換句話說,P(工作好 | 相關經(jīng)驗好)的概率是非常高的。
通過項目經(jīng)驗判斷面試者的優(yōu)劣比通過基礎和算法測試更加靠譜,所以,面試過程中面試官應該花比較多的時間聽面試者介紹項目經(jīng)驗,并進行深入地探討交流,了解面試者的知識面、思維能力、表達能力等。同時,可以結合項目提一些基礎知識和算法的問題,比如,如果面試者做過C++相關的項目,那就可以問他如何進行內存管理?是否熟悉智能指針?如果面試者的回答不能令人滿意,那么就基本上可以判斷他的項目做得不是很好。
要注意的是,經(jīng)驗也是一個多維度的事物。比如,C++股票交易中間件系統(tǒng),這就涉及(C++,中間件,股票) 3個維度。假如面試者A做過C++股票交易客戶端,面試者B做過C的股票交易中間件。從語言角度看,A最匹配,從項目性質看,B最匹配,你如何選擇?這就是在多個維度中,哪個維度更重要的問題,就這個例子而言,我個人更傾向于B,因為我認為中間件開發(fā)經(jīng)驗是主要矛盾,而從C切換到C++并不是問題。所以,面試官需要判斷哪一種經(jīng)驗是主要的,而哪一種經(jīng)驗是次要的。比如,我們招聘Android應用開發(fā),這個職位的Android技術門檻并不高,它的真正難點在于做出好的用戶體驗(UX)。所以,如果一個面試者沒有Android的經(jīng)驗我們是可以接受的,但是我希望他在UX方面有經(jīng)驗,至少做過其他平臺的移動應用開發(fā)。
性格
現(xiàn)在,我來談我認為最重要的因素:性格。這可能是許多初為面試官的朋友所難以想象的,怎么會是性格最重要呢?說實話,當我意識到這一點時,我自己也很驚訝!說白了,還是 P(工作好|性格好)的概率最高啊。我的實際經(jīng)驗是,如果一個人的性格好,他能把工作做好的可能性是最高的,性格好遠比基礎好、算法好要靠譜。
一個人如果技術上有缺陷,經(jīng)驗上有不足,但性格好,在團隊中是很容易由其他人來補位的,他自己也很容易逐漸補起來;相反,如果一個人的性格不好,所有的技術優(yōu)勢經(jīng)驗優(yōu)勢都發(fā)揮不出來,甚至還會起到負作用,而且性格缺點很難改變。我一直談到實際工作所需要的是綜合性的能力,這種綜合能力的發(fā)揮中性格是至關重要的。項目中不止會遇到技術問題,要涉及溝通、協(xié)調,不同的人不同的部門既有合作又有磨擦,如何處理這些事情都需要一個良好的性格??梢哉f,在開發(fā)團隊里讓你與眾不同的不是你從哪個學校畢業(yè),也不是你過去的經(jīng)驗,而是你的性格。
當然,性格是一個復雜的東西,它包含了很多的方面,并非所有方面都是程序員面試所需要關注的。我的經(jīng)驗是可以重點考察這些方面:
1) 態(tài)度積極還是消極。有的面試者在談吐中就會自然給你一種積極上進的感覺,或者你可以在他的經(jīng)歷中發(fā)現(xiàn)他積極的因素,這些都不是太難看出來的。相反,有的面試者你能明顯感覺到他的消極情緒。積極性在工作中是十分重要的,積極的人能給團隊帶來朝氣,也更易于合作。基本上,如果確定面試者屬于態(tài)度積極的,他通過我這一關的可能性就會大大增加;相反,如果確定屬于態(tài)度消極的,即使技術能力不錯我也會十分謹慎。
2) IQ。我的經(jīng)驗是,總體來看,聰明的人在工作中的表現(xiàn)更為優(yōu)秀。在面試中要考察一個人是否聰明并不一定要像Google和MS那樣找些專門測試IQ的智力題,其實,你只需要看他討論問題是不是很有邏輯性,思考和說話是不是反應敏捷就可以做出大致的判斷。另外,眼睛是人心靈的窗戶,一個人聰明與否,眼睛是會說話的。不過,聰明也不完全是優(yōu)點,比如,當公司或項目遇到困難時,往往是聰明人先跑掉了,堅守的往往是IQ一般的人。
3) 語言表達能力。語言表達能力也是程序員十分重要的一項素質,它關系到項目中的溝通是否順暢。面試官可以看看面試者能否用簡明的語言介紹清楚曾經(jīng)做過的項目,能否抓住要點,能否考慮到聽者的相關背景。一般來講,語言表達能力強的人綜合能力都不會太差。
4) 是否具有用戶意識。有人說程序員是做研發(fā)的,哪來什么用戶?只有銷售、市場人員才會和用戶打交道。其實,這是完完全全的錯誤認識。你寫一個模塊,甚至一個API,只要有別人用,他就是你的用戶。有的程序員設計一個模塊或是一個軟件總是習慣于從使用者的角度來考慮,盡量地方便使用者,這就是一種良好的用戶意識。具有良好的用戶意識的人更能考慮別人的感受和整體的需要,而不是單純地從自己和局部來思考問題。當面試者談及過去的項目經(jīng)驗時,面試官可以常常站在用戶的角度對其進行提問,從這個過程中觀察其是否具有良好的用戶意識。
5) 如何應對質疑和壓力。面試官應該對面試者的回答以及以往項目進行合理的質疑,看看他如何應對。曾經(jīng)有一位面試者談到做游戲登錄服務器的經(jīng)歷,我就問:“如果登錄服務器掛了,怎么辦呢”?他說原先雖然沒有考慮這個問題,但是可以怎么怎么改進。其實,大家都理解項目中有各種不完美,這里面原因很多,只要面對質疑和壓力能從容應對努力往好的方向思考解決就可以了,不需要掩飾缺陷,更不應該有情緒。我遇到過有的面試者,一旦你對其項目提出質疑,他馬上產(chǎn)生反抗情緒,或不高興,或不承認有問題,這很容易一下子看出來他在工作中容不得質疑和批評,這種人要想合作就很困難。
6) 個性特點。許多面試者喜歡在簡歷上寫“精通C++/Linux“,這些字眼看得人麻木,如果有人寫”喜歡C++/Linux“,我就會有一種眼前一亮的感覺?!熬ā笔菦]有感情色彩的敘述,而“喜歡”包含了面試者的個性,我更愿意看到面試者的個性。我相信對某樣東西真正的熱情遠比你當前對它的掌握程度更為重要。其實,N年的經(jīng)歷告訴我們,同一個班的同學,同一個項目組的同事,雖然每天所學的知識,所接觸的工作都是相同的,但其實每個人的成績和表現(xiàn)差異是十分明顯的。那么,到底本質的差異是什么呢?其實,就是每個人的個性。是個性使得有的人業(yè)余時間去打球,有的人業(yè)余時間去看書,有的人喜歡Linux,有的人喜歡Mac。一個人在團隊中扮演的角色也和他的個性有很大的關系。面試官應該引導面試者展現(xiàn)自己的個性,并判斷其是否有益于團隊。
總結
最后總結起來,我的經(jīng)驗是: 1) 面試官的目標是找到”工作好“的人,一定要圍繞這個目標來進行面試,如果把面試當成了算法或操作系統(tǒng)期末考試這就走入了誤區(qū);2) 面試過程是通過學歷、性格、基礎、經(jīng)驗、算法等可以測試的因素去綜合判斷面試者“工作好”的概率;3) 在各種因素中,性格 > 經(jīng)驗 > 基礎 > 算法。性格是最重要的,如果性格不好,所有技術能力都會大打折扣,而且技術缺陷容易彌補,性格缺陷很難改變;經(jīng)驗體現(xiàn)了一個人的綜合能力,你可以從面試者過去的經(jīng)歷中判斷他能從事哪種工作,不能從事哪種工作;基礎和算法則主要起到輔助參考的作用,基礎好的程序員一般適應性比較強,學新技術更快,但是切忌單純從基礎來判斷一個人的能力。