程式設計師如何準備技術面試

前言

我剛開始工作的時候,對面試總是很恐懼,一方面怕簡歷無法通過篩選,另一方面怕現場發揮得不好,浪費自己和麵試官的時間。我當初並不知道對比其他求職者,自己的優勢和劣勢在哪裡,也不知道自己到底值多少錢。面試的時候都覺得面試官很嚴肅,問的問題我也都答不上,肯定沒有機會入職,覺得自己爛透了,也不想浪費時間去面試多幾家了。

現在回過頭看,我覺得當初自己在欺騙自己,我真正擔心的是即使自己認真準備簡歷和麵試也對結果毫無影響,更不敢去想如果找不到工作沒錢繳房租怎麼辦,索性海投簡歷碰運氣。其實認真準備簡歷和麵試是很有用的,因為毫無準備,隨便面試的求職者真的太多了。 工作了幾年之後,當我有了面試官的經歷之後。我慢慢發現,公司招人實在困難,招的人要有計算機基礎知識,有項目經驗,願意學習而且願意來這家公司,靠的完全是緣分。所以只要你有一定的實力,願意努力,現在的互聯網行業還是買方市場,認真準備總是有收穫的。我希望把這幾年作為面試者和麵試官身份的的經驗給大家,也大家可以學到從中一些面試的技巧,找到心儀的工作。你可以使用ResumeJob進行簡歷Review和模擬面試,這樣真實面試的時候更有信心。

  • 分析階段準備階段面試階段總結階段

分析階段

  • 公司需要怎樣的員工員工需要怎樣的公司瞭解自己的優勢

公司需要怎樣的員工

先從公司的角度出發,如果你是部門的總監,你會希望什麼樣的員工?

我很喜歡Google前CEO施密特分享的一個故事,他剛到Google的時候,Google還只是個小的創業公司。他以為Google和其他公司沒什麼兩樣,直到有一個週五,拉里佩奇在用谷歌搜索一些關鍵字的時候,他發現出現了一些不相干的廣告推薦(這個情況我們現在在國內最大的搜索引擎也經常看到)。施密特以為接下來就是開幾個會議,然後分到具體的工程師手上解決。但是拉里佩奇沒有這麼做,他用紙條寫下"These Ads Suck!",附上相關的截圖貼在佈告欄上就回家了。接下來的72小時徹底改變了施密特的認知。在週一凌晨5點,有幾位並不是負責廣告業務的工程師發來一份郵件,從頭到尾闡述了這個問題產生的原因,他們的解決方案,以及這個計劃對公司有什麼影響。這和我們強制的996加班不一樣,他們從公司的角度去思考,自願自發地用週末的時間去解決並不屬於自己範疇的問題。 這樣的員工我想就是每個公司都需要的:

  • 有技術,工作認真負責,可以及時解決問題,能給公司帶來效益出色的團隊合作精神,能與團隊一起成長願意自我學習,投資自己

所以求職者的簡歷,面試中必須能體現出這幾點品質。舉個例子,要展現自己喜歡學習計算機,與其說:

熱愛計算機,喜歡學習計算機系統的知識。

可以修改為:

喜歡閱讀計算機系統的書籍,完成《深入理解計算機系統》80%以上的習題。並在博客分享學到的知識。

團隊合作能力也是面試官非常注重的一點,面試過程中如果被問到有沒有帶領團隊的經驗,如果你沒有的話也不要直接回答沒有,可以根據自己的情況回答:

“我在以往的項目中與團隊成員都能融洽相處,並且每個月都會做定期的技術分享互相學習,雖然沒有帶團隊的機會,但是相信自己能夠做好。”

當然這些不是一下子能想到,面試技巧多練就好。定期找幾家公司面試練練手,一方面能知道市場的行情,另一方面隨時能找到其他更好工作機會,跳出現有的舒服區。

員工需要怎樣的公司

找新工作之前,先認真思考下幾個問題,一份工作中你最看重的是哪些方面?

  • 薪酬公司福利/工作環境工作方向(假如你要從技術轉向管理,這個崗位提供這樣的可能嗎?)公司發展前景個人成長

