怎樣回答技術面試題?

image

三、四月份,春回大地,萬物復甦(請自帶趙忠祥老師的BGM),又到了不少同學的跳槽時節。

最近一段時間團隊也在招人,這期間篩選了不少簡歷,面試了一些候選人。這裏談談我自己的對「怎樣回答面試題」的理解。

歡迎各位各位老司機,新司機一起留言交流,我們一起探討下,無論做爲「面試官」,或者是「求職者」,怎樣回答面試題,能更好的去解答問題,達成自己求職的目標。

一、聽清題,勿搶答

面試,首先也是一個人與人交流溝通的過程。有些時候,面試官還沒說完問題,面試者就會打斷說「這個問題我知道…」。打斷不利於溝通,同時,這樣其實導致面試題沒聽清。比如面試題是「如何理解Java 的 JMM,…」後面還沒說的時候,面試者打斷說「你說的這個我會。。。,包括方法區,堆,棧 balabala」這就答的都跑偏了。

二、從全局、到具體

如果問題是「 Spring 是什麼,怎樣理解的」。很多人就會直接回答「Ioc 和 Aop嘛」這樣說不能算錯,但我個人認爲從一個更宏觀的方式先入手,再具體介紹對於 Spring 你深入瞭解的一個或者多個方面,這樣感覺更好一些。

發展到今天,Spring 並不僅僅只有Ioc 和Aop,而是一個包含一系列功能的XX,像快速開發的Spring Boot, 像微服務支持的 Spring Cloud, 像支持認證和鑑權的 Spring Security, 支持各種抽象的Spring data 提供的 xxxTemplate,Testing, 以及現在使用衆多的 Spring MVC。當然 Denpendency Injection 和 AOP 依然是核心。

再比如回答如何理解Java的垃圾回收機制,比起直接回答 「將無用的對象清除出內存」這類概括,如果描述垃圾回收,什麼時候會發生垃圾回收,具體的回收方式,瞭解哪些回收算法。出現OOM時如何調整,以及 JVM 的內存劃分等,我感覺效果會好很多。

三、不要驕傲自負,也不妄自菲薄

面試官在提問之後,有的候選人問題還沒聽完,一是搶答,二是不屑。心想爲啥問這麼簡單的問題。其實面試大家都理解爲一個不斷溝通,發現面試者長項的「交流」。比如有的面試者一聽「請寫一個單例模式」時,會略有不爽,彷彿才華被埋沒了,卻在「雙重鎖檢查」時,大意失手,忽略了CPU 指令重排序的影響。

還有的面試者,在面試官剛說出「接下來我們寫一個算法題…」還沒說完時,會拋出選項,「要不我寫個快排,二分查找?balabala」,如果你是面試官,你會怎麼做?

也有一些面試者,在被問到簡歷中所寫項目時,「眼神黯淡」,說道「我們沒做什麼有技術含量的,和你們沒法比」,又或者在面試官說到項目中的某個實現時,會說「你們也用了啊」,然後有的不敢向下說,彷彿簡歷包裝過度,也有的則是感覺有更多的共同話題,開始探討實現,選型等等。所以大膽展現自己,至少有一次機會。

四、簡歷切勿太誇張,更不要全是產品描述

看過不少簡歷,有些整個簡歷裏的項目,全是業務和產品介紹,通篇沒提到幾個技術點,不講實現,不寫用了什麼技術,全是大段的文字描述。做爲一個技術面試,沒有什麼技術性。

也有不少,簡歷裏寫着精通XX技術與YY框架,是ZZ專家。其實實際交流時,真的是隻限使用,都沒配置過。

一個「熟悉」的大部分時候會大於一個「精通」的水平。

五、廣度與深度

一般的面試,都會根據面試者的實際工作經驗時長,對應到該有的廣度與深度。但廣與深兩者間,我認爲先深入一個領域,一個概念,再拓展開來,這樣效果更好。

而且面試過程中,如果每問到一個話題,都是平常,或者是簡單瞭解過,會給人一種淺嘗輒止的感覺。如果某個方面深入,在回答相應的問題時得心應手,甚至可以回答「你最擅長什麼?」時,可以更有底氣。比如聊 Java 的併發 。除了能描述 sync 之外,先按從全局到具體,可以描述「內存模型」,以及Happens Before, Lock 與 sync 的區別。Lock 與 sync 分別對應的實現,以及JVM 的 monitor 指令, AQS …

去年電話面試一個實習生,對於開發框架還在自學階段,問到一些未學習到的部分,會實話說「目前還沒學到」,甚至精確到說XX技術「今天就要學了」,有計劃,有學習能力。但其描述的這種學習方法,態度 以及對已經學習部分的掌握程度與理解,對應表現出來的水平,都讓人印象深刻。後來到公司實習時並沒使用框架,而是根據需求使用了新技術,果然也沒讓人失望。

六、積極主動

這個我自己理解是在回答問題時,可以將自己擅長的展示出來。比如簡歷裏有寫到「項目使用過 RPC」,那在回答項目中如何使用RPC的時候,可以描述一些 RPC框架的設計實現思路,例如「我大致瞭解過 Dubbo 是這樣設計的」,和 「Thrift 有這些區別」,當然,這個時候面試官可能會問,有了解過 grpc麼? 你會怎麼辦?

此外,在講述項目使用技術時,可以順便將自己爲什麼這樣做,爲了什麼選擇使用這個技術,這樣簡歷之外的豐富信息,纔會讓面試官更立體的瞭解,從而爲「交流」打開局面。

七、有證明更佳

如果能在簡歷裏附上一個長期活躍的開源項目,不斷輸出的Blog 等等,也是一個讓人更全面瞭解你代碼風格,展現設計、思想的方式,學習方式的「平臺」。

不多說了,工頭喊我去搬磚了, ; )

本文轉載自「Tomcat那些事兒」,搜索「tomcat0000」即可關注。


歡迎關注微信公衆號【java從心
一個立志成大腿而每天努力奮鬥的年輕人
伴學習伴成長,成長之路你並不孤單! 如果覺得文章不錯,請點個贊、分享給你的小夥伴唄!