首頁  >  文章  >  Java  >  面試中,如何介紹自己的專案經驗?

面試中,如何介紹自己的專案經驗?

Java后端技术全栈
Java后端技术全栈轉載
2023-08-16 16:52:081101瀏覽

在面試時,通常都是經過幾句寒暄(有的是讓你做一個自我介紹)後,面試官會讓你開始介紹專案經驗 。

常見的問法是:「說下你最近的(或最拿得出手的)一個項目」

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

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

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

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

好了,如下是正文內容。

「一、在面試前準備專案描述,別害怕,因為面試官什麼都不知道」

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


「你」 「面试官」
對你以前的專案和技能 很了解 只能聽你說,只能根據你說的內容做出判斷
在面試過程中的職責 在很短的時間內防守成功即可 如果找不出漏洞,就只能算你以前做過
準備時間 面試前你有充足的時間準備 一般在面試前用30分鐘閱讀你的履歷
溝通過程 你可以出錯,但別出關鍵性的錯誤 不會太難你,除非你太差
技巧 你有足夠的技巧,也可以從網路上找到足夠多的面試題 其實就問些通用的有規律的問題
#

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

「提問方式」 「目的」
讓你描述工作經驗和專案(極有可能是最近的),看看你說的是否和履歷上一致 看你是否真的做過這些項目
看你履歷表上專案裡用到的技術,例如框架、資料庫,然後針對這些技術提些基本問題 還是驗證你是否做過項目,同時看你是否了解這些技術,為進一步提問做準備
針對某個項目,不斷深入地問一些技術上的問題,或者從不同側面問一些技術實現,看你前後回答裡面是否有矛盾 深入核實你的專案細節
針對某技術,問些專案裡一定會遇到的問題,例如候選人說做過資料庫,那麼就會問索引方面的問題 透過這類問題,核實候選人是否真的有過專案經驗(或還僅僅是學習經驗)
#

「二、準備專案的各種細節,一旦被問到了,就表示你沒做過」

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

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

「回答方式」 #「後果」
我在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用過嗎?答:用過。Q:在什麼專案裡用到?答:一個保險項目問:你做了哪方面的事情?答:開發我直接不問了
說得太流利 適當停頓,邊思考邊說 讓面試官感覺你在背準備的東西,這樣後面問題就很難
項目介紹時什麼都說, 就說些剛才讓準備的一些,而且要有邏輯地說 會讓面試官感覺你思路太亂
別太多介紹技術細節,就說你熟悉的技術 技術面點到為止,等面試官來問 你說到的所有技術要點,都可能會被深問。面試官一般會有自己的面試節奏,如果你在介紹時就太多說技術細節,很有可能被打斷,從而沒法說出你準備好的亮點。

「三、不露痕跡地說出面試官愛聽的話」

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

下面給出5個面試官愛聽的關鍵點和對應的說詞。

「關鍵點」 #「說詞」
能考慮到程式碼的擴展性,有參與框架設計的意識 我的專案XX保險項目,用到SSH技術,資料庫是Oracle,(這個是鋪墊),開發的時候,我會先和專案經理一起設計框架,並參與了框架的構建,連接資料庫的時候,我們用到了DAO,這樣做的理由是,把SQL語句封裝到DAO層,一旦要擴展功能模組,就可以不用做太多的改動。
有調優意識,能透過監控發現問題點,然後解決 #在開發階段,我就注意到記憶體的效能問題和SQL運行的時間問題,在壓力測試階段,我會透過xx工具來監控記憶體和資料庫,發現待提升的程式碼點,然後透過查資料來優化。最後等專案上線後,我們會部署監控系統,一旦發現記憶體和資料庫問題,我們會第一時間解決。
動手能力很強,肯幹活,會的東西比較多,團隊合作精神比較好 在專案裡,我不僅要做開發的工作,而且需要自己測試,需要自己根據一些日誌的輸出到資料庫或Java端去debug,當我開好一個模組時,需要自己部署到Linux上測試。或者,一旦遇到問題,如果是業務方面的,我會及時和專案經理溝通,如果是技術方面的,我會自己查資料,如果是測試方面的,我會及時和測試的人溝通。
責任感比較強,能適應大壓力的環境 被問到「如果在專案裡遇到問題怎麼辦?」回答:遇到問題我先查資料,如果實在沒辦法解決,不會拖,會及時問相關的人,即使加班,也會在規定的時間內解決。
有主見,能不斷探索新的知識 在專案裡,我會在保證進度的前提下和專案經理說我的想法,提出我的解決方案。在開發過程中,我會先思考一下,用比較好的方式,例如效率最高的方法來實現。另外你要找機會說出:平常我會不斷看一些新技術(例如大數據Hadoop),會不斷深入了解一些框架和技術的實現底層。

「四、一定要主動,面試官沒有義務挖掘你的亮點」

#我去面試人家的時候,往往會特別提問:你專案裡有什麼亮點?或者你身為應徵者,有什麼其他加分項能幫你成功應徵到這個職位。即使這樣問,有些人直接說沒有。

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

例如:在這個專案裡用到了什麼技術?你除了說一些基本的技術,例如Spring MVC,MyBatis,還有資料庫方面的常規技術時,還得說,用到了Java記憶體管理,這樣能減少對虛擬機器記憶體的壓力,或者說用到了大數據處理技術等。也就是說,得找一切機會說出你拿得出手的而且目前也非常熱門的技術。

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

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

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

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

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

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

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

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

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