瞭解自己的想法之後,再進行篩選公司以及準備如何提問。有時候薪酬的遠不及公司文化重要,如果公司有好的工程師文化,能聚集一批優秀的工程師。那麼只要認真待著一兩年,進步速度要比其他地方快得多。你可以根據自己的著重點,篩選不同的公司,以及準備向面試官提問的問題。而且非常重要的一點是,也可以真正地去思考你到底喜不喜歡這家公司,面試和找男女朋友一樣,找你喜歡的,而不是找你能找到的。 這點我們在面試階段會介紹,提問這部分非常重要,我遇見很多求職者感覺不好意思提問,一方面怕面試官會覺得自己有很多要求,另一方面根本沒有想好要問什麼。這點我覺得非常不明智,公司和員工就是互相選擇的,一定要多提問題,瞭解公司的文化以及崗位的職責。才不至於剛入職就因為不適應而要離開。如果求職者沒有提問,面試官也會擔心求職者入職後會不會不適應公司的某些規定,例如加班規定,著裝要求。由於解僱一位員工比招聘要痛苦得多,面試官反而會不敢輕易錄用他。

瞭解自己的優勢

仔細分析自己的優勢和劣勢是什麼,然後添加在簡歷中,優勢可以從這幾點入手,後面是面試官的理解:

優勢

  • 大型項目的經驗 (能解決項目普遍出現的問題,代碼能力應該不會差)作為主要參與者得過獎項(聰明,勇於嘗試)維護優秀的開源項目 (懂得團隊協作,能寫出優秀的代碼)發表過論文或者優秀的博客文章(研究能力強,分析能力強)數據結構和算法基礎好,Leetcode中等難度都能bug free(基礎不錯,培養起來也簡單)思維敏捷,聰明,有想法 (需要有文章,論文,得獎來證明)畢業於不錯的學校(學習努力)

與上面相反的就是劣勢了。瞭解到自己的優勢和劣勢,簡歷就可以強調自己的優勢,面試根據自己的劣勢來準備。例如,如果你要面試的是一家公司的開發工程師,那麼項目經驗以及對框架的熟悉程度就比較重要,如果面試的是研究崗位,那麼論文與文章的數量就比較重要。

準備階段

  • 隨時都在準備技術知識積累項目經驗準備簡歷模擬面試選擇公司

隨時都在準備

隨時準備並不是鼓勵頻繁地跳槽,而是要有隨時有跳出舒服圈的準備,也許你已經很滿意現在的工作,薪酬,覺得習慣而且安逸。不過如果公司突然倒閉,或者部門被裁減,你還能找到這樣或者更好的工作嗎?我建議各位求職者,每三個月可以去面試一兩家公司,因為你已經有不錯的工作了,所以可以帶著輕鬆的心態去面試,每一次面試都是很好的磨練機會。面試就像打籃球投球一樣,多練習才會準,如果一直害怕不進,連投球都不投的話,那連碰運氣的機會也沒有了。我剛參加工作的時候是一份爛透的簡歷---普通大學,專業不是計算機,作品也沒多少。也有一間大公司給我面試的機會。(我沒有做好準備,所以第一次的時候失敗了,第二次成功入職了。後來我知道互聯網行業招人真的非常難。)。機會隨時都會來,如果明天你喜歡的公司讓你去面試,你準備好了嗎?當你的GitHub看起來不錯的時候,很多公司的HR就會郵件聯繫你。你有信心去面試嗎?工作空閒之餘看看優秀的博客,研究下算法題,日積月累下來知識與計算機基礎就會越來越牢固,不用面試的時候臨時抱佛腳了。

技術知識

計算機科學基礎

  • 操作系統基礎網絡協議基礎數據結構與算法基礎堆棧,鏈表,隊列,二叉樹,哈希表,圖以及對應常用的操作方法二分法,位操作,遞歸,動態規劃七大排序算法

系統設計

  • 緩存,分佈式存儲/計算設計模式數據庫基礎

刷算法題的時候,要把每道題都當成面試題一樣按步驟完成,完成一題之後總結經驗。這樣遇到變形題也迎刃而解。可能有的同學有疑問,覺得這些平常工作都用不到,為什麼還要花那麼多時間在上面。其實不是的,第一,平常工作都能用到,無論從二分查找到複雜一點的貝葉斯模型. 開發的過程中如果你知道這個算法/數據結構,就能根據自己的業務來選擇最適合的算法/數據結構,減少項目的複雜度。 第二,數據結構和算法鍛鍊的是思維,當你刷算法題例如leetcode的時候,慢慢會學習到一些有趣的,巧妙的方法。它們能擴展你的編程時思考的範圍。同時也要求你考慮到各種不同的邊界情況。即使你不準備換工作,我也建議每天都刷一道算法題,日積月累,一年下來你的算法基礎一定能比同齡人高出不少。而且當你真正理解算法題的知識之後,寫程序debug和花在stackoverflow的時間就會大大減少,往往知道哪裡可能有問題並且能大幅地增加工作效率。

