會做不會說,程序員如何提高面試技巧

java零基礎自學,點擊瞭解:https://how2j.cn

阿里雲服務器惠優入口:https://www.aliyun.com/activity/daily/cloud

轉載自(如有侵權聯繫我刪除):https://www.cnblogs.com/JavaArchitect/p/7586949.html

如何在面試中介紹自己的項目經驗

       在面試時,經過寒暄後,一般面試官會讓介紹項目經驗 。常見的問法是,說下你最近的(或最拿得出手的)一個項目。

       根據我們的面試經驗,發現有不少候選人對此沒準備,說起來磕磕巴巴,甚至有人說出項目經驗從時間段或技術等方面和簡歷上的不匹配,這樣就會造成如下的後果。

       1 第一印象就不好了,至少會感覺該候選人表述能力不強。

       2 一般來說,面試官會根據候選人介紹的項目背景來提問題,假設面試時會問10個問題,那麼至少有5個問題會根據候選人所介紹的項目背景來問,候選人如果沒說好,那麼就沒法很好地引導後繼問題了,就相當於把提問權完全交給面試官了。

       面試時7份靠能力,3份靠技能,而剛開始時的介紹項目又是技能中的重中之重,所以本文將從“介紹”和“引導”兩大層面告訴大家如何準備面試時的項目介紹

目錄

如何在面試中介紹自己的項目經驗

1  在面試前準備項目描述,別害怕,因爲面試官什麼都不知道

2  準備項目的各種細節,一旦被問倒了,就說明你沒做過

3  不露痕跡地說出面試官愛聽的話

4  一定要主動,面試官沒有義務挖掘你的亮點

5  一旦有低級錯誤,可能會直接出局

6  引導篇:準備些加分點,在介紹時有意提到,但別說全

7  你可以引導,但不能自說自話

8  不是結尾的總結


1  在面試前準備項目描述,別害怕,因爲面試官什麼都不知道

       面試官是人,不是神,拿到你的簡歷的時候,是沒法覈實你的項目細節的(一般公司會到錄用後,用背景調查的方式來覈實)。更何況,你做的項目是以月爲單位算的,而面試官最多用30分鐘來從你的簡歷上了解你的項目經驗,所以你對項目的熟悉程度要遠遠超過面試官,所以你一點也不用緊張。如果你的工作經驗比面試官還豐富的話,甚至還可以控制整個面試流程(筆者在面試方面成精後也經常幹這種事情,大家一定也能行)。

 

面試官

對你以前的項目和技能

很瞭解

只能聽你說,只能根據你說的內容做出判斷

在面試過程中的職責

在很短的時間內防守成功即可

如果找不出漏洞,就只能算你以前做過

準備時間

面試前你有充足的時間準備

一般在面試前用30分鐘閱讀你的簡歷

溝通過程

你可以出錯,但別出關鍵性的錯誤

不會太爲難你,除非你太差

技巧

你有足夠的技巧,也可以從網上找到足夠多的面試題

其實就問些通用的有規律的問題

       既然面試官無法瞭解你的底細,那麼他們怎麼來驗證你的項目經驗和技術?下面總結了一些常用的提問方式。

提問方式

目的

讓你描述工作經驗和項目(極有可能是最近的),看看你說的是否和簡歷上一致

看你是否真的做過這些項目

看你簡歷上項目裏用到的技術,比如框架、數據庫,然後針對這些技術提些基本問題

還是驗證你是否做過項目,同時看你是否瞭解這些技術,爲進一步提問做準備

針對某個項目,不斷深入地問一些技術上的問題,或者從不同側面問一些技術實現,看你前後回答裏面是否有矛盾

深入覈實你的項目細節

針對某技術,問些項目裏一定會遇到的問題,比如候選人說做過數據庫,那麼就會問索引方面的問題

通過這類問題,覈實候選人是否真的有過項目經驗(或者還僅僅是學習經驗)

         

2  準備項目的各種細節,一旦被問倒了,就說明你沒做過

       一般來說,在面試前,大家應當準備項目描述的說辭,自信些,因爲這部分你說了算,流利些,因爲你經過充分準備後,可以知道你要說些什麼。而且這些是你實際的項目經驗(不是學習經驗,也不是培訓經驗),那麼一旦讓面試官感覺你都說不上來,那麼可信度就很低了。

        不少人是拘泥於“項目裏做了什麼業務,以及代碼實現的細節”,這就相當於把後繼提問權直接交給面試官。下表列出了一些不好的回答方式。

