當前位置: 華文星空 > 知識

讀 CS PhD 之前沒有工業界經歷真的沒關系嗎?

2019-09-21知識

我覺得我在懷疑人生的時候,也有和你一樣的困惑,我覺得題主描述的基本上我全中。我才剛剛開始 PhD student 生涯,我是做 system 的,之前也沒有任何工業界的經歷,到目前為止做過關於 research 的事情就是 debug 和跑實驗,對 research 還沒有產生出什麽自己的想法,所以夜裏睡覺輾轉反側的時候,常常會懷疑人生。

在讀 paper 或者聽 talk 的時候,我心裏就會一直想:這個東西真的會有人用嗎,為什麽現在工業界不用這個東西,現在工業界在用什麽,為什麽我無法理解這個 motivation,工業界現在真的有遇到這個問題嗎,工業界現在遇到的問題是什麽……有時候我會覺得,是不是因為我從來沒有在工業界待過,所以導致我不知道現在廣泛使用的解決方案是什麽,能解決什麽樣的問題,有什麽不足……如果我連現有的解決方案都不知道,如果我連需要解決的痛點是什麽都不知道,如果我連問題在哪都不知道,那我又怎麽樣開新坑做 research 呢?

我覺得這麽下去不行,我需要跟工業界接觸一下,於是新學期開頭第一次跟我老板開會之前,我就在想怎麽跟我老板提出我想去工業界實習一下的想法。誰知開會的時候,我老板竟然主動問我要不要去實習,讓我十分驚喜。他說,你要是想去 MSR,我有好多人可以給你介紹,而且申請的流程也簡單,你跟 researcher 聊聊天他們想要你就行了,而且去 MSR 的話比較容易出 research 的成果;你要是想去 Google 的話,我就只能給你介紹去一個組了,而且他們 Google 申請的流程很麻煩,要走一趟正規的流程,包括 code interview,而且 Google 相對來說比較不容易產出 research 成果。所以你想去哪個?

我心想,老板都這麽貼心地幫我把這兩個選項的優劣列清楚了,這不是非常一目了然嗎。所以我選 Google!(?????)因為我的想法是,我現在才第一年,還沒有 publication 的壓力,所以我可以選擇去一個重視 engineering 但是不一定能有很好 research 產出的地方,這樣離真正的工業界稍微近一點。後面的實習再去 MSR 多搞搞 research。

說到這裏,我就想到了其實我在開始 PhD student 之前確實還是有個機會能夠進入工業界的。在拿到 PhD school 的 offer 之後,一般來說會有 campus visit 的機會(見我之前的知乎文章:前言、UMich、Cornell、UW、UCSD)。在我 campus visit 的時候,有位教授就約我出來吃了個晚飯,說你知道嗎 PhD offer 是可以 defer 一年的,不如你來跟我們創業吧。創業的頭一年最重要,有很多很有挑戰的事情,不如你來我們這裏幹一年,把這些有趣的事情都做了,然後一年後再開始讀 PhD。票子,有的,股份,也會有的,都不比其他創業公司低。當時我覺得這位教授說這話的時候確實利益相關太大了,我怕有詐,所以也就沒仔細考慮 defer 的可能性,不管是去這位教授的公司或者去其他公司。

其實作在想一想,包括之前跟 defer 了一年的 @張震 大佬聊了聊,我覺得大家確實還是可以認真考慮一下 defer 的(當然還是要註意一下各個 PhD school 關於 defer offer 的政策,跟小秘確認一下,比方說有的學校就白紙黑字寫著說:如果是因為要出去工作的話就不允許 defer)。你想,出去工作了一年,有了錢,之後當 PhD student 的生活就會過得更滋潤一點;見過了錢,你就知道自己最起碼該值多少錢,不會因為錢的問題對要不要讀 PhD 產生動搖;看到了工業界技術上、管理上、商業上、人際關系上的一些復雜的現象,就不會對工業界產生一些不切實際的幻想;意識到了一些痛點或者難題,這或許就會啟發自己找到 PhD 奮鬥的方向,成為潛在的 research topic;知道了公司、商業、技術是怎麽運作的,在讀 PhD 期間看待問題或許也能多些角度,更加深入……

不過反過來說,我又會想,要是當真我 defer 了 offer 去工業界幹了一年,我真的能得到上面幻想的這些好處嗎?或許我所做的就是碼程式碼,頂多熟悉了常用的 software stack 的配置、使用以及坑在哪裏;或許我會意識到一些難題,但這些難題從 research 的角度上看又沒有價值,甚至別的公司已經有了成熟的方案只是我不知道;或許盡管我是公司的第10號員工,但是大佬們開會、商量發展的方向、見投資人的時候都不會叫上我,因為我只是一個普通的優秀 engineer;或許盡管我已經是一個比起同齡人強無數倍的程式設計師了,但是公司還有第5號員工是從某耳熟能詳的大企業挖來的擁有20年經驗的資深架構師,所以實際上我只是碼著我被安排好的程式碼,並不能自己設計整個技術棧,甚至不能和資深架構師討論不同方案的優劣;或許我想要學習一下怎麽創業、公司是怎麽運作的,但是我整日忙於碼程式碼,大佬們又不帶我,每天累得要死,回家就想做飯、睡覺,根本沒有空來看看這些關於經濟、金融、創業、管理或者其他類別的書……

我開始反思,不去工業界就不能知道問題在哪嗎,就不能知道 state of the art solution 嗎? 讀論文啊! 我真的去廣泛地讀論文了嗎? 沒有。 經典的論文讀了嗎? 沒有。 剛剛開完的會的論文讀了嗎? 沒有。 哪怕是 summary,別人嚼過的東西,包括 The Morning Paper,甚至是知乎,讀了嗎? 沒有。 那在你有限的少得可憐的讀過的論文裏面,你了解他們的 motivation、要解決的問題、怎麽解決的、好在哪裏、不好在哪裏、為什麽能被會議收入嗎? 不記得,不清楚,沒想法。 好好好,讀別人的 paper 不行,那你對你自己手頭的專案有什麽想法嗎? 沒有,老板讓幹啥我就幹啥。 那你別的啥都沒幹,是不是把時間都花在碼程式碼上面了,我也不是說碼程式碼不好,就隨便問問? 對不起,也沒有,就寫了幾百行 Python code…… 那你一定是花了不少心思在上課上面吧,我知道你們一二年級的 PhD student 還是要上課的? 好像也沒有,project 是隊友全程 carry 的,reading assignment 掃兩眼論文再概括一下前面回答了的同學的答案。 那看來你一定花了不少時間在 social 上面吧,我知道對 PhD 來說 social 是很重要的? 沒有,每天就學校家裏兩點一線,周末再去買個菜。 或許你有了女朋友所以不是那麽需要 social? 求求你別說了,連朋友都沒有哪有女朋友…… 那……那你這個 PhD 已經讀了半年了……你都做了些啥?…… 大概……大概看完了 The Americans, Season 1 2 3 4 5 6 還有 The Expanse, Season 1 2 3……話說 Amazon Prime 真是好啊,學生有優惠然後又有這麽多好看的劇…… 我看你就是條鹹魚吧?

當然,以上有很大的開玩笑的成分,我也並沒有這麽不堪(逃

總結一下,我想說的就是: 有工業界經歷,對於讀 CS PhD 當然是一件好事;沒有也沒關系,實習可以補回來,research project 跟工業界合作也可以補回來。如果收了 offer 還沒有 accept 同時又有很好的工作機會,可以認真考慮一下 defer;如果你像我一樣已經開始讀 PhD 了,那就不要為自己不思考不幹活不努力找借口了。