厲害了,二本大學生這樣拿下阿里 Offer!

厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

作者 | 薛勤

來源 | 代碼藝術(ID:onblog)


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

終於步入大學


我既沒有跨過山和大海,也沒有穿過人山人海,我就是我,一個普通本科大學生。身為讀者的你,關注了我,自然是想獲取知識與經驗,我所能分享的,也只有我的一些知識與經歷。

那年,我大一剛入學,邊學著入門級的C語言,邊對未來迷茫著。面試學生會,失敗。面試新媒體部,失敗。本以為連連失敗的我已經輸在了大學的起跑線上,意外讓我面試了一個IT編程工作室,成功。我感謝工作室裡帶我入門的學長們,讓我知道了C語言以後可以幹什麼,Java可以幹什麼,促使我邁入Java世界的大門。寒假兩月,自學完Java基礎語法。


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

孤獨的旅行者


第二年,我放棄了喜愛的籃球,放棄了遊戲,從JSP、Servlet、HTML開始學習,搭建了一個自習室查詢網頁,並出售給了一個校公眾號團隊。

我在大一下學期報了校軟件設計大賽,並設計開發了一個微教務系統,原理是模擬登陸校教務系統,爬取成績課表等信息,然後進行網頁展示。獲得了推薦獎,也就是沒進前十名。校軟件大賽舉辦的作用是選拔團隊去參加省大學生軟件設計大賽,雖然是推薦獎,但只要完成了作品,還是可以報銷三百報名費的。就這樣,我撥通了我媽的手機號,給我媽要了三百塊錢。

在官網報名時才發現一個問題,每個團隊最低三個人。

可我的團隊,只有我一個人。

是的,校賽現場答辯時,也只有我。

我最終還是參加了這個比賽,我慶幸我有兩個月的暑假可以去準備。在這兩個月裡,我抱著一本 Android 入門到精通的書籍,開始一章一章的做Demo。最後,我做了一個校園App,主要包括論壇發帖、點贊、評論功能,以及查成績、查課表、看校園新聞等功能。

我獲得了省軟件大賽作品完成獎,不是一、二、三等獎。所以,我的第一次軟件大賽結果,失敗。

大二上學期,我把我的這款校園App發給了校猿碼工作室,成為工作室的一員。期間工作室計劃了兩個超級大項目,可惜最終都不了了之。

國慶假期期間,特別想換掉我那臺1500塊買的筆記本電腦,於是我去了遊樂場兼職,每天早7晚10的的日子,賺了一千多塊錢,加上花唄分期,買了我現在的這款電腦華碩K55VD,原款配置略低,我又加了內存條、固態硬盤。一共兩千多吧。為啥這麼便宜,因為是櫃檯展示機,其實和新電腦沒啥區別。

在年底,我利用我學會的安卓開發技能開發了一款Vip視頻破解App。這款軟件已經不再維護,它是一款收費軟件,軟件可以免費觀看愛奇藝、優酷、騰訊、樂視、PPTV、芒果的VIP視頻。原理很簡單,調用網上已有的破解接口,並嵌入騰訊X5瀏覽器內核。關於收費模塊,貌似我那時候支付寶還不支持個人開發者,於是想到了賣卡平臺。用戶去第三方買卡,到我的軟件輸入卡密即可使用。不過推廣不利,並沒有賺多少錢。


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

在反思中進步


轉眼,大三到來。

我還是那個兩眼不聞窗外事、一心只想敲代碼的我。年後,接了個學校的項目,這時候正好我的技能棧已經擴充到Spring生態圈了,Spring Boot、Spring MVC用的賊溜。正好,基於Spring Boot仿實習僧做了個招聘系統,酬金稅後2000。

技能棧越來越多,我開始思考更深層次的意義。

我的基礎到底紮實不紮實,每次想到這,我好慌。

