↑↑↑關注後"星標"Datawhale
每日干貨 & 每月組隊學習,不錯過
Datawhale乾貨
來源:崔倍寧 杭州電子科技大學報道
“
18歲拿到ACM亞洲區域賽金牌
大一應國內自動駕駛明星企業Momenta之邀,與一羣來自清華、北大、浙大的精英學生,一起被挑中成爲這家估值上百億的獨角獸公司的“火箭計劃20人小組”。
大二斬獲騰訊、螞蟻金服、字節跳動、圖森未來4個實習offer,實習月薪近萬。
談及實習體驗,他形容,“大海中的潛艇,別看它在深水中,實際上,它對整個海域,乃至天上的風和雲都有關注。工作後的試錯成本太高,大學期間的實習是最好的機會。開闊的視野和足夠的信息透明有助於做出更準確的判斷、獲得更快速的成長。”
”
崔倍寧:杭州電子科技大學自動化學院智能科學與技術專業學生,ACM亞洲區域賽金牌獲得者
來自黑龍江佳木斯的崔倍寧是一個00後大男孩,平時喜歡網絡遊戲和打羽毛球。
問到擅長的遊戲,他會笑着謙虛:“我玩遊戲不太厲害。”轉頭又忍不住說:“我在ff14有三個滿級紅色職業和一個滿級綠色職業。同時也崇拜他的作者吉田直樹,崇拜他化腐朽爲神奇的魔力。”
這時候的崔倍寧,更像一個剛成年的孩子,喜歡一些看似“不務正業”的事情,但說起來眼睛裏卻閃着光。這令人很難想到,在他更熱愛的領域裏,他其實理性、成熟、執着,兩種截然不同的個性在一個人身上實現了共融。
棄211高校選雙非杭電
就是衝着ACM來的
中小學時期的崔倍寧,即是“別人家的孩子”。小學主動要求報3個奧數班,初中在數學成績上一馬當先,高中零基礎接觸信息學,在全國信息學奧林匹克競賽中斬獲銅獎。
準備競賽需要2年時間,高中課程實際只上了1年,獎項帶給崔倍寧的是1所985高校降60分錄取和1所211高校上一本線即錄取的政策待遇。最終,崔倍寧放棄“優惠”,裸分考進了杭電:“我的理想一直是交大,交大曾代表中國拿過3次ACM全球冠軍,每次都讓熱愛編程的中國人熱血沸騰。因爲文化課成績不夠,上不了交大,想繼續編程夢幻之旅,那就首選杭電。因爲杭電是國內公認的搞ACM氛圍最好的大學之一,杭電有ACM金牌教父劉春英。”
衆所周知,信奧(OI)是中國計算機協會主辦的,主要考的是編程、算法。到了大學階段則叫ACM—ICPC,是由美國計算機協會主辦的全球性程序設計競賽。高中學信奧的人,都經常用一個叫做“HDU”的在線評測網站。這個全國使用量最多、年提交量第一的平臺,是“OI和ACM交匯的完美詮釋”,因爲它的使用者不是OI大神就是ACM精英。而這個在線評測網站就是杭電自主開發的,有着海量實時更新的高質題目、賽事,且免費對外開放。但凡高中玩過OI的同學,都會對ACM感興趣,也都會知道,杭電ACM隊的實力和氛圍是業界公認的優秀。這些年每次亞洲區域賽賽季結束,杭電都會獲得至少一塊金牌。崔倍寧說:“高中時信奧拿的是國決銅牌,其實有點不甘心,暗暗下了決心,上大學一定要至少拿個ACM亞洲區域賽金牌,報杭電,就是衝着ACM來的。”
填好志願後,崔倍寧第一時間通過貼吧搜索到杭電“金牌教頭”劉春英的QQ號,並加了好友。就這樣,剛查詢到錄取信息的崔倍寧便被編入了杭電ACM隊伍,與一羣老隊員一起參加訓練。他在算法和思維邏輯上體現出的高靈活性,引起了在ACM隊排名前列的大三學長鄧欣豪的注意,作爲隊長的鄧欣豪與沈弈璘商量後,主動邀請崔倍寧組隊。三人一起訓練四個月後,捧回了ACM亞洲區域賽金牌。“大學期間最想完成的心願“,崔倍寧大一就實現了。
一年的時間裏,崔倍寧在程序設計競賽中獲得了2金5銀共7個國際級和國家級獎項
如今,與崔倍寧搭檔的鄧欣豪已經保研到清華大學,而沈弈璘則選擇到拼多多就業。落單的崔倍寧,在帶出2個新隊員後,退役並加入由歷屆ACM優秀隊員組成的“元老羣“,成了羣裏爲數不多的大二“元老”之一。
最遠的一份實習offer
入職時間定在一年以後
退役後的崔倍寧計劃用豐富的實習經歷來完善自己的職業規劃。
在此次春招中,崔倍寧一共面了四個崗位,按照面試時間的順序分別是:騰訊-IEG-光子技術中心-應用研究(算法)崗、字節跳動-Ai Lab-算法崗、圖森未來-Planning組-規劃算法崗、阿里巴巴-螞蟻金服-Oceanbase-內核開發崗。在順利通過面試後,崔倍寧與4家企業分別談好入職時間和工作期限,最遠的一份offer入職時間定在一年以後。
衆所周知,多數頭部企業的實習offer比正式offer更難拿到。春招提前批通過暑期實習offer鎖定相中的人才,秋招時直接簽署三方協議,是很多“大廠”的招聘模式。實習offer,很像是高考志願填報中的提前批預錄取。
對於實習,崔倍寧有自己的期許:“首先是希望能夠儘可能多地從實習中學到深度學習和強化學習的相關知識,這個行業無論何時,學習都是最重要的。其次是想了解到體系完善的大廠是如何做到高可靠性與高效率的結合的。第三也是想去切身體驗體量巨大的大廠的算法崗位的技術棧,用崗位的需求來規劃自己的學習。”
“沒有考研打算,因爲相對於研究,在工業界的技術領域探索更適合我。本科畢業之後,期望在騰訊、阿里的Oceanbase、微軟亞研和字節跳動等公司中選擇一個適合自己的平臺。畢業正式入職,選擇的機會往往只有一次。而實習的靈活度會更高些,可以近距離地親身感受企業文化,驗證自己的想法。如果驗證後,發現不適合自己,還可以更正。相信多個大廠的實驗經歷,能讓自己學到更多。”崔倍寧對自己的人生規劃,向來就有明確的主導意識。從學習奧數、信奧,選擇杭電,到放棄考研選擇實習,崔倍寧都是跟從內心的選擇,外行的父母基本不插手。
崔倍寧螞蟻金服面試經歷分享
崔倍寧在個人公衆號“鴨神的魔幻日常”中分享了自己在螞蟻金服的面試經歷和體會。
乾貨環節——面試篇
崗位
螞蟻金服-Oceanbase-內核開發崗。關於Oceanbase,可以爲同學們做一個簡要的介紹:一款用於支付寶、淘寶網、南京銀行等的金融級分佈式關係數據庫。
消息渠道
我大部分的優質崗位信息都來源於杭電ACM隊的學長們。作爲向同一個高地共同發起過沖擊的“戰友”,他們絕對是我能接觸到的人當中,最真心去幫助我的人。所以這個崗位也不例外,是來自一個曾任職於PingCAP的ACM隊學長的熱心分享。
前期準備
阿里的春招在4月30日截止,而我注意到這個崗位時已經是4月15日,所以我認爲:一旦我投好簡歷做完筆試和綜測,面試將會以相當緊湊的節奏迅速進行,所以我緩了兩天才投遞了簡歷。在我留出的這兩天緩衝期裏,我所做的功課主要有三點:
1. 瞭解Oceanbase,包括但不限於閱讀關於Oceanbase的技術新聞、通稿、業內的不同評價、員工評價、實習生評價,這既有利於後續的面試,也有利於對崗位的認知。
2. 瞭解數據庫內核,兩天時間的學習遠不能讓我達到精通,但卻足以讓我對這個方向和這個方向的技術難度有一個初步的整體認知。
3. 集中一點,在數據庫內核這一龐大的領域中,我選擇了索引背後的數據結構與算法原理這一方向做較爲深入的理解和研究,主要是因爲我作爲ACM選手,理解數據結構比較方便,而且我對這方面的知識有很大的興趣。
筆試&綜測
筆試(4.17場)滿分,綜測硬着頭皮做。
一面(P8技術面)
因爲我是非計算機專業的學生,面試官在知情的情況下沒有過於爲難我,關於計算機專業課的問題都問得非常基礎:比如線程與進程的區別,TCP和UDP連接的特點。
之後考察了一道系統設計題,說實話當時有些出乎意料,感覺被打了個措手不及,不過按照自己對計算機的理解,在面試官的提醒下,還是設計出了一個較爲經典的模型,這讓我意識到,這方面絕對是我日後要着重改善的弱點之一。
接下來是兩道非常簡單的代碼題,但是需要十足的仔細。
最後是在有限的時間內讀懂一個工程中的代碼文件。代碼中細節的處理較爲繁瑣,不過憑藉在ACM經歷中每天看標程的技能積累,還算完美地完成了任務。
二面(P9技術面)
面試的最開始,我就直接坦白了自己計算機系統知識薄弱的弱點,並表明了自己正在努力着手改善的狀態(有在學了,有在學了)。面試忌諱之一就是不懂裝懂,如果來不及改善,那就積極承認問題並展示“孺子可教”的態度。
接下來,面試官詢問我是否對數據庫有所瞭解,我表示這學期剛剛開數據庫這門課,但是課程的內容明顯更偏向數據庫運維。不過我對課堂中老師未詳細講解的關於“索引背後的數據結構與算法原理”的內容的好奇心驅使我去額外學了一波。關於國內數據庫課程內容設置的看法,引起了面試官的共鳴;並對我好奇心驅使的自我學習表示贊同和欣賞。
接下來的問題比較老生常談:讀研/就業的選擇,未來就業方向的選擇(AI/數據庫),爲什麼對數據庫感興趣。我的回答也全都是自己的真實想法,自認爲表達得還算流暢自信。
然後就到了我最喜歡的coding環節,是一道Leetcode的Mid難度的題目。在向面試官提了幾個問題確認了題意後,在coding的過程中始終保持向面試官的同步講解,在需要考慮特殊邊界情況的地方也寫了一點簡單的註釋,意識到可能有問題就陷入思考,寫寫畫畫之後迅速改正。最後敲好之後自己出了一組比較強的數據,通過人肉gdb的方式向面試官講解代碼。
此次的反問環節可能給面試官留下了比較深刻的印象,展開寫一寫:
Q1:ob在TPC-C測試中取得了第一名的成績,首次擊敗了文鼎10年的oracle,看過pr的通稿和一些科技媒體所謂大V關於摩爾定律對數據庫性能的影響的文章之後,我覺得雖然是很大的成功,但是趕超oracle的路依然很長,請問您是如何看待這次成績的?(此爲精簡版,面試的時候我問得比較詳細)
A1:面試官很喜歡這個問題,而且解釋地非常耐心,並在面試後發給我一篇關於論證我問題中的一部分的pdf,面試官也太有心了!
Q2:分佈式數據庫ob可擴展性相對更強的特點比起其他競品,是否是更適合阿里的產品生態?
A2:回答地非常詳細,表示頂層優化也很重要。
Q3:關於執行引擎和優化引擎的職業前景。
A3:這兩部分只要是數據庫就會涉及,且視野所及的範圍內,數據庫長期以來都是不可取代的(數據庫常青樹)。
Q4:我在脈脈上了解到ob這邊實習生沒有代碼權限,預研性的工作會貫穿始終。是出於哪些考慮?
A4:(一個令我非常滿意的詳細解釋,而且不是大餅,非常實際)
三面(交叉面)
前兩面的面試官給的評級較高,所以按照流程進入交叉面argue一下高評級,面試流程與上兩輪大同小異,只是沒有了coding環節。面試官的態度不是非常明顯的好與壞,對結果有點小慌。
四面(HR面)
這次面試可以說是非常得措手不及,在上網課的時候接到hr的電話,然後當場就開始了約30min的hr面試。很多同學對阿里hr的權利大、面試嚴的印象已經深入人心,甚至阿里的hr面試官被業內很多人稱爲“聞味兒官”。所以這裏也簡單地說一下。
簡而言之,記住兩個詞:“熱愛”、“自信”,只要性格沒有硬傷,且有一個尊重offer尊重契約的態度,hr面不會太難。
乾貨環節——儘早準備篇
幾塊敲門磚
在篩選簡歷時,簡歷上的一些硬通貨會是你的簡歷在衆多簡歷中脫穎而出的絕對重要因素,這些硬通貨包括但不限於:
1. 競賽獎項:可以是ACM-ICPC等程序設計競賽獎項(代碼能力、算法能力和協作能力),也可以是大數據、機器視覺、NLP等AI相關競賽獎項(工程能力、算法能力和學習能力)。不過電子設計競賽、創業競賽等與專業相關度不算太高的競賽可能優勢較小。判斷一個獎項對就業的幫助作用大小時,可以將獎項映射到獎項所證明的能力上,再思考你感興趣的崗位與這些能力有多強的相關性。
2. 實習經歷:一段靠譜的實習經歷,不僅可以提升自己的工程素養、掌握工作中的基本技能、拓展自己的知識面,也可以作爲前任實習公司對你的認可與信任用於豐富你的簡歷。不過不得不強調的是,實習的內容一定要做與專業強相關的事,不要浪費時間在以賺外快爲目的的實習上。
3. 項目經歷:如果你的年級較低,沒有完整的實習時間;或是簡歷還不足以豐富到進入一個技術氛圍良好的企業。那麼跟着你的導師做出一個不錯的項目或許是一個相當不錯的選擇。前幾日很火的T大自動化大一新生C++大作業:自行用C++實現一個類似雨課堂的自用直播平臺,私認爲這種難度的項目非常值得一做。在導師的督促和指導下獨立完成一個這樣的項目,對於大多數同學來說,很有機會達到工程能力從0到10的提高。
4. GPA排名:學習能力的重要體現之一,由於我的GPA太渣,這部分就不展開了。
對行業與自己的瞭解
加深瞭解是一個慢工出細活兒的過程。對於行業的瞭解,可以從牛客、脈脈等職場交流社區、知乎等問答社區以及求職交流羣等平臺開始。但對於來自公共社區、匿名社區的信息,一定要加強甄別、辯證思考,謹防PR通稿、非理性討論、意識流腦補流討論等真實性存疑的信息對認知造成的誤差。
乾貨環節——迎接面試篇
最開始的開始:簡歷
一份乾淨明朗、重點突出的簡歷是重要的第一步。
刷題
在我面試的四個崗位中,每一個崗位的每一輪技術面都有coding環節;如果是外企,coding環節則更加重要。所以非常建議各位在面試之前儘早開始刷題,在此推薦以劍指offer入門,以Leetcode或牛客等求職刷題平臺爲主的針對性練習。即使是打過ACM的同學,我也推薦在面試之前刷刷Leetcode適應一下面試題的節奏,畢竟面試題與ACM題是存在一定的差異的。
複習/學習專業課
曾有一個來自A廠的學長很認真的和我建議說,如果我想拿到級別更高的offer,必須要補足我計算機專業課基礎薄弱的短板。不僅對我而言,對其他同學也是如此。
計算機的專業課在面試中是繞不開的話題,也是日後的工作中不可或缺的技能。
如果是計算機專業的同學,我的建議是在面試之前集中複習一下學習過的專業課,在Github的“面經”關鍵字下,有非常多的整理完備的面試專業課複習資料。
如果和我一樣是非計算機專業的同學,我可以透露我的學習路線就是一本《Linux/UNIX系統編程手冊》,喫透這本書會對後續的求職面試大有裨益。
針對崗位做功課
其實大多數的面試並不需要對崗位的研究方向瞭解太多。而且在官網直接投遞大廠時的多數情況下,直到面試之前都完全不知情自己的面試官屬於哪個組,更不知道自己在面試通過後會被分配到哪個組。所以這條建議在面試過程中的適用範圍較小(雖然上文的面經中真的起了作用),但對於投遞崗位的選擇還是有所幫助。
雷區:coding環節尷尬的沉默
在拿到面試官給出的題目後,對於不確定的點一定要積極覈對題意(印象分++)。確認題意完全無歧義後再開始想題,如果題目較難,無法很快想出面試官想要的時間複雜度的解,不如先講一個暴力一點的解法,再一邊想優化的思路,一邊自言自語地講給面試官聽。這樣不僅能消除奇尬無比的沉默,又能用自言自語緩解面試的緊張,還可以通過心路歷程的分享讓面試官更好地理解你的做法。
上手敲代碼時,也可以如法炮製剛剛的自言自語法,一邊敲代碼一邊向面試官講解這部分代碼的功能。同時也能讓面試官聽到你對於邊界條件的考慮、對於bug的處理、對於代碼結構的考慮,讓你在敲好代碼擡起手的一瞬間,就能讓面試官瞭解你的代碼在做什麼、怎麼做。
最後,不妨自己試着出一組數據卡掉自己的代碼,先在腦海中迅速debug一遍,再向面試官解釋這個數據中特殊情況、邊界情況的判定。
雷區:避免掛電話即失聯
如果流程允許,面試官同意,不妨留下面試官的聯繫方式。這樣不僅在卡流程的時候可以救你一命,減少時間的浪費。在後續的入職前溝通相關事宜時,也能有一個手把手幫着你的mentor。
反問環節
反問環節雖然不會決定一場面試的成敗,但卻能留下你必須要知道的重要信息。比如面試官在他的自我介紹中遺漏的重要信息:比如你所面試的崗位屬於哪個事業羣的哪個具體的組別、工作地點在哪裏(可能一個組會有多個base)、期望的入職時間(一般都是越早越好)。也需要詢問關於“如果有幸通過後續面試,主要會負責哪些工作”等關於工作內容和工作節奏的問題。
實習時長
我和很多帶實習生的mentor一樣,都覺得實習還是在適當的範圍內越長越好。畢竟在一個健康的實習週期內,可能學習、上手的過程就要兩個月左右,如果幹滿契約上的三個月就離職的話,很可能剛剛上手工作內容就離開了。如果能夠實習半年左右,上手工作的內容後經歷一個項目較爲完整的開發過程,對個人的能力是有很大的提升的。
關於投遞
如果沒有八成的把握,最好不要貿然投遞大廠。因爲每一次面試的評價信息,包括你的優點與缺點,當前亟需提升的能力都會被幾乎永久地保存在系統當中。一次因準備不充分造成的糟糕的面試,很可能會讓你被打上一些不好的tag,很大程度上影響後續的面試官對你的第一印象,進而影響你接下來很長一段時間內在該廠的求職。出現越掛越難被撈的情況。
關於機會
很多人提倡海投以積累面試經驗,但其實在實習階段,我個人並不太接受海投的方式。首先可能是我的確不那麼擅長拒絕別人,一一拒絕那些從面試之前就不打算接受的offer讓我有點心累。
我關於實習的看法
一個對我很有幫助的人對我說,實習是我職業生涯中試錯成本最低的階段。
可以盡情嘗試自己感興趣的方向,看看是不是真的如自己所想一樣有趣。
可以盡情嘗試不同風格的大廠,看看他們所說的“氛圍”到底是不是那個味兒。
“集郵”式的實習不是目的,在遊歷的過程中知道自己真正想要的是什麼纔是目的。
Datawhale競賽羣已成立
可掃碼加入Datawhale競賽學習社羣
在社羣中,交流、討論和組隊競賽事宜。
如果加入了之前的社羣,不需要重複添加!
入門競賽教程(數據挖掘/cv等)後臺回覆 競賽 下載