回答方式

後果

我在XX軟件公司做了XX門戶網站項目,這個項目做到了XX功能,具體是XX和XX模塊,各模塊做了XX功能,客戶是XX,最後這個項目掙了XX錢

直接打斷,因爲業務需求我不需要了解,我會直接問他項目裏的技術

(需要招聘一個Java後端開發,會Spring MVC)

最近一個項目我是用C#(或其他非Java技術)實現的,實現了……或者我最近做的不是開發,而是測試……或者我最近的項目沒有用到Spring MVC

提問,你最近用到SSH技術的項目是什麼時候,然後在評語上寫:最近XX時間沒接觸過SSH

在畢業設計的時候(或者在讀書的時候,在學習的時候,在XX培訓學校,在XX實訓課程中),……

直接打斷,提問你這個是否是商業項目,如果不是,你有沒有其他的商業經驗。如果沒商業項目經驗,除非是校招,否則就直接結束面試

描述項目時,一些關鍵要素(比如公司、時間、所用技術等)和簡歷上的不匹配

我們會深究這個不一致的情況,如果是簡歷造假,那麼可能直接中斷面試,如果真的是筆誤,那麼就需要提供合理的解釋

       在避免上述不好的回答的同時,大家可以按下表所給出的要素準備項目介紹。如果可以,也請大家準備一下用英語描述。其實剛畢業的學生,或者工作經驗較少的人,英語能力都差不多,但你說了,這就是質的進步。      

要素

樣式

控制在1分鐘裏面,講出項目基本情況,比如項目名稱,背景,給哪個客戶做,完成了基本的事情,做了多久,項目規模多大,用到哪些技術,數據庫用什麼,然後酌情簡單說一下模塊。重點突出背景,技術,數據庫和其他和技術有關的信息。

我在XX公司做了XX外匯保證金交易平臺,客戶是XX銀行,主要完成了掛盤,實盤成交,保證金槓桿成交等功能,數據庫是Oracle,前臺用到JS等技術,後臺用到Java的SSH,幾個人做了X個月。不需要詳細描述各功能模塊,不需要說太多和業務有關但和技術無關的。如果面試官感興趣,等他問。

要主動說出你做了哪些事情,這部分的描述一定需要和你的技術背景一致。

我做了外匯實盤交易系統,掛單成交系統,XXX模塊,做了X個月

描述你在項目裏的角色

我主要是做了開發,但在開發前,我在項目經理的帶領下參與了業務調研,數據庫設計等工作,後期我參與了測試和部署工作。

可以描述用到的技術細節,特別是你用到的技術細節,這部分尤其要注意,你說出口的,一定要知道,因爲面試官後面就根據這個問的。

你如果做了5個模塊,寧可只說你能熟練說上口的2個。

用到了Java裏面的集合,JDBC,…等技術,用到了Spring MVC等框架,用技術連接數據庫。

 

這部分你風險自己承擔,如果可以,不露聲色說出一些熱門的要素,比如Linux,大數據,大訪問壓力等。但一旦你說了,面試官就會直接問細節。

這個系統裏,部署在Linux上,每天要處理的數據量是XX,要求是在4小時,1G內存是的情況下處理完5千萬條數據。平均訪客是每分鐘XXX。

      面試前,你一定要準備,一定要有自信,但也要避免如下的一些情況。     

要避免的情況

正確的做法

原因

回答很簡單。問什麼答什麼,往往就用一句話回答

把你知道的都說出來,重點突出你知道的思想,框架

問:你SSH用過嗎?

答:用過。

問:在什麼項目裏用到?

答:一個保險項目

問:你做了哪方面的事情?

答:開發

我直接不問了

說得太流利

適當停頓,邊思考邊說

讓面試官感覺你在背準備的東西,這樣後面問題就很難

項目介紹時什麼都說,

就說些剛纔讓準備的一些,而且要有邏輯地說

會讓面試官感覺你思路太亂

別太多介紹技術細節,就說你熟悉的技術