積累項目經驗

  • 參與開源項目
  • 計算機科學最重要的就是實際運用,關鍵就是多參與,多思考。開源項目可以讓你和世界上頂級的工程師一起工作,學習軟件設計以及語言的高級使用方法。同時能讓你理解軟件的是如何運行的。
  • 參與較底層/較複雜/偏向算法或研究的項目
  • 如果你未來想從開發轉向研究的崗位,那麼就可以閱讀一些相關學術論文,寫相關的文章分析與工具。
  • 造輪子,寫一些實用的工具
  • 從學習的角度來說,造輪子可以說是最好的方法,不過你要給自己一個期限,不能無止境地把時間花費在程序的細節中。知道原理,能夠實現其實就非常好。嘗試從實現平時常用的Web服務器,Web框架開始,有興趣可以延展到操作系統或者編程語言(我遇到過這樣的求職者)。自己寫完再看看別人是如何實現的,學習他的優點。其實到最後,你會發現計算機是越學越容易的,如果你不瞭解同步異步,往往是因為你不知道Web服務器是如何實現,不知道系統調用是如何實現的。當你能自己去實現的時候,很多以前的問題也就迎刃而解了。
  • 寫論文,分享文章
  • 如何宣傳你的開源項目或者業餘項目?寫一篇優秀的文章介紹它。同理,要證明你有喜歡計算機,有研究的能力,最好的方法也是寫一些優秀的文章以及論文。

準備簡歷

  • 找出優勢給出證明其他能力

我篩選過超過千份的簡歷,遇到太多太多千篇一律的簡歷了,描述都是熟練精通xxx框架,項目經驗都是博客加爬蟲。無論你是計算機專業,還是其他專業,還是培訓班出來,都應該重視自己的簡歷。要知道哪些簡歷是“不好的簡歷”,這裡指的不好,未必是求職者個人的問題,而是他沒有從面試官的角度來思考編輯簡歷。幾個要點是要注意的:

找出優勢

簡歷並不是越長越好,最好的簡歷長度是一到兩頁,列出你最優秀的項目經驗以及獎項。至於語言或者框架,只是簡單接觸過的話就不用寫上去了。面試官問你有沒有學過其他的時候才說出來。假如你只是學過簡單接觸過Go,面試官會先入為主地以為你對這個語言比較瞭解,如果問一些基礎的問題你也沒有回答正確。這樣反而會給面試官留下不好的印象,因為他會認為你對簡歷中的其他你真正熟練的語言也不太瞭解。常看到的寫法是:

精通django框架,熟悉Python語言

建議修改為:

精通django框架,是django的Top50代碼貢獻者。熟悉Python語言,理解Python垃圾回收,迭代器,裝飾器等常用對象的實現原理

多花幾分鐘的時間,就能在求職者的簡歷裡面脫穎而出了。

給出證明

常規寫法:

前期負責前後端API設計,後期負責實時流消息處理應用系統構建和實現

面試官無法知道你做得怎麼樣,建議根據“發生什麼事”,“你做了什麼”,“結果怎麼樣”三個點來修改,同時這裡必須出現數據作為參考,例如:

推動團隊轉用Graphql為新的API接口規範,從而減少20%的日均請求量,並節省了兩臺服務器資源。後期負責實現使用RTSP協議進行實時流消息處理,經過測試與優化,接口請求響應時間平均為40ms,同時架構了能支持100萬日活量的緩存服務器與後臺服務器。