#「五、一旦有低階錯誤,可能會直接出局」

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

「錯誤類型」 #「導致的後果」
前後矛盾,後面的回答無法證明你的項目描述,比如一開始說用到了Spring MVC,後面沒法說出最基本的實現,比如不知道Spring有哪些類,或者沒辦法說出項目的細節。 我會懷疑這個專案的真實性,我會進一步問:資料庫用什麼,資料量多少?多少人做了多少時間,一旦再出現明顯漏洞,例如一個小專案用到非常多的時間,那麼就不僅僅是技術問題,而是在面試過程中企圖「蒙混過關」的性質了。
專案裡一定會用到的基本概念性問題都回答不上,Spring的依賴注入概念是什麼,怎麼用的,或者MyBatis中用了哪些設計模式? 一旦被我發現概念不知道,我就會透過更多問題確認,如果被我確認很弱,這就相當嚴重,因為技術能力差和技術沒用過是兩個截然不同的狀況,技術沒用過會導致直接出局。
面試時說出的工作經驗和履歷表上的不一致 我會直接懷疑履歷是編的,我會讓候選人解釋,即使是說履歷寫錯了,我也會問比較深入的問題來核實他的技能和能力。
簡歷上的技能描述和回答出來的明顯不一致,比如明明是只會簡單的Linux,但吹得天花亂墜 我會通過一些比較深的問題核實其他技能,找出其他方面吹噓的水分。所以建議,你可以適當誇張,但別過分,比如你在項目裡沒搭建框架但平時學習時搭建過,你可以寫“XX項目的框架是你搭建的”,但你不能說你是一個架構師,非常了解專案的底層。
讓面試官感覺你不穩定,很浮躁,例如說話不莊重,或是面試時打扮非常不正規,就穿背心來。 即使你技術再好,這個會可能導致你直接出局。我對油嘴滑舌的候選人一般會直接寫上不好的評語,這樣很難過後面專案經理的面試。我還遇到一個人,履歷表上工作是半年一換,我問他為什麼常常換,他直接說是待遇問題,這個人我是直接Fail掉。
明說不能加班,不能出差 其實有這一問,但公司裡未必真的會加班會出差。但聽到這類回答,說明這個人不能承受大壓力的工作,或是責任感不強,大多數公司是不會要這種人的。

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

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

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

你在面試前可以依照職位的需求,準備好這種「一筆帶過」的話。例如這個職位的需求點是Spring MVC框架,大數據高並發,要有資料庫調優經驗,那麼介紹以往專案時,你就最好突顯這些面向你的實際技能。

再給大家舉個例子,例如Java虛擬機器記憶體管理和資料庫最佳化是絕大多數專案都要遇到的兩大問題,大家都可以在敘述專案經驗時說,在這個專案裡,我們需要考慮記憶體因素,因為我們的程式碼只允許在2G記憶體環境中運行,而且對資料庫效能要求比較高,所以我們常常要監控優化記憶體和資料庫裡的SQL語句。這樣當面試官深入提問時,就能拋出自己準備好的虛擬機器記憶體優化和資料庫優化方面的說詞。

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

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

「七、你可以引导,但不能自说自话」

我面试的时候,也会遇到些有准备的人,其实如果你真的想应聘的话,一定要事先准备,这点我能理解,甚至赞同,你只要别露出太明显的痕迹,我不会写上“似乎有准备,没法考察真实技能”这种话,更何况未必每个面试官都能感觉出你准备过。 但你不能凭着有准备而太强势,毕竟面试是面试官主导的。

我遇到个别面试的人,他们说话太多,一般会主动扩展,比如我问他数据库用什么,他不仅回答数据库是什么,自己做了什么,甚至顺便会把大数据处理技术都说出来。

其实过犹不及,我就会重点考察你说的每个细节,因为我怀疑你说的都是你从网上看的,而不是你项目中用到的,我甚至会直接威胁:“你先和我说实话这个技术你真在项目里用到,我后面会重点考察,一旦被认为你项目里没做,这个性质就是蒙混过关了”,往往这些人会主动坦白。

不过话说回来,他如果仅仅说,数据量比较大,但点到为止,不继续说后面的话,我就会深入去问,他自然有机会表达。同时请注意,一般在面试过程中,一旦你亮出加分点,但面试官没接嘴,这个加分点可能就不是项目必备的,也不是他所关注的,当前你就可以别再说了,或者等到你提问题的时候再说。

「八、不是结尾的总结」

到这里,我们已经给出了介绍项目的一些技巧。

两句话,第一,面试前一定要准备,第二,本文给出是的方法,不是教条,大家可以按本文给出的方向结合自己的项目背景做准备,而不是死记硬背本文给出的一些说辞。

当大家介绍好项目背景后,面试才刚刚开始,哪怕你说得再好,哪怕你把问题引导到你准备的范围里,这也得应付Java Web(比如Spring MVC,ORM等)、Java Core(多线程、集合、JDBC等)和数据库等方面的问题。

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

#

以上是面試中,如何介紹自己的專案經驗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Java后端技术全栈。如有侵權,請聯絡admin@php.cn刪除