技術面點到爲止,等面試官來問

你說到的所有技術要點,都可能會被深問。面試官一般會有自己的面試節奏,如果你在介紹時就太多說技術細節,很有可能被打斷,從而沒法說出你準備好的亮點。

  

3  不露痕跡地說出面試官愛聽的話

       在項目介紹的時候(當然包括後繼的面試),面試官其實很想要聽一些關鍵點,只要你說出來,而且回答相關問題比較好,這絕對是加分項。我在面試別人的時候,一旦這些關鍵點得到確認,我是絕對會在評語上加上一筆的。

       下面列些面試官愛聽的關鍵點和對應的說辭。

關鍵點

說辭

能考慮到代碼的擴展性,有參與框架設計的意識

我的項目XX保險項目,用到SSH技術,數據庫是Oracle,(這個是鋪墊),開發的時候,我會先和項目經理一起設計框架,並參與了框架的構建,連接數據庫的時候,我們用到了DAO,這樣做的理由是,把SQL語句封裝到DAO層,一旦要擴展功能模塊,就可以不用做太多的改動。

有調優意識,能通過監控發現問題點,然後解決

 

在開發階段,我就注意到內存的性能問題和SQL運行的時間問題,在壓力測試階段,我會通過xx工具來監控內存和數據庫,發現待提升的代碼點,然後通過查資料來優化。最後等項目上線後,我們會部署監控系統,一旦發現內存和數據庫問題,我們會第一時間解決。

動手能力很強,肯幹活,會的東西比較多,團隊合作精神比較好

在項目裏,我不僅要做開發的工作,而且需要自己測試,需要自己根據一些日誌的輸出到數據庫或Java端去debug,當我開好一個模塊時,需要自己部署到Linux上測試。

或者,一旦遇到問題,如果是業務方面的,我會及時和項目經理溝通,如果是技術方面的,我會自己查資料,如果是測試方面的,我會及時和測試的人溝通。

責任心比較強,能適應大壓力的環境

被問“你如果在項目裏遇到問題怎麼辦?”

回答:遇到問題我先查資料,如果實在沒法解決,不會拖,會及時問相關的人,即使加班,也會在規定的時間內解決。

有主見,能不斷探索新的知識

在項目裏,我會在保證進度的前提下和項目經理說我的想法,提出我的解決方案。在開發過程中,我會先思考一下,用一種比較好的方式,比如效率最高的方法實現。

另外你要找機會說出:平時我會不斷看一些新技術(比如大數據Hadoop),會不斷深入瞭解一些框架和技術的實現底層。

   

4  一定要主動,面試官沒有義務挖掘你的亮點

    我去面試人家的時候,往往會特別提問:你項目裏有什麼亮點?或者你作爲應聘者,有什麼其他加分項能幫你成功應聘到這個崗位。即使這樣問,還有些人直接說沒有。

       我這樣問已經是處於角色錯位了,作爲面試者,應當主動說出,而不是等着問,但請注意,說的時候要有技巧,找機會說,通常是找一些開放性的問題說。

        比如:在這個項目裏用到了什麼技術?你除了說一些基本的技術,比如Spring MVC,Hibernate,還有數據庫方面的常規技術時,還得說,用到了Java內存管理,這樣能減少對虛擬機內存的壓力,或者說用到了大數據處理技術等。也就是說,得找一切機會說出你拿得出手的而且當前也非常熱門的技術。

        或者找個相關的問題做擴展性說明,比如被問到:你有沒有用到過一對多和多對多?你除了說基本知識點以外,還可以說,一般我還會根據需求適當地設置cascade和inverse關鍵字,隨後通過一個實際的案例來說明合理設計對你項目的幫助,這樣就能延伸性地說明你的技能了。相反如果你不說,面試話一定會認爲你只會簡單的一對一和一對多操作。

       面試的時候,如果候選人回答問題很簡單,有一說一,不會擴展,或者用非常吝嗇的語句來回答我的問題,那麼我一般會給機會讓他們深入講述(但我不敢保證不是每個面試官都會深入提問),如果回答再簡潔,那麼也會很吝嗇地給出好的評語。

      記住:面試官不是你的親戚,面試官很忙,能挖掘出你的亮點的面試官很少,而說出你的亮點是你的義務。

      我在面試別人過程中,根據不同的情況一般會給出如下的評語。

      1 回答很簡答,但回答裏能證明出他對框架等技術確實是做過,我會在評語裏些“對框架了解一般,不知道一些深層次的知識(我都問了多次了你都回答很簡答,那麼對不起了,我只能這麼寫,或許你確實技術很強,那也沒辦法,誰讓你不肯說呢?)”,同時會加一句“表達能力很一般,溝通能力不強”,這樣即使他通過技術面試,後面的面試他也會很吃力。

      2 回答很簡單,通過回答我沒法驗證他是在項目裏做過這個技術,還是僅僅在平時學習中學過這個技術。我就會寫“在簡歷中說用過XX技術,但對某些細節說不上來,沒法看出在項目裏用到這個技術”,如果這個技術是職務必需點,那麼他通過面試的可能性就非常小。

      3 回答很簡單,而且只通過嗯啊之類的虛詞回答,經過提醒還這樣,我會敷衍幾句結束面試,直接寫“技術很薄弱,沒法通過面試”。

      4 雖然通過回答能很好地展示自己的技能,但邏輯調理不清晰,那麼我會讓他通過技術面試,但會寫上“技能很好,但表達能力一般(或有待提高),請後繼面試經理斟酌”。這樣通過後繼綜合面試的機會就一般了,畢竟綜合面試會着重考察表達能力交往能力等非技術因素。