這著並不是吹噓,因為你在項目中做的每一個選擇必然是有原因的,而且必然會對項目產生影響。而你在項目經驗中要寫的就是把你做的最優秀的項目中你產生最大的影響那部分。如果只是想面試官到時候有興趣的時候問再答吧,到時候如果緊張,很容易忘記具體的數字。如果項目經驗不多,可以把學校的專業排名(50/1000),員工考評(10/1000),優秀員工這些指標都加上去。不要覺得沒有用,這絕對是大多數求職者忽視但是非常重要的點。 而且簡歷如果既有一些較新的技術(例如Rust,Go,當然你要真的瞭解),又有經典的必備的技能,那麼就一定能夠吸引他的眼球。

其他能力

其他能力就是團隊協作能力以及解決問題的能力,如果你已經在開源項目有不錯的貢獻,那麼面試官就不用擔心團隊協作能力。至於解決問題的能力,你可以在項目經驗中可以列出解決的比較複雜的問題,例如 "解決了服務端同時推送10萬臺設備的的併發與資源佔用過多問題"。這樣面試官就知道你既有團隊協作能力又有解決難題的能力。面試題就不會出那麼難了。 其實很多公司在面試的時候都會出一些非常難的題,並不要求面試者一定要解決,而是要看面試者在遇到難題的時候會怎麼面對,是思考一下就放棄,是尋求面試官提示,還是從多個角度去解決問題。如果在簡歷中已經體現了這一點,那麼面試的時候就能略微放鬆了。

模擬面試

這個大家可能接觸得比較少,如果你準備去面試一家非常喜歡的公司,面試之前,你應該先進行模擬面試,模擬面試既可以讓你的朋友當面試官來面試你,也可以去找幾個有類似崗位的公司。第一,當你本來就沒有一定要進模擬公司的想法,那麼心態自然就能放輕鬆,帶著輕鬆的心態去面試的話更能發揮好,給自己信心,同時也可以問問面試官自己哪裡不足,可以加強的。同時鍛鍊自己面試的技巧,包括技術的基礎,以及如何問問題。當你面試得多了,發現其實都差不多,遇到問題也有經驗了。平時也可以在一些在線網站上面模擬,例如為外企求職使用的Pramp。

選擇公司

前幾家公司的選擇對你的職業規劃會有很大的影響,大公司還是小公司,和你個人的性格或者職業規劃有直接的關係:

大公司

  • 優勢入職薪酬比較高,每年固定調薪,員工福利例如下午茶,文娛活動,年假都有保證。通常都有大牛,而且工程師比較多,總能遇到一些志同道合的朋友。通常加班壓力沒那麼大。完成份內工作即好,開發工程師不需要部署和測試。跳槽到小公司比較容易,崗位也能得到提升。劣勢剛進去的時候接手的可能都是比較枯燥的小項目。可能需要維護幾年前的沒有文檔沒有測試的項目。(其實也能學習到很多)比較容易安逸,缺乏學習的動力。

小公司

  • 優勢相對來說,條條框框沒那麼多,偶爾遲到請假沒什麼關係。什麼都能學到,從開發到運維到測試。項目可以加上自己的建議和想法,比較有成就感。能直接向老闆彙報,升職速度比較快。萬一上市了呢?(想想就好)劣勢入職薪酬比較低,員工福利嘛,不能保證。有大牛的可能比較少,除非你事先知道(所以面試問問題非常重要)。加班壓力通常比較大,而且公司不一定會根據你的加班時間就漲薪。跳槽到大公司比較難,除非你有非常好的簡歷與能力。

在國內來說,小公司並沒有那麼自由,加班也可能很多。所有我覺得一開始選擇大公司往往是不錯的選擇,之後跳槽的選擇範圍也更多。

面試階段

  • HR電話確認電話面試家庭作業現場面試非技術問題求職者提問

當你得到了面試的機會,開始進入重頭戲了,無論你的履歷如何出眾,都不能對面試掉以輕心。我遇過很多簡歷不錯但是面試一塌糊塗的求職者,結果當然沒有錄用他們。翻轉二叉樹起碼要會寫吧 :D 面試一般會有幾輪:

HR電話確認

HR會和你聊下天,確保你瞭解這個崗位的基本信息。也可能問幾個關於你簡歷的問題,這輪只是考核下你的基礎信息是否正確,看看你的談吐是否正常(相信我,很多求職者如果不看自己的簡歷,連自我介紹都做不到)這輪放輕鬆,實話實話就好。

電話面試

這是技術面試的第一輪,可能會電話提問,也可能是通過把題目發在在線文檔,然後讓你去解決。一般都是比較簡單的算法,數據結構的基礎問題。如果遇到難的也不需要擔心,提供一些解題的思路,即使最後不能bugfree,起碼也有一些頭緒。

