首頁/ 遊戲/ 正文

四年磨一劍,機械出身的我是如何拿到螞蟻金服 Offer的!

作者|張乘輝

四年磨一劍,機械出身的我是如何拿到螞蟻金服 Offer的!

萌芽

我大學學的並非計算機,學的是機械工程,課程僅接觸過組合語言以及一點 C 語言,當時也算有一點點計算機程式設計基礎吧,我一點都不喜歡這個專業,除了上微控制器彙編課程時比較感興趣。

機械這個專業我不但不喜歡,還完全看不到未來,像一灘死水,自己就像一個溫水裡的青蛙,逐漸地死去。還好在死去前的一刻我終於想清楚了,轉行!無論如何,我也要丟掉「專業」這個沉重的包袱,跟這個天坑的專業說再也不見。

我不去趨於平庸,並委屈求全地度過年輕的歲月,人生本就應該去追尋源於內心真實的自己。

記得剛轉行那會,由於自己的基礎還很薄弱,到處碰壁,畢業之後就遇到人生低谷,那時我找了一家願意收留我的小公司開始做起,那家小公司比較年輕,用的技術都算比較前沿,沒有歷史的包袱,我從職業生涯一開始就接觸到微服務架構的相關專案,以至於在以後的工作中對我產生啟蒙的思想,在此感恩。

深知自己的起點低,如何走出這個低谷?

在業餘期間,我一刻都沒有停止過學習,一直秉承著“今天最好的表現,是明天最低的要求”來嚴格要求自己,我一直都相信自己,相信只要努力,以前失去的一定會回來的。

在業餘學習期間,我也從 GitHub 上面瞭解過很多優秀的開源專案,其中阿里的開源專案居多,當時感覺阿里的技術真的很牛逼,因此我也開始慢慢地去了解這家公司,阿里夢從那時候開始萌芽,我當時給自己定下目標,將來一定要進阿里。

四年磨一劍,機械出身的我是如何拿到螞蟻金服 Offer的!

過程

有了目標之後,只剩下過程了,在實現目標的過程中,我一直堅持著做以下的事情。

1、學會總結

寫技術部落格對於一個程式設計師來說,在成長道路上面是非常有幫助的,特別是對於剛入行的程式設計師來說,因此,我在 17 年初的時候就透過 GitHub Pages 搭建了自己的部落格,把自己的學習和工作實踐用一篇篇文章記錄下來,事實證明,寫部落格的習慣讓我養成了總結的習慣,同時還加深了每個知識點的理解深度,強化了我對每個知識點的記憶,以至於到現在我每接觸一個新的知識點,都會用一篇完整的文章將其記錄下來,否則感覺自己沒學過一樣。

正所謂好記性不如爛筆頭,寫部落格也算是一種記筆記的方式,程式設計師每天都需要接觸很多新的知識,當你再回頭看時,基本不可能把所有知識點都很完整地回憶一遍,這時候你翻看一下自己的部落格,就能夠迅速幫助自己找回感覺。

2、窺探原始碼

在這個過程中,我保持著閱讀框架原始碼的習慣,很多時候我會帶著目的去一探究竟,有時候為了解決一個 Bug,有時候抱著學習目的嘗試去了解它們內部構造與設計原理,並借鑑到工作中,我在平時工作中用到的很多優秀設計,很多時候會借鑑相關優秀框架的設計。

閱讀原始碼也是能夠 “知其然知其所以然“的最好途徑,我這個人就是有個特點,只要我使用過的某些技術,一定會想盡辦法搞懂它的底層原理是怎麼實現的,透過帶著目的不斷尋根問底,我對一些底層技術有了更加深刻的理解。

3、迎接挑戰

“當你覺得難的時候,就是成長的時候。”

我在這個過程中,我不斷地接受過很多挑戰,在迎接這些挑戰的過程中,我得到了巨大的成長,記得第一次設計統一支付平臺,我運用所學的設計模式,成功對眾多第三方支付平臺介面進行統一,且具有優秀的擴充套件性,這對我的編碼水平有了一次巨大的提升;在推行自動化部署運維過程中,嘗試設計一套基於 Jenkins Pipeline 和 Docker 的自動化部署系統,讓我對容器編排與自動化運維有了一個系統性的認知;從 0 到 1 學會 Kafka 並且負責過千億級 Kafka 訊息叢集的維護與技術支援,在這個過程中提升了我解決問題的能力;基於 Netty 和 K8s Operator 定製化開發了一套快取服務平臺,當時接到需要使用 K8s Operator 作為快取平臺底層技術支援時,我是一臉懵逼的,我當時根本不知道這玩意是什麼,而且網上資料不多且魚龍混雜,只能憑藉著一腔熱血,在 GitHub 上面尋找一些相關的開源專案,瞭解它們的實現,透過不斷的實踐,終於實現了這個需求,在這個過程中提升了我對架構設計的能力,以及對專案整體把控的能力。因此,我們遇到困難千萬不要退縮,要學會如何解決它,當你解決它之後,你會得到巨大的成長。

四年磨一劍,機械出身的我是如何拿到螞蟻金服 Offer的!

面試

接下來我就憑藉記憶大概捋一下關於這次面試的過程,每個候選者的面試都有所不同,僅做參考,大家就當故事來看即可。

1、一面

在臨近春節放假前,我接到一位大佬的面試邀請,當時我的情況是不準備面試的,原因是之前經歷很曲折,我需要有一個沉澱階段。但是當時瞭解過這個團隊所做的事情之後,我還是決定要試一下,於是就約了面試。

自我介紹完後,面試官首先就跟我講述他們團隊做的事情,以及團隊負責的專案公司架構中所處的位置情況一一跟我介紹了一遍,我覺得阿里的面試官這點做得非常棒,點個贊。

接著面試官問了我所做的專案情況,我把在中通做過的專案詳細地跟面試官介紹了一遍,內容包括專案背景、專案架構設計、技術實現細節、遇到的挑戰如何解決的,接著面試官就專案的某一個技術點進行深挖,目的是為了從專案中尋找你的技術深度和廣度,如果你對技術的理解不夠深度,或者是提前背的,面試官會很容易發現。因此,在日常工作中,你需要對專案所用到的技術進行融會貫通。

在專案中穿插著問完問題之後,會給你出一些場景設計題,這些場景設計題一般是所在團隊所遇到的實際問題出發的,這一點非常考驗一個人在平時工作的累積,在這部分內容中,還會夾雜著一些通用的解決方案讓你去思考,比如分散式鎖、分散式事務、冪等處理、快取失效策略、流量削峰等等,從這部分內容面試官就可以看出你的技術壁壘有多深了,而且這部分對於一面的評價佔比非常高,因為阿里的面試是非常注重從實際場景中去解決問題的能力。

最後就會考察你的知識點,Java 的 JUC 併發包的知識點尤為重要,因此這部分內容需要重點去梳理,比如 CAS 和 AQS 原理、基於 AQS 實現的各種鎖機制(公平、非公平)、執行緒、執行緒池執行原理等等;JVM 方面會問比較實際的調優場景,以及會問常用的垃圾回收器的機制以及優缺點等等;還有一些資料庫、Spring 等等後端通用框架的原理需要熟悉。這部分內容主要考察你的基礎知識掌握得是否牢固。

從以上面試內容來看,阿里的面試官非常注重從實際出發考察一個人的能力,而且考察範圍非常廣,每個候選人的側重點或許都有所不同,從我的面試經歷給大家一個參考。

2、二面

面完一面後不久,就接到一面透過的訊息,流程非常快,然後和麵試官的二面約在了第二天。二面前一個晚上失眠了,因為太緊張了,夢想的征程中每走一步都會觸動我的神經。

中午早早準備好,在面試前深深吸了幾口氣,讓自己沉著冷靜不慌張,不久之後接到了面試官的影片面試,自我介紹完之後,面試官讓我從職業生涯開始介紹自己在每一家公司的學習和工作情況,因為我生涯前期的經歷非常坎坷與曲折,經歷過幾家小公司。我跟面試官詳細地描述了我當前整個職業生涯的歷程,其中我重點突出了我在每家公司得到的成長情況,其中包括工作內容,遇到過的挑戰並且是如何解決的,在技術上的沉澱如何,由於我的職業生涯都在不斷地學習,因此這部分內容很好回答,把自己的經歷說一遍即可。這部分內容面試官主要是考察經歷的每家公司有沒有得到成長,面試官雖然很在意頻繁跳槽,但他們更在意的是你在這個過程中有沒有得到技術上的累積。

接著面試官重點問了我一個比較拿手的專案,他會從整個專案的背景、專案架構設計方面進行深挖,這部分內容相比一面會更加廣,會抓住專案每個細節進行盤問,當時由於專案是由我從 0 到 1 進行設計的,因此這部分的內容我還是能夠給到面試官想要的答案。這部分內容需要對自己拿手的專案同時擁有宏觀架構與微觀技術細節方面足夠的熟悉。

接著面試官給我出了一些高併發的場景解決題,這部分跟一面稍微有些不同,這些場景一般來說會比較廣,通常業界已經有相關的解決方案了,這部分會重點考察你對技術方面的廣度、深度以及臨場解決問題的能力,同時也能看出你平時對技術的研究情況。

3、三面

二面完過了不久,就收到了二面過了的通知(我這個流程相對來說比較快)。

三面前即將面試時,我已經在家裡,我在房間裡面不斷進行深呼吸,我知道一旦這一面過了,我離阿里就非常非常近了,離夢想越近,就越緊張。

自我介紹完之後,面試官就簡單問了我個人的一些基本情況,包括學校、專業情況,因為我學校是一間民辦獨立學院,面試官可能沒聽過,而且我是非科班出身的,因此面試官需要對這方面稍作一番瞭解。

接著還是問了我在每家公司的經歷以及成長情況,這也就更加印證了一個觀點,阿里面試官非常在意你的過往經歷,但同樣很注重你在過往經歷中的成長情況。這方面我的回答大體和二面時差不多。由於我的過往經歷稍微多些,因此面試官還補充瞭如果我進入阿里,我想要得到的收穫,以及以後會遇到什麼原因離開阿里,這個每個人的情況不同都會有不同的答案。

接著問了我之前幾次面試阿里沒過的原因是什麼,以及後面你是如何克服這些問題的。在這個問題上,如果你之前有面試過阿里,過往的面試評價也體現在內部招聘系統中,由於我很早之前面試過了,因此面試官主要是想知道我沒過之後的這段日子裡,我做了哪些方面的提升。

接著還是會問到我的專案,大體上也會跟二面差不多,但會站在更高更廣的角度去考察你,比如你的專案型別,開源專案也有很多類似的解決方案,為什麼還要自己重新寫一個?又比如透過什麼指標去衡量你這個專案是否成功?專案在推廣過程中會遇到什麼問題,你是如何解決的?在跨部門合作過程中,你怎麼去協調溝通?在這方面內容上,面試官更多地想要看到你在專案推進過程中的軟實力。

最後面試官會問下自己的不足以及優缺點,從這問題出發點去了解你是一個怎樣的人。

三面時我已經在家裡了,當天晚上收到了三面過了的訊息,當時剛好要吃晚飯,得知三面通過後,我把自己關在房間裡,忍不住激動地哭了。

4、HR 面

HR 面是春節過後了,同樣地,HR 面之前我也不斷進行深呼吸,我知道只要透過這一面,我就幾乎雙腳踏進阿里了,我努力讓自己保持鎮定,但當時還是有些緊張。

在自我介紹完之後,HR 會同樣問了我過往經歷的一些情況,這方面的內容大體跟前幾面差不多。

由於我之前參與過 Seata 開源社群相關建設工作,HR 問了我參加開源專案的情況,具體是如何參與到開源專案中,以及在參與過程中得到了哪方面的成長等等。這方面內容 HR 主要是想要了解下你簡歷比較出彩的一些經歷情況。

接著 HR 還會跟你聊聊專案方面的問題,對,你沒看錯,HR 小姐姐會跟我聊專案,他主要問了我在這個專案中所處的位置,有沒有帶人,在過程中有沒有覺得非常難的地方,我就從專案立項開始講起,把自己一路上遇到的一些困難以及解決方案都詳細地說了一遍,同時還講到自己是如何跨部門協作讓專案更順利進行。雖然都是問專案詳情,但是和技術面問到的問題所站在的角度是不同的,HR 主要是透過你對專案的描述來考察你對問題的思考能力、溝通與協作能力,以及遇到問題的解決方式等等。

5、關於阿里筆試題

我的面試流程稍微有些特殊,通常來說筆試題會安排在一面或者二面,這次面試我沒有做筆試題,因此我在 HR 面完之後補了一輪筆試題,題目是從阿里內部題庫出的,大體上會出兩道題目,一道是實現一個功能,一道是演算法題,具體是什麼題目就不方便透露了,透過這次筆試的體驗,我覺得阿里的筆試會比較注重實際場景,而不是從 leetcode 原題搬一道給你做。

以上就是我本次面試的大體內容了,也許會有些遺忘的點,但大體上就是以上的內容了。

阿里的面試內容非常注重實際,因此想要在面試阿里過程中機會更大,就需要在平時的工作和學習中不斷地沉澱,靠臨時抱佛腳很容易被面試官看穿。

四年磨一劍,機械出身的我是如何拿到螞蟻金服 Offer的!

感想

關於這次面試的體驗,我得出了以下的一些個人感想。

1、注重基礎、深挖專案

阿里的面試非常注重實際以及基礎,從一面就能夠看出來,所以在平時中需要注意知識點的總結與沉澱,要學會記錄,同時在做專案的過程中,多一些思考,同時要站在宏觀架構與微觀技術實現去看待每一個功能背後的邏輯。

2、每天保持學習

昨天最好的表現是今天最低的要求,這也是我從職業生涯開始就對自己的要求,時刻提醒自己要每天都有所進步。

3、表達能力很重要

表達能力在面試過程中實在是太重要了,假如你的能力不錯,但你如何在短短的 1 個小時內,把自己最好的一面展示出來?我見過很多人能力很不錯,但是表達能力欠缺,這會在面試中很吃虧。

4、向優秀的人看齊

在我的職業生涯中,我遇到過很多優秀的人,他們都是我的學習榜樣,我會不斷學習他們的優點。

5、保持熱愛

從我大學開始到現在,你們是能夠看出來,我對程式設計是熱愛的,也是因為這份熱愛,我才能一直堅持到現在。

6、當你覺得難的時候,就是成長的時候

到目前為止,我在職業生涯過程中遇到過非常多的挑戰,不要退縮,要學會如何解決它,當你解決它之後,你會得到巨大的成長。

7、過程永遠是最美好的,特別是實現目標的那一瞬間彌足珍貴

奮鬥的過程往往是最美好的,其中最難忘的就是離夢想越來越近的過程,要珍惜實現目標那一瞬間的興奮,因為這一瞬間總是短暫的。人的一生有很多階段性的目標,比如中考、高考,每當實現一個目標的那一瞬間,相信大家都會很興奮,興奮之餘更多的是要思考下一個階段所面臨的挑戰,因為人生的道路總是充滿崎嶇與挑戰,當你實現了某個目標之後,你不能原地踏步自我滿足,你需要比以前付出更多的努力去迎接未來新的挑戰。

四年磨一劍,機械出身的我是如何拿到螞蟻金服 Offer的!

寫在最後

在中通我和一位前端同事,每天晚上跟他都肝到很晚,經常跟他一路聊著回宿舍,我們的宿舍都在 11 層,有時候聊得盡興,直接爬樓梯,我們聊得最多的就是關於將來要一起進大廠的目標以及人生規劃,我們經常相互鼓勵對方,後來他比我先去了某大廠,而我隨後進了螞蟻,也算是實現了當初我們在爬樓梯時吹過的牛逼。在我即將入職螞蟻之前,搬家的時候特意叫他回來幫我一起搬,順便一同再爬一次樓梯,如今我們都實現了各自的目標,不禁感慨萬千。

希望藉此文給一些正在努力中的小夥伴一些正能量與指導。

年終理財爆款福利!領取8%+理財券,每日限額2000份,先到先得!

相關文章

頂部