不管怎樣,一旦回答簡單,不主動說出你的擅長點,或沒有條理很清楚地說出你的亮點,就算我讓你通過面試,也不會寫上“框架細節瞭解比較深,數據庫應用比較熟練”等之類的好評語,你即使通過技術和後面的綜合面試,工資也是比較低的。

5  一旦有低級錯誤,可能會直接出局

       面試過程中有些方面你是絕對不能出錯,所以你在準備過程中需要尤其注意如下的因素。下面列了些會導致你直接出局的錯誤回答。

錯誤類型

導致的後果

前後矛盾,後面的回答無法證明你的項目描述,比如一開始說用到了Spring MVC,後面沒法說出最基本的實現,比如不知道Spring有哪些類,或者沒法說出項目的細節。

我會懷疑這個項目的真實性,我就會進一步問:數據庫用什麼,數據量多少?多少人做了多少時間,一旦再出現明顯漏洞,比如一個小項目用到非常多的時間,那麼就不僅僅是技術問題,而是在面試過程中企圖“矇混過關”的性質了。

項目裏一定會用到的基本概念性問題都回答不上,Spring的依賴注入概念是什麼,怎麼用的,或者Hibernate的一對多怎麼實現

一旦被我發現概念不知道,我就會通過更多問題確認,如果被我確認很弱,這就相當嚴重,因爲技術能力差和技術沒用過是兩個截然不同的狀況,技術沒用過會導致直接出局。

面試時說出的工作經驗和簡歷上的不一致

我會直接懷疑簡歷是編的,我會讓候選人解釋,即使是說簡歷寫錯了,我也會問比較深入的問題來覈實他的技能和能力。

簡歷上的技能描述和回答出來的明顯不一致,比如明明是隻會簡單的Linux,但吹得天花亂墜

我會通過一些比較深的問題覈實其他技能,找出其他方面吹噓的水分。

所以建議,你可以適當誇張,但別過分,比如你在項目裏沒搭建框架但平時學習時搭建過,你可以寫“XX項目的框架是你搭建的”,但你不能說你是一個架構師,非常瞭解項目的底層。

讓面試官感覺你不穩定,很浮躁,比如說話不莊重,或者面試時打扮非常不正規,就穿背心來。

即使你技術再好,這個會可能導致你直接出局。

我對油嘴滑舌的候選人一般會直接寫上不好的評語,這樣很難過後面項目經理的面試。

我還遇到一個人,簡歷上工作是半年一換,我問他爲什麼經常換,他直接說是待遇問題,這個人我是直接Fail掉。

明說不能加班,不能出差

其實雖然有這一問,但公司裏未必真的會加班會出差。但

聽到這類回答,說明這個人不能承受大壓力的工作,或者責任心不強,大多數公司是不會要這種人的。