我的基礎彷彿沒有,我既沒有研究過jdk源碼,又沒有搞過算法競賽。我開始主動尋求Java中的基礎,去尋找我經常聽到卻不會的。我問我的學長們,聽學長們講述面經。這時候,一系列我不知曉的名詞湧來,讓我彷彿覺得自己是個搖搖欲墜的大廈。

多線程,什麼是多線程?什麼是線程安全?我一點不懂。JVM?這是啥,GC又是是什麼?BIO、NIO、AIO,抱歉,我不會。

我覺得我要開始改變了。內心彷彿總是有一股力量在揪著我,催著我,讓我去做,去行動。我覺得,我不能再看視頻學習了,慕課網已經不適合我了。我要去看書。

在我的印象中,我主動看的第一本書,是葛一鳴的《Java程序性能優化》。我非常感謝這本書,感動到想給作者打賞。這本書完全打開了我對Java未知領域的大門,是它,讓我知道Java基礎中String的底層原理、List、Map的底層原理與優化,是它,讓我知道了設計模式這種東西,是它,讓我知道了GC、JVM,讓我知道了Java世界中最重要的多線程相關知識,讓我體驗了Java性能調優。這本書中的內容,基礎知識我看的懂,JVM、多線程等看不懂,但為我指引了方向。按著這個方向,我買了《深入理解Java虛擬機》《Java多線程編程核心技術》《Java併發編程的藝術》,我讀的如飢似渴,書上的示例我都照著敲一遍,可我擔心學得快忘得快,於是我開始記筆記,我把書上的內容都抄了下來,發佈在了我的博客上。學完多線程相關的知識,我再回來過看葛一鳴的書,我懂了。


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

再戰軟件大賽


大二暑假臨近,非常熱鬧。

這次我的團隊很給力,指導老師也很給力。我們一起開會討論做比賽!沒錯,還是省大學生軟件設計大賽。這次,我想全力以赴。

我們用了一個多月去尋找我們究竟要做什麼?我的導師特別想做一個醫生機器人,還給我們看了相關的圖片。我們的課題是大數據分析與挖掘。起初,我們壓根沒有頭緒,走了非常非常多的彎路,怎麼說呢。我去學了Hadoop,學完後發現項目規模太小,用不上。然後去學了Elasticsearch。最初的作品是一個網頁對話窗口,集成思必馳語音合成接口,後端是Elasticsearch做的查詢接口。非常簡單(low)。

瞭解到其它隊伍大都是做了做數據爬取、分析,然後用ECharts做可視化展示,我的導師建議我做知識圖譜,並提供了示例。於是,我去百度調研,用了一週的時間學習了Neo4j,並結合Spring Boot做了個Demo。只有圖數據庫的支持是不夠的,還需要前端展示,於是學了d3.js。但我的前端技能並不是特別好,數據量太大,做出的知識圖譜節點都擠在了一起,作品效果非常不好看。

那段時期,我又陷入了迷茫。我究竟要做什麼?第一次參賽一敗塗地,這一次,我還要繼續失敗嗎?

導師告訴我,讓我多試幾個網站爬取數據源。無意中,我看到了某醫療網站的自助診斷系統,瞬間驚呆了,這就是我要做的東西!

導師要做知識圖譜,可我要堅持做醫療診斷系統。在思考系統的算法邏輯時,我驚奇的發現,支撐診斷算法的正是知識圖譜。當我在辦公室裡的小黑板手寫算法思路,向隊友、導師展示的時候,我那時非常開心,因為我終於知道了我要做什麼。

大三下學期開學後,我被通知作品進了二等獎,一等獎決賽即將舉辦,讓我務必準時參加決賽答辯。

答辯我準備的非常充分,而且,在決賽答辯之前,我就在另一個省級比賽中答辯過一次了,算是漲了一波經驗。

不負所望,我的作品獲得省大學生軟件大賽一等獎。


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

開源作品爆發


在做"醫療診斷系統"參加省軟件大賽的同時,我深深感受到在爬取大量數據時的時間消耗是多麼巨大。最長的時候,我的電腦兩天沒關機,一直在後臺爬。最後,受不了的我,用Java寫了一個多線程爬蟲框架,併發布到了我的Github。

我以前都是一個人做項目,而且,越來越發現自己對頁面相關的設計開發效率低下。現在有了團隊,非常渴望前後端分離。當時,我一直在用模板引擎,基於服務拆分的思想,我做了一個類似Tomcat的靜態web服務器發佈到了我的Github。

在學完《深入理解Java虛擬機》後,我覺得我不應該學完就完了,我要把學的知識做成一個作品出來。當時學完了java性能監控的工具後,覺得軟件形式的監控也比較麻煩,如果能有一個可視化的web版再結合ECharts圖表展示就太方便了。我用了幾天的時間做完了JavaMonitor項目的單機版,沒想到後來star越來越多,吸取了一些建議,做了支持分佈式監控的javaMonitorPlus。

也是在暑假這段時期,我收到了來自一位阿里技術專家的郵件。內容簡單概括就是想不想來阿里,可以幫著內推。當時收到郵件的意義,對我來說非常巨大,他讓我第一次感受到BAT與自己的距離似乎不是那麼遙遠,我一個普通本科彷彿也可以實現去BAT工作的夢想。


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

人生的轉折點


大三結尾,我迎來了我人生的第一個轉折點。

當時,我已經感受到了技術彷彿到了一個瓶頸,單機架構我做的很溜,但涉及企業的分佈式架構,我還是不太瞭解。當時恰好得知省賽頒獎典禮有現場招聘會時,我便精心準備了一份簡歷,並彩印了5份,打算投遞。可到了現場,看到的都是小公司在招軟件銷售人員,我就瞬間奔潰了,我心底一直有一種驕傲,我可以去大公司的,我有這能力。最終,我一份簡歷沒投。

看著寫了好幾頁的簡歷,我是真的不想就這麼白白浪費。

想起來我大一曾註冊過的幾家招聘網站,我就把我的簡歷發在了上面。其中一家網站是實習僧。

我以為壓根沒有我的崗位,因為我還沒有到大四,我才大三。可我打開實習僧,卻發現竟然有大三的實習生招聘,我有點驚訝。不過,也僅此而已,我不認為我有能力可以進新浪、百度、京東這些大公司。我記得我當時抱著不浪費我寫的這麼多頁的簡歷的心態,只投大公司,小公司不投。然後,洗洗睡了,壓根沒怎麼放心上。

不久的一天早上,我還在睡覺,接聽到了第一個電話,來自中國電信北研院,問我在京嗎?什麼時候有時間,約一下電話面試。然後,自己開心的不得了。又不久,京東打來了電話,讓我去北京參加現場面試。我推到了我的期末考試結束後。又不久,新浪也發了現場面試的郵件。

一天晚上,我收到了百度打來的面試邀請電話,當時我在商業街買吃的。聽到了開心的不得了,約定了一小時後電話面試。東西也不買了,直接回學校,看了一會書,複習複習,因為那時候我已經半個月沒碰過代碼了,《劍指Offer》才刷了幾章就停下來一直在複習期末考試。慶幸自己買了本《Java程序員面試筆試寶典》。百度一面,如約而至。我記得我當時說的最多的就兩句話:忘了,不瞭解。面完後,我覺得我掛了。但我的習慣還是讓我把面試官問到的所有基礎知識都看了一遍。就這樣,我第二天接到了網易一面的電話,回答的算是very good,就一個SQL左連接查詢我忘了,因為我忘了複習SQL了。

意外驚喜,接到了百度二面的面試邀約,我這次提前看了很多知識,複寫了Java虛擬機,多線程相關的知識,二面這塊的基礎知識娓娓道來,但誰知,面試官問我Redis底層原理,如何設置過期時間,我說不會,面試官便引導我說:"不會沒事,我提醒下你"。就這樣,我斷斷續續回答出了這塊的內容。又問我消息隊列,我又懵逼了,問我,如何設計秒殺系統,我說可以用隊列,隊列滿了就直接false。面試官又問,分佈式系統呢?那當然用MQ中間件。說實話,面試後,我對百度拜服。不久,網易二面來了,回答也算是very good!

網易三面來的非常快,我覺得網易面試很舒服。不久,網易HR通過我的聯繫方式告知了我結果,人生第一個offer正式到手!

百度三面遲遲不來,我以為我掛了,心想好吧,去網易也不錯!杭州,舒服。可我覺得還有希望,便給百度打了電話,百度說,等段時間。不久,百度三面到來,三面主要是聊項目,聊的還不錯,畢竟自己做的東西被人欣賞自己也很開心。沒多久,百度HR直接給我打電話,說offer已發,讓我當天就要確認。

晚上,問了很多老師學長,包括我的家人,都希望我去百度,最後,我去了杭州、網易。因為,那裡有阿里。


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

曲折的阿里路


準備阿里春招實習,我從過年後就開始了。

那個時候,我還在網易實習,白天工作,晚上覆習面試內容。

正如網絡上說的,面試內容基本涵蓋操作系統、計算機網絡、數據庫原理、數據結構與算法、編程語言以及框架源碼,針對每個人的情況,還會詢問項目經歷這塊。

我自認為自己編程語言這塊已經沒有問題,於是投入所有的精力去刷《劍指offer》上面的題,不過還是非常擔心自己過後就忘,於是反覆看,反覆敲,慢慢地,總結出了一些數據結構常用的解法心得。比如鏈表題,一個指針解決不了的,往往兩個指針就可以解決。

3月中旬,阿里春招開始,我信心滿滿的面過了阿里一面和二面。

在三面,我遭遇了滑鐵盧,並且面評非常不好,這直接導致我後續的幾次其它部門的面試一一失敗。

失敗了多少次呢?7個部門吧。

而且你每次失敗的原因,後續的面試官都可以看得到。面到最後,我已經失去了渾身力氣。

最煎熬莫過於面完終面後的等待,焦慮、忐忑,甚至好幾次,我徹夜未眠。

本以為自己已經掉隊,本以為這個夢我馬上就要清醒,但老天還是垂憐有夢想的人,我春招還是收穫了騰訊的實習Offer。


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

秋招重裝上陣


騰訊暑期實習後,我立馬投入到秋招的備戰狀態,可這個時候,已經有很多朋友在提前批斬獲Offer。

那時的我,比較心急,沒有準備就加入戰場,最終,全部折戟沉沙。也是在失敗過後,才意識到,自身的短處。

從那開始,我一方面系統複習面試內容,另一方面開始準備一些有含金量的項目去做。

我擴充自己的複習範圍,包括計算機組成原理等內容,並使用思維導圖軟件進行整理。

我對分佈式限流比較感興趣,於是模仿阿里的分佈式限流產品 Sentinel 的功能自己造了個輪子。

至於為什麼選擇阿里的產品去模仿,也是因為自己始終有一種不服輸的精神,外界的否定我又何必在意,只要我相信我,相信真正的牛人根本不需要平臺的襯托!


厲害了,二本大學生這樣拿下阿里 Offer!| 程序員有話說

我終圓阿里夢


很快,一個月的複習時間過去,期間也參加了十幾個公司的網上筆試,我終於有了新的面試機會,其中包括阿里巴巴。

不過此時的我,已經對之古井無波。

經過陸陸續續的遠程面試,我收穫了一個又一個公司的offer,包括 Special Offer、Super Special Offer。

到了秋招末尾,我以為我的秋招已經結束,並且也已經決定和一家心儀的公司簽下三方協議。

就在這個時候,我接到了阿里巴巴的通知,告訴我已經通過了5輪面試,評級是SP。

看來,古井無波註定與我無緣,我還是不免非常激動。

到此,我終於圓滿結束了我的大學生涯,實現了自己曾經暗暗許下的夢想!

最後,希望我的這篇文章可以鼓勵到每一個有夢想的人,出身不會決定你的出路,思路才是。


分享到:


相關文章: