【offer收割機必備】我簡歷上的Java項目都好low,怎麼辦?

歡迎關注頭條號:石杉的架構筆記

週一至週五早八點半!精品技術文章準時送上!!!

精品學習資料獲取通道,參見文末


目錄:

  • 高級工程師必備:系統設計能力
  • 如何讓你的項目更有技術含量


上篇文章【金三銀四跳槽季】Java工程師如何在1個月內做好面試準備?。我們聊了聊Java工程師在跳槽前的1個月,如何利用較短的時間從技術廣度、技術深度、基礎功底幾個方面進行較為完善的準備。

這篇文章我們繼續來聊一聊,在系統設計項目經驗這兩塊,應該如何充分的準備,才能拿出有技術含量的項目經驗戰勝跟你同臺競技的其他工程師,征服你的面試官,收穫各種心儀的offer。



(1)高級工程師必備:系統設計能力


我們一般在招聘高級及以上工程師的時候,一定會嚴格考察一項能力,系統設計能力。

因為如果你僅僅是對各種各樣的技術都熟悉,有技術廣度,也有一定的技術深度,實際上是不夠的。如果你的系統設計能力不到位,可能導致你在開發系統的時候會亂用技術。

比如說,有的系統他有一些自己特殊的業務場景和技術挑戰,實際上在這個場景之下比較合適的是採用 “緩存 + 數據庫” 的技術方案來應對。

但是呢,有的工程師會很多技術,但是缺少這種準確的分析系統問題,提出合理的技術方案的能力,也就是缺少系統設計能力,導致他可能會引入Elasticsearch這種技術來嘗試解決這個問題。

那麼結果必然是失敗的。所以之前很多人找我問問題,說我在XX場景下,用了XX技術,但是沒有起到我想要的那個結果啊?

我幫他一看,這不是必然的麼,你的XX技術應該用在YY場景下,結果你用到XX場景下,肯定是不行的。

這就是系統設計能力的重要性。


【offer收割機必備】我簡歷上的Java項目都好low,怎麼辦?


那麼落地到現在的互聯網行業的面試,大家應該會注意到,很多大廠都會越來越開始問一些系統設計類的問題,舉幾個例子來看看:

1、 如果讓你設計一個秒殺系統,你會如何設計?

2、 如果讓你來設計一個消息中間件,你會從哪些方面來考慮?核心的架構以及數據結構如何設計?

3、 如果讓你來負責一個電商雙11大促系統,你會如何來考慮和設計?

4、 我們公司有這樣的一個業務場景,XXXX,我給你畫個圖,YYYY, 就根據這樣的一個場景以及面臨的問題。如果讓你來設計這個系統, 你會如何考慮?

其實如果你在面試的時候遇到上面的那些問題,就是典型的系統設計問題。

面試中的系統設計問題主要分為兩類,一類是常規性的,比如秒殺系統的設計,另外一類是那個公司自己的業務場景下的系統設計。

第一類系統設計問題其實很好快速突擊準備,你可以到網上搜一搜互聯網公司常問的一些系統設計問題。

收集好一些典型問題之後,百度一些技術博客給出的技術架構設計的思路,將這些思路自己進行整理總結,然後轉化為自己的語言,最後落地到紙上畫出架構圖。

到面試現場,你能夠畫圖把這個系統設計思路說清楚,這個基本就OK了。

這個準備時間不長,突擊的話可能幾天時間也足夠了。

當然,還是那句話,最好的結果,必然是你自己本身做過類似的一些有挑戰的系統。

此時你遇到這種系統設計問題,直接可以很牛叉的說,這類系統我之前做過,然後把自己之前的項目經驗都現場畫圖給說出來。

第二類系統設計問題就不太好準備了,因為完全考驗的是你實打實的系統設計能力,短時間內針對一個業務場景和技術難點,能否迅速給出一個初步的架構設計和技術方案。

第二類系統設計問題,從長期積累和準備的角度,我的建議是在平時自己在開發系統的時候多思考,自己的這個系統有沒有什麼技術難題,針對這個技術難題應該用什麼什麼技術,什麼方案來解決,這就是潛移默化的在積累系統設計能力。