6  引導篇:準備些加分點,在介紹時有意提到,但別說全

       在做項目介紹的時候,你可以穿插說出一些你的亮點,但請記得,不論在介紹項目還是在回答問題,你當前的職責不是說明亮點而是介紹項目,一旦你詳細說,可能會讓面試官感覺你跑題了。

       所以這時你可以一筆帶過,比如你可以說,“我們的項目對數據要求比較大,忙的時候平均每小時要處理幾十萬條數據”,這樣就可以把面試官引入“大數據”的方向。

       你在面試前可以根據職位的需求,準備好這種“一筆帶過”的話。比如這個職位的需求點是Spring MVC框架,大數據高併發,要有數據庫調優經驗,那麼介紹以往項目時,你就最好突出這些方面你的實際技能。

      再給大家舉個例子,比如Java虛擬機內存管理和數據庫優化是絕大多數項目都要遇到的兩大問題,大家都可以在敘述項目經驗時說,在這個項目裏,我們需要考慮內存因素,因爲我們的代碼只允許在2G內存環境中運行,而且對數據庫性能要求比較高,所以我們經常要監控優化內存和數據庫裏的SQL語句。這樣當面試官深入提問時,就能拋出自己準備好的虛擬機內存優化和數據庫優化方面的說辭。

       實在不行,你也可以說“我除了做開發,也做了瞭解需求,測試和部署的工作,因爲這個項目人手比較少,壓力比較大”,這樣你也能展示你有過獨擋一面的經歷。

       我在面試過程中,一旦聽到有亮點,就會等到他說好當前問題後,順口去問,一般技術面試最多辦半小時,你把時間用在回答準備好的問題點上的時候,被問其他問題的時間就會少了。

 

7  你可以引導,但不能自說自話

       我面試的時候,也會遇到些有準備的人,其實如果你真的想應聘的話,一定要事先準備,這點我能理解,甚至贊同,你只要別露出太明顯的痕跡,我不會寫上“似乎有準備,沒法考察真實技能”這種話,更何況未必每個面試官都能感覺出你準備過。  但你不能憑着有準備而太強勢,畢竟面試是面試官主導的。

       我遇到個別面試的人,他們說話太多,一般會主動擴展,比如我問他數據庫用什麼,他不僅回答數據庫是什麼,自己做了什麼,甚至順便會把大數據處理技術都說出來。

       其實過猶不及,我就會重點考察你說的每個細節,因爲我懷疑你說的都是你從網上看的,而不是你項目中用到的,我甚至會直接威脅:“你先和我說實話這個技術你真在項目裏用到,我後面會重點考察,一旦被認爲你項目裏沒做,這個性質就是矇混過關了”,往往這些人會主動坦白。

       不過話說回來,他如果僅僅說,數據量比較大,但點到爲止,不繼續說後面的話,我就會深入去問,他自然有機會表達。同時請注意,一般在面試過程中,一旦你亮出加分點,但面試官沒接嘴,這個加分點可能就不是項目必備的,也不是他所關注的,當前你就可以別再說了,或者等到你提問題的時候再說。    

8  不是結尾的總結

       到這裏,我們已經給出了介紹項目的一些技巧。這些技巧都是從 Java Web輕量級開發面試教程Java核心技術及面試指南裏摘錄的。

       兩句話,第一,面試前一定要準備,第二,本文給出是的方法,不是教條,大家可以按本文給出的方向結合自己的項目背景做準備,而不是死記硬背本文給出的一些說辭。

       當大家介紹好項目背景後,面試纔剛剛開始,哪怕你說得再好,哪怕你把問題引導到你準備的範圍裏,這也得應付Java Web(比如Spring MVC,ORM等)、Java Core(多線程、集合、JDBC等)和數據庫等方面的問題。

       那麼本文的價值體現在哪呢?如果引導不好,你根本沒機會展示自己的能力。這就是本文給出的方法價值所在。說句自誇的話,本文給出的一些方法和說辭不是拍腦袋想出來的,而是從面試上百個候選人的經歷中抽取出來的,其中有不少血淚,也有不少人成功的途徑,這篇文章多少對大家(尤其是經驗不滿3年的初級程序員)有幫助,這也是本文申請放入首頁的理由。

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