我上週和本週面了一些Java高級開發方面的候選人,不能說很差,但根據他們的工做經歷和項目經驗,徹底應該發揮得更好。好比一些只要是作過項目必定會用到的技術,他們廣泛都沒回答好,並且不少看上去時臨場發揮。java
並且根據我最近的面試經驗,這不是個別現象,而是大多數候選人廣泛存在的問題,這些問題包括:web
1 他們在簡歷上寫得一些技術點,好比數據庫優化,或Spring MVC框架,我相信候選人在平時項目必定作過,但不知道總結。好比我問在數據庫優化方面作過哪些事情?不少人就直接說沒作過,但我就不信他們連索引也沒用過。面試
2 我就拿java集合裏的HashMap舉例,我就問hashcode方法重寫過嗎?若是不重寫會有什麼後果?我想大多數候選人應該都用過HashMap,但能說上來的寥寥無幾,我猜測緣由可能仍是隻會用,不會總結。數據庫
3 描述項目經驗時,條理性不強,每每是想到什麼就說什麼,好比按個人思路,介紹項目經驗時,先大體介紹項目背景,而後談下用到的技術和框架,而後說下我作的模塊,再能夠說些亮點。但很多人敘述時基本沒邏輯性,好比第一句在說用到某技術,第二句就說項目裏有多少人,第三句再補充項目裏還用到什麼技術。性能優化
4 回答問題始終沒法切中要點,甚至有時候會用模糊語句矇混過關。好比我問,若是出現OOM異常,該查哪些日誌文件,而後該從哪些方面查?這問題不復雜,但有些人會直接說該擴展內存使用量,這就有些文不對題了。框架
可能還有其它問題點,但上述4點給我印象最深入。面試完給個人感受是,候選人可能平時項目裏也用到過這個技術,但不知道總結,因此致使在面試時沒回答好。分佈式
這很吃虧,由於面試官不得不根據候選人的答題狀況來衡量候選人的能力。若是他們在面試前作過準備,面試結果必定會比如今要好。同時我就很奇怪,如今的候選人是否是大多在面試前不作準備?或者說不知道該如何準備?微服務
在個人博文裏,不少文章是講如何準備面試,在java web輕量級開發面試教程裏,我也總結了一些簡歷和麪試方面的經驗。這裏再根據個人一些面試經驗,再總結下面試前該如何作準備,以及面試裏的實戰技巧。性能
準備要點1:介紹項目優化
你能夠在家裏列個發言提綱,着重說你用到的技術,以及你作的亮點,請注意,再介紹時,必定得準備些亮點,好比在微服務這塊你如何作部署,在分佈式集羣方面,你作過哪些配置。總之這是你比別人強的地方。當你拋出亮點時,面試官會有意無心地接口問。我也知道,這實際上是至關於被候選人牽着鼻子走,我在面試時也會注意,但這多是人的思惟慣性,我有時也會無心中接口問候選人提出的名詞。
也就是說,你若是準備好項目介紹,一方面能讓面試官感受你條理性很強,另外你甚至能夠引導面試後面的問題。
準備要點2:適當看些文檔,夯實你的基礎知識。
我就拿Java裏的集合來舉例,你們能夠看ArrayList,LinkedList,能夠看些HashMap和ConcurrentHashMap,泛型,每一個要點都適當深刻,必要時甚至能夠看些ArrayList或ConcurrentHashMap部分的源代碼,面試時找機會說出來。
面試過程當中廣泛出現的問題是,候選人會用這個技術,但說很差。出現這個問題的緣由是候選人沒作準備,其實在面試時,作不作準備給人的感受就徹底兩樣了。
準備要點3:看些值錢的技術,這些技術小而言之是優化方面的,好比JVM優化,數據庫性能優化,大而言之是框架,好比分佈式集羣,反向代理等,而後想辦法把這些技術嵌入到你的項目介紹裏,並準備些衍生問題。
最後說下個人結論:
1 面試前不作準備,哪怕你工做經驗再豐富,經過面試的可能性很小。你們對此別抱有任何僥倖心理,這是從不少實例中總結出來的。
2 我在其它博文裏寫過些作準備工做的方式,你們能夠看下個人其它文章。
3 積累面試經驗不只得靠準備,更得靠實戰。好比你最近想要換工做了,你能夠提早找些小公司練手,一方面看下最近流行哪些面試題,另外一方面不斷在實戰中發現本身的問題,再不斷準備。
4 我也見過一些比較極端的例子,好比候選人只有初級開發的能力,但憑着能說會道,最終面上了高級開發,但畢竟這是少數,面試技巧大概佔30%,最終還得靠實力,所謂一力降十會。