但是如果從臨時抱佛腳的角度,平時沒那樣的積累,遇到第二類靈活開放的系統設計問題,那也不能一問三不知,大眼瞪小眼。


【offer收割機必備】我簡歷上的Java項目都好low,怎麼辦?



因此,我的建議是:

  1. 對於你要面試的公司,儘可能的多做了解。比如公司業務背景,大概用戶量,這些都可以瞭解一下。
  2. 如果目標公司有官方的社區或者官方公眾號,關注一下,看看上面的技術分享。
  3. 然後如果面試時,面試官針對他們公司的具體業務出了一個系統設計題目,你如果沒有思路,建議儘可能的結合第一類的常規系統設計題目來思考套用。


舉個例子,比如你面試一個p2p金融業務的公司,如果被問到大量用戶同時搶標,如何設計架構?

你沒有做過,但是你可以結合一些常規的系統設計題,比如秒殺系統的設計思路,套用在這個新的業務上。

而你如果在面試這家公司前,大致瞭解了其業務背景,那麼對你回答這類系統設計相關的題目,肯定也是很有幫助的。


(2)如何讓你的項目經驗更有技術含量


在解決了系統設計問題之後,任何一個公司,任何一個面試,都一定會涉及到你作為一個工程師最最核心的價值和能力,就是你的經驗,具體來說就是你做過的項目。

這塊是面試準備時的重中之重,應該作為最高優先級來對待。

有很多同學,做的項目其實挺不錯,但是平時疏於總結,面試前也不準備,結果面試時支支吾吾,半天答不上來,白白浪費面試機會。

比如一個非常典型的項目經驗的面試考察情景如下:面試官反覆的追問項目的各個地方的技術實現細節,就想看看有沒有哪個地方是有一定的技術難度的,可以體現出這個候選人的一些項目上的亮點。

但是呢,候選人說來說去,總是從業務的角度去說,就說有哪些子系統組成,分別是幹什麼的,如何交互的,看來看去都是系統業務的東西,就是沒看到什麼有技術含量的東西在項目裡體現出來了。

如果出現上述的情況,那麼這個候選人要拿大廠offer的概率就很低了。

因為你的項目裡沒看出來什麼東西,沒什麼亮眼的地方。你看起來就跟千千萬萬個普通的工程師沒任何區別。

而且,在薪水方面,你要價23k,但是另外一個人要價是20k,還有一個人要價是18k。

在這種情況下,你覺得你的offer好拿麼?我們為什麼不找一個更年輕,更有活力的,有衝勁的小夥子,他也做過跟你類似的一些沒太大技術含量的項目。


【offer收割機必備】我簡歷上的Java項目都好low,怎麼辦?

雖然你工作了5年,人家就工作了3年,但是從技術和項目兩塊考察,你跟他沒太大區別。你不過就是比他多工作了2年,多做了幾個沒技術含量的項目罷了。

但是在薪資要求方面,你可比人家多了5k,在這個時候,面試官在沒更好選擇的情況下,一定會找那個薪資要求僅18k的小夥子。

這也是為什麼很多同學不好好準備出去面試,結果面半天,老是被人家說:你先回去等通知,我們要再多面試幾個候選人綜合考察一下。到最後面試好多次也拿不到幾個offer。

其實原因很簡單,你沒什麼能打動面試官的亮點,沒什麼太突出的能力。而你的工作年限越長,薪資要求越高,就越是不容易拿到好公司的offer。

上面說的,是一個極端,這類同學對自己做過的項目毫不重視,導致無法在面試中復現項目中的各種技術細節、技術難點。

這樣,即使你的項目很牛,那又有何用,你當時做項目的時候,面試官又不在場。。。

然而,也有不少同學,他們的項目其實並不高端,甚至是有點low。但是呢,人家憑藉自己精心的準備,加上一些面試技巧,巧妙的讓自己的項目脫胎換骨,瞬間變得高大上。

所以說,項目準備,百轉千回,這裡面有不少門道,接下來咱們就來聊聊。

同樣,咱們分為兩條路線來談:一個是長期準備型;一個是短期突擊,臨陣磨槍。


