1. 程式人生 > >我一個二本大學是如何校招拿到阿里offer的

我一個二本大學是如何校招拿到阿里offer的

作者:薛勤,網際網路從業者,程式設計愛好者。

本文首發自公眾號:程式碼藝術(ID:onblog)未經許可,不可轉載

01:終於步入大學

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

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

02:孤獨的旅行者

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

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

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

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

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

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

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

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

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

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

03:在反思中進步

轉眼,大三到來。

我還是那個兩眼不聞窗外事、一心只想敲程式碼的我。年後,接了個學校的專案,這時候正好我的技能棧已經擴充到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併發程式設計的藝術》,我讀的如飢似渴,書上的示例我都照著敲一遍,可我擔心學得快忘得快,於是我開始記筆記,我把書上的內容都抄了下來,釋出在了我的部落格上。學完多執行緒相關的知識,我再回來過看葛一鳴的書,我懂了。

04:再戰軟體大賽

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

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

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

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

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

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

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

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

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

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

05:開源作品爆發

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

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

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

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

06:人生的轉折點

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

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

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

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

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

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

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

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

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

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

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

07:曲折的阿里路

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

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

正如網路上說的,面試內容基本涵蓋作業系統、計算機網路、資料庫原理、資料結構與演算法、程式語言以及框架原始碼,針對每個人的情況,還會詢問專案經歷這塊。

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

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

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

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

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

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

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

08:秋招重新衝刺

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

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

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

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

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

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

09:我終圓阿里夢

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

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

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

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

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

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

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

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

相關推薦

一個大學是如何到百度、網易大廠offer的!

爬蟲框架 配置 服務器 起跑 老師 copyright echarts targe splay 本文首發在我的微信公眾號“程序員柯南”,底部附有二維碼。原文閱讀 01終於步入大學 我既沒有跨過山和大海,也沒有穿過人山

一個大學是如何校阿里offer

作者:薛勤,網際網路從業者,程式設計愛好者。 本文首發自公眾號:程式碼藝術(ID:onblog)未經許可,不可轉載 01:終於步入大學 我既沒有跨過山和大海,也沒有穿過人山人海,我就是我,一個普通本科大學生。身為讀者的你,關注了我,自然是想獲取知識與經驗,我所能分享的,也只有我的一些知識與經歷。 那年

某外包程式設計師吐槽:一個外包公司員工,你阿里價值觀壓

對於很多大型公司而言,除了正式員工之外,還會有一些第三方員工,也被稱為外包員工。他們雖然在該公司工作,但並不是該公司的員工,而是和外包公司簽訂合同後派駐到該公司工作,不過考勤和工作任務同正式員工一樣,需要聽從安排。像華為阿里騰訊之類的公司,都有外包員工的存在。無獨有偶,一名阿里外包程式設計師在網路論

2018某的秋流水帳

本文地址:http://www.cnblogs.com/maplefighting/p/7906789.html  某二本財經類弱校,acm省賽拿了兩次銀,icpc,ccpc打了兩年鐵,無實習。目標:網際網路公司 大二三主要刷電影,看小說,玩acm以及搞績點     (至今

一個小前端,為什麼能進阿里!!!

當你面對眼前的壓力,如果你無法解決它,換了下一份,你依然會選擇逃避。但是如果你選擇迎難而上,你解決它了,你就成長了,換了下一份工作,你會更加從容應對。 所以,原來很多人的跳槽,根本就不是為了更好的發展,而是在拒絕成長,拒絕成長的背後,就是永遠與好工作無緣。 做過招聘的人都知道,一

返回一個維整數數組中最聯通子數組的和

一個 算法 ring 圖片 std void 數組 set 輸入 要求: 輸入一個二維整形數組,數組裏有正數也有負數。 求所有子數組的和的最大值。 吐槽: 這個算法不是特別好寫,看了很多學長學姐的寫法發現他們絕大多數的邏輯上都有硬傷,方法也很土(。。。),這個題我認為

2017年秋美團Java程序員開發,看如何offer

