計算機應屆博士生的一點求職經驗——概述篇

一些也許有用的求職經驗與感悟

前言

你們好,我是華東地區某雙一流高校計算機系的博士研究生,研究方向爲新型非易失內存與存儲系統,預計明年6月到9月畢業。從今年5月份開始,我陸續投遞了簡歷給一些企業的對口崗位,也得以積累了一些筆試、面試的寶貴經驗,有經過後的歡呼雀躍,也有當場掛掉時的難過失落。所以,我萌生了將本身的這份求職經歷記錄下來的想法,也但願可以給學弟學妹們及其餘後來者一些提醒與警示,讓你們可以站在前人的肩膀上,少走一些彎路,得到更加順利踏實的求職體驗。面試

雖然網上已有許多前輩們在博客、論壇、貼吧裏記錄了本身的求職過程、面試經驗、代碼考覈詳情等,給包括我在內的許多求職者提供了寶貴參考,但美中不足的是:這些敘述有些個性化,碎片化,難以做爲一種完整的、通用的參考。我想,我接下來所要作的事,就是提供一個相對完整的視角來回溯整個求職過程當中的一些必要準備、注意事項以及反思。相信會在前人的基礎上,給你們一些額外的參考補充。算法

因爲本文是概述篇,我將不會對單獨的企業單位作詳細的求職回憶。固然,這部份內容會放在本系列博客的後續章節中分別介紹。本文將着重從總體的角度談一談如下幾個主題:製做簡歷、選擇崗位、筆試/機考、(遠程)面試、HR交流以及對本系列後續文章的具體安排。數據庫

簡歷

簡歷有各類各樣的模板,相信同窗們在從前可能也都或多或少的接觸過、準備過。然而,當踏上真正的求職之路時,簡歷不該該僅僅只是照着模板修改對應文字那麼簡單。而應該根據本身的特色、申請單位特色、申請職位特色作個性化的定製。一言以蔽之,咱們無需追求製做一份漂亮的簡歷,而是製做一份規範的簡歷。這裏的規範,即符合兩個特徵:第一,不泛泛而談,而是強調突出我的的能力特色;第二,不盲目羅列,而是符合用人單位對該職位的指望。編程

爲了達到以上兩個目的,做爲經歷了三五年科研生活錘鍊的碩士生/博士生,就應當把科研成果(論文/專利)和項目經歷(項目名稱/內容/目標/任務/代碼/完成狀況)做爲簡歷的主題進行描述。這一點,相信不管是去學術界仍是企業界,都是適用的。由於我的能力有限,在學術上並無十分優秀的論文產出(不管是質量仍是數量),因此暫未考慮申請學術界的工做,所以本博客更適用於去企業的申請參考。數據結構

對於科研達人來講,paper可能發到手軟,這種狀況簡歷是很是好辦的,畢竟一個 publication list 加上若干 CCF A/B (或者SCI 1區等)的說明就足以證實本身的實力。然而,我更想討論的是,做爲一個普通的博士生(好比我本身),論文數量剛剛達到畢業標準,這種狀況該怎麼定製本身的簡歷呢?架構

我推薦以下三種方案:數據結構和算法

  • 添加二做/三做論文:若是咱們和其餘同窗在一個課題上合做研究,但不是主力的話,其實也能夠做爲本身的一個資質證實。但注意要吃透該研究方可羅列。
  • 細化論文研究內容:能夠在論文名稱+連接後面添加工做簡介,如背景、動機、設計、實驗結果等。可使論文這一部分看起來內容更翔實。
  • 將論文與項目經歷整合到一塊兒:不單獨羅列論文發表狀況或者專利申請,而是結合項目經歷描述成果時可添加此項,引發面試官注意,同時不會顯得論文發表量匱乏。

在撰寫簡歷中,有一些注意事項:編程語言

  • 羅列論文/項目時按重要性順序進行排序,如不影響則可按時間排序(由近到遠)。
  • 不要列任何本身沒有深刻理解的論文/項目在本身的簡歷上,換言之,咱們要對本身的簡歷有絕對控制權,由於後面面試官有可能追着簡歷的任何一個描述詢問技術細節。
  • 無關申請崗位職責的內容(如學生會/社團/班級幹部、學生助理等、我的評價)儘可能日後放,不要佔據過多注意力。

基於以上內容,咱們能夠給出一些技術職位申請簡歷的基本內容:分佈式

  • 我的信息(姓名、畢業時間、研究方向等,可個性化填寫如GPA、英語四六級等)
  • 教育經歷(本科+研究生)
  • 項目經歷(按序說明,細化描述)
  • 論文發表(2篇以上則自成一節)
  • 專利申請(2個以上則自成一節)
  • 獲獎狀況(可根據我的須要使用此節)
  • 學生工做(可根據我的須要使用此節)
  • 其餘說明(如我的評價、特長等,可根據我的須要使用此節)

選崗

無論咱們去應聘哪家公司,在投遞簡歷時都須要指定崗位。這件事請務必認真對待,選擇的崗位最好契合咱們自身的研究方向,或者至少是本身有興趣正在進行自我提高的方向。函數