對於前者,我個人的建議,還是像之前說過的一樣,平時你工作的時候,一定多給自己設立技術挑戰。總結起來一句話:沒有困難,製造困難也要上。

這裡面可能會存在對於架構的過度設計的問題,站在公司的層面會覺得花那麼多時間設計這些架構實在是無用功,但是從個人發展的角度,為了你的職業生涯發展,你有時不得不過度設計一下。

況且,這個對公司也未必是一件壞事,萬一你公司以後規模發展起來了呢?這個誰又說的清楚。

舉個例子,你在公司目前是負責一個OA辦公系統,就內部幾十個人使用,主要就是寫寫業務,crud啥的,看起來很low的項目。

然後呢,你使用的技術就是簡單的SSM,可能連SpringBoot都沒上,整個項目就部署的一個單體工程,沒有微服務、沒有緩存、跟所有高併發高可用等技術完全絕緣。

確實,幾十個人用,你何必殺雞焉用宰牛刀呢?

但是想象一下,如果你的公司是一個世界500強,這套OA系統有上萬人使用,那麼情況肯定就不同了,可能就需要另外一套技術架構。你完全可以在工作中給自己做這樣的假設,設置這樣的難題。

當然,這只是筆者舉的一個例子,之所以用這個舉例,是想說明一下,無論你做的是什麼項目,你都可以從某種角度出發,給自己製造各種技術難題,然後解決難題。

你可以在不要給工作量增添太多的情況下,儘可能從公司發展的角度去考慮,向領導闡述你的考慮,這樣公司未來發展5~10年,這套架構都夠用了。

並且在面試時,你在闡述項目經驗的時候,可以讓面試官看到你在裡面有更多的技術架構的設計,考慮到了解決更多的技術問題,那麼自然你的面試表現就會更好,就更加容易會拿到更好的offer了。

上述就是所說的第一點,長期情況下應該如何積累自己的項目面試經驗。


【offer收割機必備】我簡歷上的Java項目都好low,怎麼辦?

接下來說說第二點,項目的短期突擊應該如何進行,才能儘可能的讓我們的項目顯得更加吸引人。我估計可能更多的同學需要這方面的技巧。

但是筆者還是事先強調,這種短期突擊、臨陣磨槍,效果肯定是比不上長期的一步步穩紮穩打,這只是一種應對面試的退而求其次之選。

如果大家有時間,或者說通過這種短期突擊的打法拿到了心儀的offer,還是應該沉下心來,一步步積累,技術的東西,來不得半點馬虎。

如果你之前因為種種原因,在面試前沒有做過多的長期積累,那麼短期的情況下,應該如何臨陣磨槍呢?

我這裡的建議是,你自己至少應該反覆思考,你目前負責的系統應該引入什麼樣的技術架構,採用何種技術方案,才能抗住各種衝擊。

突擊準備,你肯定沒有大把時間來付諸實踐,但是你一定要自己思考,同時百度一下國內大型互聯網公司的技術架構,他們使用了哪些高大上的技術,對於某個技術難點採用了什麼技術方案。

然後在面試的時候,可以對面試官闡述一下你對這個項目一些問題的思考,以及技術方案、架構如何來設計,這樣設計可以解決什麼技術問題,有沒有更好的方案選擇。

這樣一來,你起碼比普通工程師多一些思考,提出更多的方案,這也能成為你更加亮眼的地方。

還是那句話,做,總比不做強。你對自己的項目思考了很多的技術方案,這樣和麵試官總還有一些技術上的交流和探討的東西。你的項目也不至於說充滿了各種CRUD,毫無亮點可言。

(圖源網絡,侵權刪圖)

End

私信頭條號,發送:“資料”,獲取更多“祕製” 精品學習資料

如有收穫,請幫忙轉發,您的鼓勵是作者最大的動力,謝謝!

一大波微服務、分佈式、高併發、高可用的原創系列文章正在路上,

歡迎關注頭條號:石杉的架構筆記

週一至週五早八點半!精品技術文章準時送上!!!

十餘年BAT架構經驗傾囊相授

推薦閱讀

1、拜託!面試請不要再問我Spring Cloud底層原理!

2、微服務註冊中心如何承載大型系統的千萬級訪問?

3、「性能優化之道」每秒上萬併發下的Spring Cloud參數優化實戰

4、「“剁手黨”狂歡的背後」微服務架構如何保障99.99%的高可用?

5、兄弟,用大白話告訴你小白都能看懂的Hadoop架構原理

6、大規模集群下Hadoop NameNode如何承載每秒上千次的高併發訪問

7、「性能優化的祕密」Hadoop如何將TB級大文件的上傳性能優化上百倍

8、拜託,面試請不要再問我TCC分佈式事務的實現原理!

9、最終一致性分佈式事務如何保障實際生產中99.99%高可用?

10、拜託,面試請不要再問我Redis分佈式鎖的實現原理

11、Hadoop底層算法如何優雅的將大規模集群性能提升10倍以上?

12、億級流量系統架構之如何支撐百億級數據的存儲與計算

13、億級流量系統架構之如何設計高容錯分佈式計算系統

14、億級流量系統架構之如何設計承載百億流量的高性能架構

15、億級流量系統架構之如何設計每秒十萬查詢的高併發架構

16、億級流量系統架構之如何設計全鏈路99.99%高可用架構

17、七張圖徹底講清楚ZooKeeper分佈式鎖的實現原理

18、大白話聊聊Java併發面試問題之volatile到底是什麼?

19、大白話聊聊Java併發面試問題之Java 8如何優化CAS性能?

20、大白話聊聊Java併發面試問題之談談你對AQS的理解?

21、大白話聊聊Java併發面試問題之微服務註冊中心的讀寫鎖優化

22、互聯網公司的面試官是如何360°無死角考察候選人的?(上篇)

23、互聯網公司面試官是如何360°無死角考察候選人的?(下篇)

24、「Java進階面試系列之一」你們系統架構中為何要引入消息中間件?

25、「Java進階面試系列之二」系統架構引入消息中間件有什麼缺點

26、「行走的Offer收割機」一位朋友斬獲BAT技術專家Offer的面試經歷

27、「Java進階面試系列之三」消息中間件在你們項目裡是如何落地的?

28、扎心!線上服務宕機時,如何保證數據100%不丟失?

29、 一次JVM FullGC的背後,竟隱藏著驚心動魄的線上生產事故!

30、「高併發優化實踐」10倍請求壓力來襲,你的系統會被擊垮嗎?

31、消息中間件集群崩潰,如何保證百萬生產數據不丟失?

32、億級流量系統架構之如何在上萬併發場景下設計可擴展架構(上)?

33、億級流量系統架構之如何在上萬併發場景下設計可擴展架構(中)?

34、億級流量系統架構之如何在上萬併發場景下設計可擴展架構(下)?

35、億級流量架構第二彈:你的系統真的無懈可擊嗎?

36、億級流量系統架構之如何保證百億流量下的數據一致性(上)

37、億級流量系統架構之如何保證百億流量下的數據一致性(中)?

38、億級流量系統架構之如何保證百億流量下的數據一致性(下)?

39、互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失(1)

40、互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失(2)

41、面試大殺器:消息中間件如何實現消費吞吐量的百倍優化?

42、兄弟,用大白話給你講小白都能看懂的分佈式系統容錯架構

43、從團隊自研的百萬併發中間件系統的內核設計看Java併發性能優化

44、如果20萬用戶同時訪問一個熱點緩存,如何優化你的緩存架構?

45、「非廣告,純乾貨」英語差的程序員如何才能無障礙閱讀官方文檔?

46、面試最讓你手足無措的一個問題:你的系統如何支撐高併發?

47、Java進階必備:優雅的告訴面試官消息中間件該如何實現高可用架構

48、「非廣告,純乾貨」中小公司的Java工程師應該如何逆襲衝進BAT?

49、拜託,面試請不要再問我分佈式搜索引擎的架構原理!

50、互聯網大廠Java面試題:使用無界隊列的線程池會導致內存飆升嗎?

51、「碼農打怪升級之路」行走江湖,你需要解鎖哪些技能包?

52、「來自一線的血淚總結」你的系統上線時是否踩過這些坑?

相關推薦

推薦中...