家庭作業

這輪並不常見,有的公司會讓你實現一個小模塊或者小工具。主要考核你實際情況下的開發能力。這點就要靠平時積累了,如何設計API,使用什麼設計模式,都有講究。多看開源項目源碼就好。Python的話我推薦看Requests源碼

現場面試

  • 提問測試用例思考闡述偽代碼代碼檢查

現場面試可能會有簡單的面試題,然後面試官出幾道算法題讓你可能電腦實操,也可能寫在白紙或者白板上。我明白很多求職者不喜歡白板面試,也覺得白板面試沒什麼意義。不過在我面試的求職者中,白板面試能力強的在實際工作中表現得也比較優異。白板面試確實難,不但對於你,對於其他求職者也是。要是你能做到,別人做不到,你就能在眾多求職者中突圍而出。

簡述一下解算法題的幾個步驟:

出個經典題目Two Sum:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

給出一個整數數組和一個目標數,返回兩個索引值,它們對應的數組元素的和等於目標數,只有一個答案。

Example:

Given nums = [2, 7, 11, 15], target = 9, 

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

提問

這階段的提問非常重要,因為你要100%地清晰地瞭解題目,才能解決題目。不要覺得提問得多顯得愚蠢,提問得多代表你在思考,沒有問題我反而會擔心求職者是不是之前做過這題,或者根本沒有思路。

  1. 這是一個有序數組嗎? 不是(注意這裡有個小陷阱,雖然在Example中給出的是一個有序數組,但是實際題目並沒說這是一個有序數組,所以要考慮無序以及為空等邊界條件)數組可以包含負數嗎? 不可以如果數組為空或者只包含一個數字,是沒有答案嗎?對的時間複雜度和空間複雜度有限制嗎?沒有

題目就轉變成

一個只包含正整數的無序數組,要求返回兩個不同的數組索引值,它們對應的數組元素的和正好等於目標數,如果數組為空或者只包含一個數字的話沒有答案,其他情況有且只有一個答案。

這樣就能排除一些邊界情況了。然後寫測試用例

測試用例

target = 9
# 測試用例
[],
[1],
[2, 7],
[2, 5, 7],
[5, 4, 2],

空的,只有一個元素,正序,逆序,正常情況都寫下來,面試官會對你考慮到那麼多情況而加分。

思考

先想想會用什麼數據結構,鏈表,哈希表,堆,棧,二叉樹,哪個結構能解決這個問題?如果真的沒有思路的話,思考了之後,可以請面試官給點提示,這個其實也是團隊合作的一種表現,請求提示不一定面試官就覺得你能力不行。

闡述

邊思考邊向面試官說出你的思路,雖然你的思路可能比較亂,沒什麼章節。但是沒關係。要大聲肯定地說出自己的想法,同時可以向面試官提問。我面試過幾位求職者,雖然他們沒有順利地完成算法題,但是能一直說出自己的思路,給我留下不錯的印象。就像我之前說的,有些難題,面試官並不是期望你都能答對,只不過想知道你遇到難題是如何解決的。所以闡述自己的想法是非常重要的。

偽代碼

如果數組長度小於2,返回False

建立一個哈希表

遍歷數組每一個元素:

如果目標值減去元素值在哈希表中

返回該索引與當前索引

否則把當前索引與值添加到哈希表中

時間複雜度為O(n),空間複雜度為O(n)

代碼

這題算簡單:

class Solution(object):
def twoSum(self, nums, target):
# 如果數組長度少於2的話,無解
if len(nums) <= 1:
return False
tem_dict = {}
for i in range(len(nums)):
# 檢測這個元素是否曾經出現過
if nums[i] in tem_dict:
return [tem_dict[nums[i]], i]
else:
tem_dict[target - nums[i]] = i

檢查

把測試用例帶進去代碼中檢查,然後看看哪裡可能會有問題,做出修改。

非技術問題