在讀完本科之後,咱們尚且年輕,還有很大的試錯和悔改的空間。好比考研/保研的時候換專業方向,好比本來學的理工科卻從事了銷售市場公關等。但研究生畢業,尤爲是博士畢業後,若是選擇的專業不對口,將會形成十分糟糕的工做體驗(兩位學姐的切身體會,她們都已經辭職另謀出路)。尤爲是,對咱們大部分沒有在社會中切身實戰過的應屆生而言,第一份工做十分重要。平臺的大小,方向的契合,將可能影響咱們的一輩子。所以,咱們要在投遞簡歷時抱以十足的認真去選擇合適本身的崗位,切莫嬉笑倉皇中按下本身從此的選擇鍵,一失足成千古恨。

固然,從實操的角度來講,判斷崗位匹配度是不難的。由於大部分公司在崗位描述部分都會羅列該崗位的具體職責以及所需的技能。咱們稍加分辨,即可知道本身過去的項目經驗、課題經驗是否容許咱們順利開展崗位描述裏所說的工做。

選擇好崗位以後,即可投遞本身製做好的簡歷。許多公司容許填寫兩到三個志願,因此咱們也能夠給本身多一點容錯空間(由於第一志願若是面試失敗了,可能會被推送到第二志願的流程)。不少公司在申請職位的時候要求填寫官網上的我的信息(也就是簡歷),模板不一而足,可對照着本身準備好的簡歷作出取捨。

PS. 不少企業在B站上有直播宣講會,若是想了解某企業詳情,能夠在春招秋招的時候關注他們的線上宣講會。

PS 2. 除了統一的春招秋招時間外,一些公司對(博士)研究生的招聘是不設嚴格時間限制的,如華爲、阿里。若是有意向,能夠在本身以爲合適的時機發送簡歷或聯繫HR。

筆試/機考

一個關於讀博的重要誤解是,代碼能力對博士不重要。我以爲更合適的說法是:博士的核心競爭力不是強悍的編程能力,是發現、分析和解決領域尖端問題的能力,但他應當具有使用某種編程語言實現本身提出的工具/算法/軟件的水平。換句話說,原則上博士能夠寫不出簡潔優美的代碼,但不能不會寫代碼。

固然,有原則就有例外,那些研究純理論的博士,也許對其確實沒必要苛求寫代碼的能力。不過我想說的是,對於大部分博士生而言,必須具有基本的編程能力。一個風向變化的證據就是,華爲公司在2019年之前是不要求博士生參加機考的,但以後要求包含博士生在內的全部應屆生必須參加平臺機考,纔有機會得到錄用資格(機考掛了就沒有而後了)。

不一樣的公司筆試風格不太相同。但據我我的經驗,不少中國企業如今都使用牛客網平臺考察代碼和相關技術能力。那麼,該如何準備筆試/機考呢?我以爲主要分以下三個方面去準備:

  • 重要數據結構和算法的編程練習:這一部分能夠到leetcode/力扣上的題庫去練習,解題完成後還可參考LeetCode 題解學習最優方案。知乎上有關於如何高效使用 leetcode 的討論,也可參考學習。
  • 牛客網實戰練習:注意,牛客網與 leetcode 有一個重要區別——牛客網要本身處理輸入輸出數據。不少時候,AC不過就可能在輸入輸出上卡死的。因此若是公司要求在牛客網上進行機考,必定要勤加練習,避開一些常見的輸入輸出處理錯誤。另外,牛客網和 leetcode 的「練習」模式與「考試」模式有一個重要區別——「考試」模式只顯示AC成功率,不會顯示哪一個 case 沒有經過。因此平時模擬的時候就儘可能適應「考試」模式,特殊狀況本身要耐心細心地想清楚。
  • 編程語言相關基礎知識:有些企業的筆試不只有編程題,還有選擇題(或填空題),要求對某一門編程語言有足夠紮實的瞭解。對博士生來講,這一部分不建議花太多時間,平時有編程積累,到時應答也是水到渠成的。對一些經常使用知識點稍加準備便可。

另外,有些企業會有專門一輪相似公務員考試的邏輯能力考查,要求限定時間內作一些圖形規律題、數字規律題、邏輯判斷題等。我以爲這一部分不須要特殊準備,臨場發揮便可。若是說非要用這種題刷掉專業十分對口的博士,我感受不是博士的恥辱,而是企業的恥辱。

面試

因爲新冠疫情,如今的許多面試都是以遠程視頻爲主。目前爲止,我全部的面試都是經過這種方式完成的,工具包括 zoom(如今已封殺中國大陸用戶的大量權限)、騰訊會議、牛客網等。在面試過程當中,咱們能夠分享本身的本地界面,如編程界面,給面試官,以達到完成代碼考覈的目的。通常來講,面試總共有三個環節:1、面試者介紹本身的我的狀況和工做成果;2、面試官提問,面試者回答;3、面試官考覈代碼,面試者實時分享編程界面。

從我我的的經驗來講,面試官主要考察的手段有如下幾種:

  1. 結合論文介紹,詢問相關技術細節;
  2. 結合項目介紹,詢問相關技術細節;
  3. 結合論文/項目介紹,考察相關技術背景;
  4. 提問編程語言相關的技術問題;
  5. 提問研究方向大背景的相關問題;
  6. 提問研究方向相關係統/工具的具體細節。

其中,第 1/2 類問題一般是面試者佔據主動權,主要職責是將咱們本身的工做講清楚,讓面試官對該工做有大體的理解並承認該工做的一些貢獻。而 3-6 類問題則屬於面試官掌握主動權,隨機地試探面試者在某方面的知識(體系)是否紮實深刻。好比,我在介紹「持久內存(NVM)管理」時,面試官問我「那Linux自己的內存管理機制你能具體介紹一下嗎」,「若是NVM容量很大,會對頁表和TLB形成什麼影響?如何優化?」(3類問題)。再好比,我在說到「文件系統的接口會產生比內存接口更高的讀寫開銷」時,面試官問我「你能介紹下文件訪問讀操做的具體流程嗎?越詳細越好」(5類問題)。再好比,「你有讀過Redis源碼嗎?能講一講爲何Redis使用單線程模型實現嗎?」(6類問題)以及「你平時編程用C++,能說一下C++11有哪些新特性嗎?」(4類問題)。

想必對於大多數面試者而言,「手撕代碼」是三個環節中最緊張刺激的了。經歷了若干輪的代碼實測,我如今已經不那麼緊張了。我以爲,三個月以來的 leetcode 練習確實讓我在應對面試環節代碼考覈時擁有了一些「套路」,可以相對從容地寫出註釋邏輯、數據結構、自定義函數等。因爲時間限制,面試官考察的問題不會很難,但一般會有一些邊界問題須要注意。我認爲,想要順利經過第三環節的考覈,歸根結底仍是要勤加練習(如leetcode),這無法投機取巧。

那麼在面試前,除了在各個網站上看面經,刷編程題,咱們還能夠作什麼樣的準備?一份 Presentation,能夠是 PPT、word,或者其餘形式的演示內容。我認爲這一點十分重要,由於它能夠幫助咱們更好地介紹咱們的工做,而不是僅僅經過口頭進行描述。簡單的言語傳遞信息的效率並不高,並且經常形成誤解。尤爲是對於科研工做的描述,可能涉及到大量的專業術語或專門的工具/結構等,語言也許根本沒法描述清楚。所以,我我的強烈的建議在面試以前,你們總結一下本身的工做成果,製做一份 Presentation,在面試的時候,如條件容許(即本次面試非電話面試),就結合這個Presentation 展開介紹。我看前人的經驗帖時,發現基本沒人談到這一點。但我相信,這應該是頗有用的求職準備,但願對你們有所幫助。

最後當三個環節都結束了,咱們能夠問面試官一些問題,如技術、業務、資源等工做相關的細節,甚至是工做時間安排(旁敲側擊問是否996)、單位生活(福利)、薪酬水平等。我的能夠結合本身的實際須要進行提問。時間控制在 3-5 分鐘便可。

與HR的交流

從流程的角度來講,面試包括技術面+HR面。前面所講的面試單指技術面。在技術面試經過後,會迎來HR面試。HR面試不會涉及技術問題,通常是對面試者的綜合能力、性格、心理素質進行考察。常見問題爲:

  • 你爲何選擇咱們企業/部門?
  • 你最自豪/成功的一件事是什麼?
  • 你最失望/緊張/失敗的一件事是什麼?
  • 若是你與同事有矛盾,怎麼辦?
  • 若是你不一樣意上級意見,怎們辦?
  • 你是如何克服困難的?

諸如此類。而後最後面試者能夠跟HR說一下本身對薪酬的指望(在說出具體數字以前要作好背景調查,不要太高,尤爲注意不要太低)。如今互聯網大廠給碩士博士開的工資詳情能夠在網上進行搜索:知乎連接1, 知乎連接2.

本系列後續博客

目前我已經向華爲(存儲)、字節跳動(基礎架構)、騰訊(騰訊雲/數據庫)、浪潮(存儲)、小米(分佈式系統)、公安部第三研究所(後臺系統)、B站(雲平臺)投遞了簡歷。其中,已走徹底部流程的是華爲,走徹底部技術面流程的是字節跳動,兩輪技術面掛掉後又轉崗走了一次技術面的是騰訊,經過筆試即將面試的是浪潮和公安部第三研究所,經過簡歷篩選即將第一輪面試的是小米,正在簡歷初篩的是B站。

本系列後續將會依次單獨介紹我在這些企業應聘的成功或者失敗的經驗。博客更新將按照如下順序(能夠點擊連接的爲已完成更新的博客):

  • 華爲篇
  • 字節篇
  • 騰訊篇
  • 浪潮篇
  • 小米篇
  • B站篇
  • 公安部第三研究所篇
相關文章
相關標籤/搜索