本文來自前幾天的一次親身經歷,並非標題黨,只是一次為學員做的模擬面試
部分簡歷截圖
隨便看看吧,可以得知這個是一個85年的程式設計師,之前一直接觸的都是銀行的一些老業務了,先簡單的瞭解一下。
先隨便問問
面試者 10多年工作經驗,簡歷卻只有 3 頁,可以說非常簡練,從程式設計師到專案經理、研發經理、技術總監都幹了個遍,Java/PHP/Python/C# 也都有涉及。
從交談過程中,他說是可以做技術+管理的,然後我說問一些技術上的問題,他說好。
博主: 你有網際網路分散式相關專案開發經歷麼?
面試者: 有啊,那個 XXX 專案就是
博主: 好,我看到了,我看這個專案是用 Dubbo 框架做的,為什麼要用 Dubbo 呢?在你們整個專案裡面 Dubbo 承擔了什麼角色?
面試者: 做服務治理,底層是 ZK…
然後他就一直在說和 ZK 的關係,我也沒怎麼聽明白,我再怎麼引導也沒說清楚 Dubbo 在專案中承擔什麼角色。
博主: 能介紹下服務與服務之間相互呼叫的時候,如果呼叫超時了是怎麼處理的?
面試者: 超時啊,(想了幾秒後)那應該是報錯吧
博主: 確定是報錯嗎?(他想了想,不說話,然後我接著說)沒有重試機制嗎?重試機制是怎樣的?
做過分散式的專案的都知道重試機制,至少讀操作要支援重試,寫操作支援重試的話被呼叫方還要支援冪等性,不然會造成重複寫入。
面試者: (又想了想)這個專案有點久了,這個不太記得了……
然後我看了下這個專案,2014 年做的,6 年前了,他說太久不記得了,那也情有可原了。
博主: OK,你最近做的這個專案,能介紹下它的整體架構麼?
面試者: 我們用了 MQ,用了 Redis,用了……(他說了一堆,都沒說到重點)
博主: 我想問的是,從上到下,這些技術是怎麼承接起來的,整體的系統架構是怎樣的?(因為是電話模擬面試,不然我都想讓他畫圖了)
面試者: 呃……我知道你的意思,主要是我真的不知道怎麼表達……(然後他不說話了,場面尷尬了)
博主:
沒事,問你一個設計性的問題,假如有一個介面,五個實現類,現在的需求可能要往介面加一個方法,這樣就要改動五個實現類,但需求只需要改動其中兩個實現類,要怎麼設計才好?面試者: 那就只能把方法寫在兩個實現類中……(想了半天也沒有說出好的方案)
其實這裡至少有兩個方案:
- 可以再定義一個抽象類去實現這個介面,在抽象類中新增這個方法,然後其他兩個實現類實現這個抽象類就好了。
- 使用 Java 8 中的新特性,在介面中新增預設方法或者靜態方法
所以,其實這裡我一方面是考一下他的設計能力,另一方面我是想了解下他對 JDK 新特性各方面知識的應用和掌握。
還有更多設計方案,我這裡只列了兩種,如果你有更多更好的想法,可以點此處加入QQ裙一起交流
博主: 好的,沒事(幹了這麼久,一些深入的技術都不會,問點基礎的算了)
請問:Java 介面和抽象類的區別是什麼?(其實就是上一題的答案)
面試者: 呃……(想了半天)好像是抽象類還是介面裡面可以寫實現方法的吧(不確定的回答)
博主: 到底是哪個可以寫實現方法呢?
面試者: (說的含含糊糊的,到後面乾脆不說話了,場面再度陷入尷尬……)
到這裡就差不多要結束了,中間都想直接問你確定是做過 Java 麼,這都是非常基礎的呀
感覺這位學員是收到了嚴重的打擊,對Java這一行都有陰影了
這個面試是不太理想的,甚至可以說要是真正的面試的話,一開始就掛了,對於程式設計師來說,年齡上了了,技術又跟不上,如果做不到中高層,我也要去和年輕搶飯碗,沒辦法,這是現實。
年紀來了,我感覺我自己寫程式碼確實也寫不太動了,人也變得越來越焦慮不安,能幹嘛去了?生意又不會做!
唯一能做的就是朝著自已期望的崗位或者目標不斷努力,不斷的提升自己的硬實力和基本功,越努力越幸運,只要這樣才能面對日益焦慮不安的自己,迎接未來更多的機會。
現在的很多年輕人很厲害啊,年輕有為的不少,但有句話是怎麼說的,大器晚成,為時不晚,這樣的例子也數不勝數,我想信,只要堅持學習,提升自己,總會有成功的那天。
最後,如果要是感興趣的話,各位可以點此處加入QQ裙一起交流
本文只是代表個人觀點,不一定符合所有人,但不喜勿噴。如覺有用,動動小手點個贊,轉發一下,感謝各位老鐵支援。
大家一起加油,共勉!