接下來面試官可能會問一些非技術的問題:

  • Q: 為什麼選擇這家公司?A: 面試之前對起碼要瀏覽過公司的網站,瞭解公司有什麼產品,這樣既可以防止遇到皮包公司,或者小作坊欠薪拖薪。也可以真正地去想你到底喜不喜歡這家公司,面試和找男女朋友一樣,找你喜歡的,而不是找你能找到的。 回答可以說說你對這個公司的印象。Q: 你曾經面臨最大的專業挑戰是什麼?你是怎麼戰勝它的?A: 這個一定要準備好,不能說沒什麼挑戰,沒什麼挑戰代表你沒有認真去思考,就算是最簡單的增刪改查或者前端的動效,背後的原理,網絡協議的原理,你都應該去了解。對你在簡歷中的每一個項目,你都應該能說出裡面最大的挑戰,最有趣的部分是什麼,這樣面試官才能真正理解你在項目中做了什麼,學習到什麼。Q: 是什麼為什麼你選擇離開你現任公司?你從你上一家公司學到最重要的是什麼?A: 大多數求職者不喜歡這個問題,也不知道怎麼回答。這個問題你能回答好的話就能拉出距離了。我覺得答案其實很簡單,你們公司的項目有更好的發展前景/我想挑戰自己在這一方面的能力等等。至於說舊公司薪酬太低,工時太長,沒前途這些就免了。Q: 你的長期工作目標是什麼?A: 這個看個人,轉管理的話可能會加一輪問管理方面的問題,轉資深工程師的話可以講下自己打算鑽研哪個方向,大數據,人工智能,區塊鏈都可以。

求職者提問

這點非常重要,要預防你到了新公司之後,發現公司文化不適合你,再馬上找新工作的話就不好了。

  • Q: 你們新老員工的比例是多少?厲害的工程師有多少?A: 這個問題其實揭示了公司的文化,如果新員工非常多,公司也不算新的話,那麼代表流動率很高,公司文化可能不是很好。第二個問題其實就是問有沒有大牛,有多少。有厲害的工程師總比沒有要好得多,進步的速度也更快。一個公司如果有比較多優秀的工程師的話,代表是不錯的公司。Q: 如果我入職的話,會有入職培訓嗎?會被分到哪個項目組,項目組的成員構成是怎樣?A: 這個可以瞭解公司的架構是不是清晰,個人職責劃分是否明確。如果面試官回答不了這個問題,或者支支吾吾的話。即使你進去的話可能要兼顧幾個項目,維護老項目。這些都要問清楚,你才知道自己大概的工作量有多少。維護舊項目雖然頭疼,但是上線壓力不大。如果新舊一起來,就要考慮自己是否適合這樣的工作強度。Q: 我入職的前三個月,要完成什麼工作來證明我的能力呢?A: 這個問題其實為下一個問題準備,如果我工作表現優秀的話,公司會不會有對應的獎勵?Q: 多久進行一次調薪,工作績效是如何計算的?是按項目收益,還是主管決定。A: 這個也是瞭解公司有沒有實施獎勵制度,通常回答準備中的都要留個心眼,可能一年都不會調薪。Q: 公司的五險一金是按什麼比例繳的,是按最低標準還是可以自己繳納更高比例A: 一般這個回問HR,如果小公司的話,也可以直接問工程師。五險一金看似沒多少,但是每個月累積下來就很多了,這個需要和麵試官確認。Q: 我今天面試的表現怎樣,如果通過之後我還會經過多少輪,怎樣的面試流程A: 首先可以瞭解自己的不足,積累經驗。也可以開始為下一輪複試做準備

總結階段

一次面試過來,可能筋疲力盡了。回想下自己哪裡可以做得更好,簡歷哪裡可以修改的。統計學告訴我們不要選擇第一家面試的公司,多面試幾家。不要欺騙自己,認真去思考每家的優點和缺點,和你的好朋友聊聊,尋求他們的建議。如果沒有拿到offer也沒關係,重複上面的步驟,繼續努力。兩年前我連想都不敢想到美國的大公司工作,而現在的我就在為Google的面試做準備,就算我現在進不了Google又有什麼關係呢?我還是在準備過程中學到很多知識。我很享受這段時間。相信自己,努力和汗水總會能得到回報的。

我推薦個學習資源平臺,關注我私信回覆【Java架構】可以領取高可用,高併發,spring源碼,mybatis源碼,JVM,大數據,Netty等多個技術知識的架構視頻資料和相關面試指導,還有很多技術大牛在內,有技術問題隨時問隨時有人解答!


分享到:


相關文章: