歡迎光臨
每天分享高質量文章

螞蟻中間件面試指南

寫過代碼的技術同學都知道,中間件在整個技術體系里的重要性。在過去的十多年裡,螞蟻金服自主研發出了金融級的分佈式中間件 —— SOFAStack,並多次在極為複雜的場景下得到驗證,比如每年的雙 11。在螞蟻金服,中間件團隊是一個帶著“光環”的隊伍,CTO 程立、副 CTO 胡喜都出自這個組織……

文/圖 無暮

配置千萬條,集群第一條,環境不匹配,戰友兩行淚。——《流浪程式猿》

為什麼選擇螞蟻中間件

 

2 年前的這個時候,作為南哪大學(南京大學)實習求職大潮的一名小白,一開學各種互聯網大小廠學長學姐的內推郵件就塞滿了郵箱,特別是阿裡系的內推郵件各種部門玲琅滿目。要說為什麼在眾多內推中對螞蟻中間件情有獨鐘,說起來有表裡兩個原因:先說里原因,一直覺得程式員的核心是用抽象和自動化來低成本和快速地實現更多的價值,而中間件則可以抽象出通用的能力為業務同學賦能,讓業務同學專心於業務,實現更大的業務價值;誒嘿,表原因是中間件部門的內推 JD 看起來要求還挺高的,篤定身邊好多的小伙伴都不敢投,自己投的話錄用概率比較大,對就是這麼膚淺!(希望老大看到不要給我 3.25)

面試的“心機“往事

 

本科實習的時候也投過阿裡,但當時本想著自己學校還可以,學習成績也不錯,找實習那不是嗖嗖的。以為面試只是聊聊人生、聊聊課程專案走個過場,滿腦子想著找工作是不是也像考大學一樣,只要學校好、成績好,就可以去個好公司。年輕人,Naive!接到的阿裡的電話面試,一連串的併發編程、虛擬機等教材上沒怎麼接觸到的詞彙面到快要“自閉”。幸好保研讓我有了“翻身農奴把歌唱”的機會。從研究生生涯的第一天起,就開始為一年後的阿裡實習生面試做準備。

對我來說準備面試是一個複習、應試和成長的過程。

複習 複習大學課程裡面學到的計算機基礎知識,包括資料結構、演算法、操作系統和網絡相關知識。複習不僅僅是為了面試,也是能讓自己能夠整理歸納以前學過的知識,達到連點成線、織線成網的效果。很喜歡左耳朵耗子的一句話”基礎技術總是枯燥和有價值的。數學、演算法、網絡、儲存等基礎技術吃得越透,越容易服務上層的各種衍生技術或產品”。等實踐多了,就會發現很多專案中用到的技術和基礎技術裡面的思路很相似。學好基礎技術走遍天下都不怕

應試 準備面試就是一個應試的過程,面試很艱苦,需要經歷九九八十一難才能取得 offer,那就不得不說明年下半年中美合拍的西…面試考點。對於應屆生來說,其實考點還挺清晰的,網上已經有很多總結,也有很多面經:

  • 資料結構:常見資料結構 List、Map 和 Set 的實現原理和應用場景,稍微上升一點,java.util.* 裡面資料結構的原始碼分析;

  • 演算法:幾種排序演算法的實現、複雜度和應用場景,稍微上升一點,當處理記憶體放不下的海量資料的 TOP K 問題、排序問題等等;

  • 操作系統:記憶體分配尋址、執行緒調度和磁盤訪問;

  • 網絡:七層四層協議、TCP/IP 握手揮手和擁塞控制;

  • 資料庫:基本的 SQL、資料庫引擎的區別和索引的型別和原理。

“掌握”了上述的這些,個人覺得作為一個應屆畢業生來說就已經合格了。前提是真正的掌握,要“由表及里,知其所以然”。最好是自己模擬問自己,能經受得住 3 輪以上的提問

成長 成長主要來自於書籍的閱讀和探索。研一時間里,陸陸續續把《Thinking In Java》、《Effective Java》、《Java Concurrency in Practice》、《深入理解 Java 虛擬機》和《Netty In Action》啃完,說實話能這麼閑,也要感謝我們南哪放養學院。回想起來,《Thinking In Java》和《Java Concurrency InPractice》這兩本書不愧為經典,內容由淺入深,很多知識點不僅僅告訴你怎麼樣,還講解原理是什麼、為什麼這樣。也是從讀這兩本書起,開始養成習慣採取三步法去瞭解一項技術:外在行為/表現是怎麼樣的;怎麼實現/原理是什麼;為什麼要選擇這樣做,目的是什麼,優劣是什麼。看書不僅僅能讓自己系統的掌握一項技術,技術書籍中往往還會留下一些進階知識的引子,我也是因為這些引子開始去探索 AQS、讀寫鎖、執行緒池和 ForkJoinPool 之類的原始碼,也是這些探索給我今後的開發和設計帶來了很大的幫助。

應屆生面試考察的是基礎、思維和潛力。基礎和思維是在平時的學習和麵試的準備中培養的,沒人有能一眼看出你是個”武學奇才”,潛力是讓面試官看到你相比其他人的優勢和亮點。對於面試,談談自己的理解。面試的目的是向面試官“展現自己的優勢”最終拿到 offer,而優勢是在和麵試官的對話中體現。如何最大程度的體現出自己的優勢,充足的準備是一方面,另一方面引導面試官去問自己擅長的技能是很重要的一點。首先簡歷上要下功夫,簡歷上寫出來的東西應該都是自己希望面試官去問的、有亮點的東西,而不是只是陳列自己做了什麼專案,並且簡歷上的每個點最好經得住三、四問,最好能回答到面試官也不熟悉的領域。其次在自我介紹的時候,要引導話題,將焦點聚集在擅長的部分,這樣才不會出現面試節奏被帶跑的情況(恨不得就直接說快問我這些,我都準備好了)。

見聞及感受

想要變強,首先要站在強者中間。在螞蟻實習和工作的一年半時間里,我對這句話有很深的體會。我參加過大大小小、各種技術主題的分享講座,收穫技術知識的同時,可以見識到他人的思維方式,拓寬自己的眼界,從各種角度獲得對自己的提升。除此之外,在講座中扮演分享者的角色,更是一個學習的機會。我曾經在實習期間做了一次 AQS 的分享,做分享對自己的提高是巨大的,想要把事情來龍去脈說的明白,既需要透徹的理解、廣泛的涉獵、又要有觸類旁通的總結和深入淺出的表述。螞蟻為技術分享提供了自由的平臺,“在這樣的環境下,從不會缺少進步的機會”。

在巨人的肩膀上,站得更高,看得更遠。除了平日眾多的分享以外,螞蟻還專門有一個技術大學為應屆萌新特別準備了青年近衛軍新人培養計劃。在入職後的兩個月內,從線上線下,從理論到實踐,各個業務線和技術線的老司機將向新人同學全方位地介紹業務背景,講解基礎技術,幫助同學們快速落地。老師們知識淵博、風趣幽默,從便民服務到普惠金融,從分佈式事務到單元化架構,他們獨到的見解和講授,都使我受益良多。另外在實戰環節中專門配備了技術指導員和專案指導員輔導新同學從 0 到 1 完成一款“minialipay”的開發,在短短的 2 周內,收穫頗豐。

歡樂的中間件團隊在 Outing

“小螺絲也能發揮大能量。”每個人都是公司的螺絲釘,雙十一、新春紅包千萬 TPS 的考驗,每一次突破的背後都是鏈路上所有部門的集體突破。螞蟻天生的金融屬性不僅對中間件的正確性和穩定性提出了極高的要求,加速發展的業務也要求中間件隨時接受新的挑戰,像火箭一般迅速迭代和拓展,這火箭的巨大能量來自於每一顆螺絲釘自我挑戰和突破帶來的推動力。從入職起一坐上通信中間件這艘火箭,我就開始感受到這比脫髮還要快的功能開發速度。

剛入職不到一周,就被師兄丟過來一個多 Session 冪等的需求,上游資料同步催得很急要求2周內完成。才入職不能虛,接下需求,兩周內設計方案、啃代碼、一把梭,最終按時完成,還是挺有成就感的。“不丟、不錯、不亂”資料同步的三不要求對訊息佇列的代碼質量和功能的完備性提出了極高的要求。都知道併發編程容易出錯,而螞蟻訊息佇列是基於分佈式儲存盤古的,將併發編程從單行程擴展到多行程,在分佈式儲存的環境下沒有鎖的情況下,如何保證正確性就成了功能開發的首要障礙。憑藉著這次研發經驗,接著又在半年多里,陸續開發完成了 Topic 無損擴縮容、Topic 無損集群遷移和 Chaos 正確性驗證等等功能。

繼去 IOE 之後,技術上對去中心化,輕量虛擬化,無服務器等技術需求愈發強烈,而 Serverless 必將借勢迅速發展,未來 Serverless 將在雲計算的舞臺上大放異彩。螞蟻正處於 Serverless 轉型的技術紅利時代,“既有挑戰,又充滿機遇”。期待著學弟學妹加入螞蟻中間件大家庭,一起共建螞蟻 Serverless 未來。

關於螞蟻“青年近衛軍”

 

“青年近衛軍”是螞蟻技術校招新人金牌培養專案,由螞蟻技術大學創建,該品牌誕生於 2008 年,總計精英化培養 1500+ 同學。

為了幫助新員工快速融入和掌握基礎的專業技術技能,螞蟻技術團隊為應屆畢業生制定了青年近衛軍入職培訓,包括通用內容和崗位內容,並匹配實戰專案。1 年全鏈路培養,融合了業務知識、上手技能、職業素養,並利用網絡精品課題、線下體驗式學習、活動場、戰略級專案養兵等多種方式讓技術新人更自主融入學習,融入螞蟻。

 

如今,“青年近衛軍”已不僅是新人培養專案的名稱,更成為了螞蟻校招技術新人的代名詞。

加入我們

    

崗位描述:

我們來自於螞蟻金服的中間件團隊,是螞蟻金服最為核心的基礎部門之一,包括研發框架,微服務中間件,訊息中間件,資料中間件等領域。

1.加入我們,你將參與 SOFAStack 開源軟體的研發,打造金融級分佈式架構體系。

2.加入我們,你將接受每年雙十一、雙十二帶來的高併發、高性能的極致挑戰。

3.加入我們,你將在實際工作中接觸到世界前沿技術的研發,引領未來。

崗位要求:

1.酷愛著計算機以及互聯網技術,熱衷於解決挑戰性的問題,追求極致的用戶體驗。

2.痴迷於資料結構和演算法,熱衷於 ACM,常常為看到“accept”而興奮的手足舞蹈。

3.至少熟悉一門計算機語言(C,C++,Java,Python,Golang,Rust),有良好和快速的學習能力。

4.有良好的進取心和責任感,有良好的團隊合作精神。

5.有大賽獲獎經驗,開源專案經驗者優先。

簡歷請投遞到: [email protected]

已同步到看一看
赞(0)

分享創造快樂