Java 編程語言 面試 程序員 後端 熱乎的面經,昨天面的美團,雖然面完了HR面,但是感覺希望不大,希望能走運拿到offer吧。三面技術面面經如下: 一面: 中間省略掉大概幾個問題,因為我不記得了,下面記得的基本都是我沒怎麽答好的。。。 1.了解SOA,微服務嗎? 2.分布式系統如何負

C++找出一個維陣列中的鞍點,即該位置上的元素在該行上最,在該列上最小(也可能沒有鞍點)

今日正式用csdn部落格記錄,回顧我所學到的知識,分享一些我的人生感悟和自身經歷。也希望未來通夠過此平臺和更多喜愛程式設計的人交流學習。 道聽途說再加上自己的感悟,認為程式設計最重要的是思想,而不是語言本身,語言只是個工具。所以我們得先學思想。遇到問題,應該先想如果是自己去做會怎麼處理,但我們不

一個維陣列所有子陣列和的最值(郭少周,陳澤)

小組成員:陳澤 郭少周 設計流程:     設計要求.:1. 輸入一個二維整形陣列,數組裡有正數也有負數。                     2.二維陣列中連續的

返回一個維整數陣列中的最的子陣列和

一。題目:                   1、輸入一個二維整形陣列,數組裡有正數有負數。                 &nbs

返回一個維整形陣列的子陣列的最

實驗要求:1輸入一個二維整形陣列,陣列中有正數也有負數。2二維陣列中連續的一個子矩陣組成一個子陣列,每個 子陣列都有一個和。求所有子陣列的和的最大值。實驗思路:          1.首先確

明年畢業的資料30萬的offer

這是我個人的心得總結, 文章有點長,希望能夠看完, 畢竟會收貨很多,感觸很多   剛開始的我: 首先介紹一下本人的基本情況,末流二本的大學,當時整天玩遊戲,一週至少三次包夜,在大三的時候忽然悔悟,考上了211院校的研究生,通訊專業。研一一年全靠自己學習java,但是自學

《Java推薦書籍吐血整理推薦技術書50pdf》已BAT,網易,頭條Offer佬力薦

       前言:Java開發工程師一般負責後端開發,當然也有專門做Java Web的工程師,但是隨著前後端的分離,越來越多的Java工程師需要往大後端方向發展。今天我們就來介紹一下Java後端開發者的書單。首先要感謝一下某大佬力推的後端書架,初學階段讀到了很多好書直到現

python+numpy按行求一個維陣列的最

問題描述: 給定一個二維陣列,求每一行的最大值 返回一個列向量 如: 給定陣列【1,2,3;4,5,3】 返回[3;5] import numpy as np x = np.array([[1,2,3],[4,5,3]]) # 先求每行最大值得下標 index

leetcode104 給定一個叉樹,找出其最深度。

給定一個二叉樹,找出其最大深度。 二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \

給定一個叉樹,找到最路徑和。該路徑可以在樹中的任何節點處開始和結束。

類是在一維陣列中找到最大的子序列和。這裡是根據左右子樹 int maxPath; int maxPathSum(TreeNode *root) { maxPath=INT_MIN; if(root==NULL)

2017年秋美團Java程式設計師開發,看如何offer

本人是一名本科畢業非計算機專業的程式設計師,面了阿里,結果沒過,最後面上了美團,熱乎乎的面經,昨天面的美團,雖然面完了HR面,但是感覺希望不大,希望能走運拿到offer吧。記性不是太好,有一些問題沒能記住,三面技術面面經如下: 美團一面: 中間省略掉

阿里14筆試題-求一個叉樹最值和最小值的差值絕對值

阿里巴巴面試題: 輸入:一個二叉樹 輸出:二叉樹的最大值和最小值的差值絕對值 單純從演算法功能上來看 1-可以先建立一個大根堆,把最大的元素挑出來; 2-然後在建立小根堆,把最小的元素挑出來; 3-在求最大和最小差值的絕對值; 程式碼: #if 0 /* 最大堆排序 */