關於近期面試的一些思考

2020年4月,由於公司變動,投了簡歷出來看看機會。這期間面試了好幾家公司,在面試過程中發現了自己的很多不足,這裏總結一下,算是對自己工作四年的一點反思。

 

關於表達能力

表達能力這一塊,一直知道自己不擅長。但是經過這幾次面試更加認識到,清晰和流暢的表達是非常重要的。在面試中,需要向面試官表達清楚你做的項目;在回答面試官的問題時,也需要有條理的表達。而我這的不足表現在,有時候自己腦子裏是知道一件事的,但是表達的時候,條理和邏輯就不夠清晰,雖然自己知道一個問題的答案,但是自己說完之後,自己能意識到自己剛纔說的亂糟糟的。

關於如何提升表達能力,我認爲還是要平時多溝通。所以我接下來應該多說說話,可以經常加入同事們之間argue一個問題。和產品同事多多交流,產品同事一般來說表達能力還是不錯的。另外,可能溝通還有一些技巧吧,可以找一些書看看,但最重要的還是實踐。

接下來自己要主要注意以下幾個點,針對性的刻意練習:

  • 仔細聆聽對方的問題,搞清楚對方想問的是什麼;
  • 清晰、流暢、有條理的表達;
  • 自己的項目和用到的技術要非常熟悉,自己吃飯的傢伙都不熟悉的話,就甭談什麼清晰表達了;

在下次面試的時候,希望自己的表達能力有較大的進步,不拖面試的後腿。

 

關於技術

技術這一塊,自己用到的技術自己要熟悉,這是最基本的。此外,最好能熟悉一些相關的技術,比如自己所在的公司消息隊列用的是RabbitMQ,那就要思考一下,爲何選擇RabbitMQ?還有其他哪些消息隊列產品?和RabbitMQ的區別在哪裏?總之,就是在自己用到的技術方面,多思考爲什麼,而這個思考的過程,會帶你去了解相關技術。

此外,要深入學習一些技術,不能停留在表面。這個月面試下來,發覺自己只是什麼技術都會一點,但技術深度很不夠,這是接下來需要重點改進的。

 

技術的應用場景

另外,就是思考技術的應用場景。比如:

  1. 多線程,在項目裏哪些地方用到了多線程?
  2. 分佈式鎖,自己的項目裏哪些地方用到了分佈式鎖?用的什麼方案?會不會帶來哪些問題?
  3. Java裏的AtomicInteger,項目裏哪些地方用到了?
  4. ....

應用場景的思考,會進一步讓你思考爲何選擇該技術。對於工作經驗更豐富的工程師,知道的不應該只是一些技術本身,而是清晰的認識到其應用場景和侷限性。

 

技術的總結 & 思考

最後,就是對技術的總結,並形成自己的理解。比如:

 

重構 / 設計模式;

你在項目中也不斷重構過,那麼你對重構有什麼自己的理解嗎?該怎麼去進行重構?

併發

如果系統併發量比較高,該從哪些地方去做優化?這是一個比較大的話題,能反映出一個工程師對系統的整體理解,而不只是知道緩存、消息隊列這些零散的知識點就夠了,需要把這些知識整合起來。

XX 出問題了,如何排查

 

這些問題看似又空又大,但是能看出來一個工程師對技術的整體有沒有形成自己的理解。此外,當面試官提出這類問題的時候,要意識到他不是在問你某個具體的知識點,而是考察你在項目中有沒有思考和總結,以及對系統的整體把握。這部分問題尤其需要清晰且有邏輯的表達。

 

關於數據結構和算法

這部分從技術中提出來了,想單獨說說。

其實對於大部分的公司而言,招聘時候考察算法主要還是爲了篩人。所以如果你還在做軟件這個行業,還要換工作,那最好是平時就鞏固一下算法知識。臨時抱佛腳不一定來得及。

個人認爲,算法還是要多練習,三分學習七分練習,就和編程語言差不多。

我第一次接觸C語言,也覺得很難,甚至畢業了也寫不出工程化的代碼,但是只要在公司裏,在實際項目裏用個三五個月,就很熟練了。唯手熟爾。

算法也是,做題的過程就是練習的過程,對我這這樣資質普通的人,看了一兩遍算法書後,寫不出來算法題,是很正常的,不要沮喪,多練習。

 

總結

希望自己今後能在以上這些方面不斷提升自己,不要只埋着頭學技術、做項目,在關注技術細節的同時,也多從宏觀進行思考。

 

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