我該堅持念完這個CS PhD嗎?
同學校的同學也有在使用知乎,因為隱私的原因就沒有直接貼出導師和自己的主頁。
評論或是答題的同學有提到希望看到的我都私信了。
如果需要別的信息樓主會繼續補充。
提前謝謝大家了。
----------原問題---------------
在Quit找工作和好不容易入門了不如念完中循環往複,夜夜無眠。
一方面希望能有過來人善意分享,讓晚輩避開大坑,少走一些彎路。
另一方面也希望藉此機會拋磚引玉,同有類似困惑的朋友互相交流,共同進步。通過這個問題想得到什麼:
我想知道是完成PhD對我將來的成長比較有好處,還是Quit找一個工作開始在業內打拚對我的幫助比較大。也想找到一些安全感,希望在未來的路上能走得順利一些。希望能得到大家的幫助。背景信息
---------
趁機回顧一下申請學校的血淚史吧。
本科 2+2,通信工程
北京西直門附近某211理工科高校, 3.9/5
University of Minnesota, 3.9/4大二的時候抱著隊友的大腿拿到了ACM福建賽區的銅獎。
大三的時候抱著隊友的大腿發了一篇論文,當然是三作所以和沒有是一樣的。大四最後一學期腦抽,覺得NLP(Natrual Language Procssing)簡直就是太好了,
我英語學起來毫無壓力,而且(以為自己)會演算法,一定可以輕鬆申到名校,成為科研新星,走上人生巔峰。於是在毫無相關研究背景,GRE考得很爛(數學並沒有滿分),沒有考CS subject的情況下,申請了AI方向的PhD。而且很中二的沒有申請自己學校的PhD program。我全部選擇申請PhD項目的主要考量是怕家裡經濟負擔太重。
最後被9所秒拒,來到了現在的這個學校。題主現在美國東北部某非理工高校念計算機PhD 1.5年,每天都有一種生不如死的感覺,當然主要還是對不確定的未來的恐懼和對自己無能的憤怒。
我第一年的成績並不好,8門課有3門A,5門B。回想起來可能是心理落差自暴自棄(身邊的同學基本都申請到排名&>=UMN的學校, 也不乏藤校和MIT)和本身缺乏相關背景知識,再加上自己並沒有特別合理的學習方法。(比如我的學習方法其實就是拿出作業來一遍遍做到可以給別人講明白為止,不知道融會貫通,比較花費時間。)另外因為第一年的課程壓力和自己對科研的錯誤認識導致信心跌落谷底於是選擇逃避,在第二年開始的時候(也就是半年前)轉投到了同院系Computer System方向一個導師名下搬磚。
我本來以為Computer System的研究也改改操作系統內核,最多就是寫個比較奇怪的數據結構然後跑跑BenchMark就結束了嘛,也不是特別難嘛。但是我錯了。
原來Distributed System研究是需要寫超級大量的代碼的啊。原來其他學校的做這個方向的同學早在大二的時候就已實現過Mini OS,而且還自己寫過Compiler了,說不定還有自己設計的CPU,Database 和 Computer Network玩得風生水起。我現在連Socket是怎麼實現的,Transaction是什麼都不知道,而且我寫過的最複雜的程序也只是網路流啊,完全沒有任何軟體項目,所有代碼都是刷題的時候寫的,渣到我自己都不好意思看。另外我現在的編程水平真的也就只有TopCoder藍綠色這樣。更悲傷的是我們學校連Software Engieering的課都沒有,我都不知道要去哪裡學各種軟體設計方法。只能自己硬著頭皮跟著@Badger的這個教程慢慢刷。
我覺得我這樣的背景,把目標設定成畢業以後找教職是不理智的。
我的思路
------------
結合自身的條件和手邊可以利用的資源,我覺得有如下幾條路可以走,希望大家能幫我參謀參謀或者說說新的思路:1. 不要慫,就是干。安安心心念完。
畢業條件是3篇頂會,我現在看到Spark/GraphLab/Parameter Server/Storm的實現就很喪氣。覺得自己怎麼也不可能一個人在3.5年之內寫出這種級別的軟體啊。
現在的感覺就是很心虛,不太清楚要怎麼努力才能很好的在目前的研究領域做出貢獻。另外一年多了也沒有任何Paper,感覺好害怕。
每次和老闆組會的時候也不知道說什麼,因為看完paper之後我都不知道他們具體是怎麼實現的,就知道個high level的idea。根本不知道怎麼討論 T.T。
這樣一來二去,我自己很快也沒信心了,老闆是EE背景,對軟體其實也不是很懂的樣子。2. 緩兵之計,邊搬磚邊刷@Badger的這個教程,在這個過程中找full-time position。
深切感受到自己現在的代碼水平就是渣渣,所以正在不斷練習,在完成平時搬磚工作的前提下正在瘋狂自學Compiler, Elements of Computer Systems, SICP, Programming Language (UW) ,
Cloud Computing(UIUC)。CSAPP已經草草看過一遍,看的時候特別上癮,愛不釋手,看完一遍之後已經脫胎換骨,不過感覺還需要再看第二遍。
打算等到完成了Compiler 和 Elements of Computer Systems之後就可以開始找full-time position。3. Quit,回去重新考GT, 申請別的學校的CS Master。
GT好考,兩年平庸的成績和在research領域0建樹的表現恐怕是申請路上最大的絆腳石。
我覺得我還是有名校情節,這是病嗎,大家有沒有葯可以治 T.T。
我覺得在好的學校,安心做完課後的作業其實就能入門了,但是在現在這個學校,我覺得上完相關課程不僅沒有入門,反而更困惑了。這是否是一個重要區別。備註信息
-----------
現在老闆的一些信息:
Rice University EE PhD
Department Chair
Google Scholar profile其實我完全不曉得我老闆在學術界有多強的,突然覺得我是不是完全不應該搞科研。
自身優勢:
對語言敏感,英語綜合水平較好。多次被Native Speaker誤認為在美國本土長大。也曾多次被ABC問為什麼英語這麼好。
喜歡計算機科學,雖然常常被虐得體無完膚,但是有一種越虐越爽的感覺,可能是因為我有抖M被動加成吧。
勤奮,為了達成目標可以長時間投入,不害怕看大部頭,不管多晦澀總能堅持看完。自身缺陷:
性格比較頑固自卑,容易妄自菲薄,不懂得適時激勵自己,比較在意別人的看法,缺少堅持主見的勇氣。
沒有總結的習慣,容易虎頭蛇尾,看書容易囫圇吞棗。因此對思維能力要求比較高的科目並不擅長,比如數學,或者RTS類遊戲。
邏輯知識水平一般,GRE寫作3.5分。一些可能有用的信息:
父母是三線城市工薪階層,月收入8000 RMB。
舅舅近年經商成功,或能資助我求學的高昂學費(比如可以用比較低的利息/或者免息借我學費)。
大哥,勸你別搞這個了,聽你描述的這個情況,這個Phd讀下來,不扒層皮也少根筋了,估計頭髮都得白完了。我認為你轉到Computer System是非常不理智的行為…我不特別了解,但是應該需要之前程序上的大量積累。關鍵是,你做的東西如果老闆不太懂的話很容易跌進深坑,老闆publication再牛也沒用。
先quit再說吧,以你的編程能力,拿個master就可以在美帝找個工作了。熬過就好了,都是這樣過來的,重點不是m或者phd,而是熬過這一關。不要和別人比,別人是兔是龜你管不著,和自己比才有意義
不要慫,喜歡演算法就堅持下去,當你做完之後你就會發現,不過爾爾。
我和題主的本科經歷比較相似,也參加過ACMICPC Regional,半夜裡打過TopCoder和Codeforce。最後也只是拿到省賽金牌和Regional銀牌,然後本科畢業就跑出來搬磚了沒有申讀master。
當年為了演算法,去參加NOIP,結果落得個第二不能保送FDU。
當年為了演算法,填大學志願時全為了看學校ACM成績。
當年為了演算法,本科畢業剛參加工作半年就跳槽到演算法相關的研發崗位。
沒有修讀過任何一門Machine Learning相關課程,現在在從事Machine Learning演算法相關工作,基本上從了我的心愿,在國內來看待遇也尚可。
題主現在的起點要比我高很多,所以珍惜好機會,不喜歡在System方向上深入下去就要提早脫坑(家庭經濟狀況允許的情況下),不然就安心讀完PhD,等工作了再換方向。樓主我特別理解你的感受 但是我藉助這個苛刻的環境終於認識到我的人生理想 認識到我是誰
希望我的方法也能幫到你
我曾經也混在一個環境里 但完全混不下去的感覺 每次組會前都特別害怕 不知道怎麼應付過去 知道自己和別人有差距 每次看完論文後只有high level的idea 我知道是我基礎太差 可是我既沒有信心補上基礎 也不敢走因為捨不得 完全無能力決策 就是這種兩難 我覺得 這都是我的錯
後來有一天組會後我終於崩潰了 我對自己說 就算我不敢離開這個地方 不敢做出任何決策 但是我至少不要每天活的這麼悲慘 我就不做大決策 但是我要每天為自己創造一個十分鐘 有樂趣的十分鐘 只為自己活著
我也不知道自己喜歡做什麼 做什麼都難受 還忍不住想要打基礎 但是看幾頁書就覺得噁心 為了克服這些噁心 我發明了幾個技術 一個是10分鐘 就算噁心 也就是10分鐘 第二是隨機法 就算是讀書 我也隨機的找一本書 隨機的翻到一頁 第三是對抗法 我越想補基礎 比如我研究的是理論 我就不做理論 我做系統 這個和你從nlp跳到系統很像 但是我的特點是我只在10分鐘做這件事 第四是 沒什麼期望 今天做10分鐘這個事 明天做10分鐘那個事 完全不在乎爛尾 第五 把10分鐘和我的工作完全割裂 就算業餘的時候在補基礎 我也不抱任何希望 不指望能改善我的工作 第六 做我所知的最沒有意義 絕對對未來沒有幫助的事情 比如看小說
為什麼我要發明這麼多方法?歸根到底就是因為生活中看不到任何有意義的方向了 生活中所有有意義的方向看起來都不對 所以我選擇從心所欲 用技巧擺脫生活中的執念 坦誠等待內心的答案
這麼過了6個月 我慢慢的發現自己真實的喜歡和厭惡 發現自己能做什麼和不能做什麼 而且這些都不是我想像出來的 而是我真實的體驗告訴我的
我想要告訴你 實踐換來的真實體驗會讓我們大跌眼鏡的
6個月後 我發現我喜歡的就是我當時的研究方向 難以想像吧?為什麼我會知道這個?因為我回頭看我的日記 發現我越來越多的使用寶貴的業餘十分鐘 不是看小說 而是學習我研究方向的東西 在放棄了一定要如何如何 放棄了期望和壓力之後 我發現我真的喜歡
6個月前 就算要補基礎 我都不知道從何起 我都不知道該學什麼 6個月間我翻了很多莫名其妙的書 竟然不知不覺的對這個領域有了一些了解 看清楚自己差在哪裡 同時6個月的實踐給了我信心 讓我相信自己能補上
後面的路並不是一帆風順 當我失去信心的時候 我總是回到我的10分鐘技巧 讓內心給我答案 後來我又補了2年 我終於能夠平視我的師兄弟 我終於知道 一切都是有因有果的 我之所以有這幾年的辛苦 是因為我更早的時候給自己挖的坑 這個坑如此之深 要不是follow my heart 我是爬不出來的
1 做自己能承受的決策 在決策中收集反饋 收集信心 收集到足夠的反饋時 你自己就會做出更大的決策 比如如果我業餘發現自己喜歡做系統 而且做的不錯 我說不定就會且敢於去工業界了 千萬別憑著想像做決策 別憑著衝動做決策 比如你從nlp跳到system
2 follow your heart 用技巧排除你生活中的執念 你之所以陷入這個窘境 是因為你的整個想法都已經進了一個類似於數學上的極小值,你需要各個方向都去搜索一下 開放自己 才有機會跳出去 為什麼我說10分鐘可以爛尾 就像搜索過程一樣 往外走一步 你發現 怎麼我的情況反而變糟了 所以你肯定沒有信心往外走了 所以很自然的就是想爛尾 這沒關係 等到所有方向都試過 你自然又會回到這個方向走出第二步 我覺得這種廣度搜索對於擺脫極值恐怕是效率比較高的方法吧
希望你看完這個會有所感悟
EuroSys Doctoral Workshop by Steve Han
Doing a system PhD
http://www.cl.cam.ac.uk/research/srg/netos/eurosys11dw/keynote/StevenHand.pdf
你條件算可以了,比你條件差的PhD多了去了.
你老闆也很牛,如果人跟你合拍,又對你nice沒必要就這麼放棄
不要聽樓上那些人嚇唬你,大部分都不是搞research的,更不是搞system方面的PhD。
Spark也不是一次出來就是今天這個模樣, 羅馬都不是一天建成的。
Coding是很重要,但不是最重要的。
為什麼要在一棵樹上弔死呢?先CPT出來做個實習,然後拿return offer轉正,quit phd不就完了么?跟老闆談好,拿個master有29個月opt慢慢抽籤。LZ 既然有了8門課以上的學分,估計夠master的要求也就一學期的事情,何必自找沒趣呢?
碼農,你要不挑組的話只需要刷leetcode就行了,憑LZ的基礎什麼FLG應該是刷兩月就秒殺的地步了吧...靜下心來一個學期就跳出苦海了。真的,不是要當教職的話,何必跟錢過不去呢?相信你老闆大牛的話應該也能理解,關係處理好點,工作不順了再回學校也不遲嘛...(雖然以後是要思考彎曲小黑屋的問題,不過總比拿著2k多的博士工資強太多)
對了,既然LZ英語牛逼,為什麼不去做個PM去和老美吹牛呢? 這個可比碼農輕鬆,拿得也不比碼農少,忽悠的本事起來了之後轉管理分分鐘的事情,這可比大多數非牛校phd當碼農到黑有前途多了。美國和中國一樣,能忽悠的領導忽悠光幹活碼農的。憑LZ口才,這條路顯然輕鬆的多。
題主你好,作為校友希望能給你一點幫助。
先說我的意見:不要Quit。
首先題主你的條件真的不差,看的出來也是一個性格很好也非常好學的人,我認為本質上你是適合科研的。而且你的研究方向和導師都不錯。
你現在的問題是有一點找不到方向,有一點過分自卑。我希望你不要一開始就把頂會論文、spark這樣的項目作為對自己的要求。很少有人獨立發的第一篇論文就是頂會論文,spark這樣的項目更是上百個貢獻者用好幾年時間才有現在的樣子。另外國外的本科課程比起國內來說要務實得多,所以你的同學實踐能力比你強是非常正常的。
我希望你能先嘗試對別人的文章或者項目做些小的修改,不管什麼級別先出一篇文章,這個難度並不大,但會對你的自信心有一個很大的boost。等你獨立發了一篇論文以後,有了一定經驗以後,再來評估自己適不適合科研,將來適不適合從事教職。
這些是我根據自己經驗得出的,我研究生也在交大就讀,研一期間或獨自或合夥地擼了幾篇水會,研二的時候有了之前的經驗一年發了兩篇SCI。我這兩年對科研的感覺也是起伏不定的,有的時候感覺自己很適合科研,有的時候又完全沒有方向。我想告訴你的是,情緒的波動是非常正常的,沒必要太過緊張。而且PhD的前兩年本就是補基礎的,沒發論文完全不是事,現在開始就來得及。
詞不達意之處還望見諒,希望能幫到你。
手機碼字,嚴肅地說一下。
首先你要認識清楚博士究竟是什麼,以及對科研工作感不感興趣。相關的問題在知乎上已經討論的夠多了,大家也都有一定的共識。從事科研工作,去探索前人從未探索過的事情,做creative的工作。如果你覺得這是很激動人心的事情,也喜歡挑戰高難度的事情,那麼我建議你堅持。
如果你不想再進行科研了那麼建議你妥妥的趕緊quit.如果你想科研,你quit以後能不能申到這種大牛,難說。
另外,我不認為你的方嚮應該是你quit的原因,如果覺得自己沒有想法,基礎不好,看論文不懂,很正常,和導師溝通溝通,讓老師多給你一些時間。學習一個新的方向並不會花費很多時間。大家都是從不懂到懂的,只是有些人懂得早,有些人學的晚。不要把現在的挫敗感當作不喜歡自己的方向了。
我以為,做事情有時候憑的不是興趣,要靠一些責任感。
原回答:
AMiner - Open Science Platform
看他的Hindex是40多,有這種大牛老闆,每天晚上不睡覺我也要把Phd讀完。
不要熬...告訴你自己這是愛...
CMU LTI phd 六七年畢業是常態。不要太糾結多長時間。如果真的喜歡就慢慢來,多幾年畢業很正常,人生那麼長呢。
直接quit,隨便拿個master學位去工作哦
不謝 @Yang Alex 邀,這個過程太過艱辛,也不想認識我的人知道這些,沒任何意義,知乎甚至是我周圍,讀博的經歷比這個神奇的,太多了。匿了~
-------------------------------------------------------------------
講故事吧,
11年初轉博開始跟項目,12年老師生病回學校上課;
13年初換課題,因為一直沒有在做大老闆的課題,她雖然很牛,但確實技術上的指導就很難了;
小老闆做工程略多,一度分不清SCI和EI有什麼區別,前幾年在職讀博,後來種種原因放棄了(我會說我是獨苗,組裡都只發得起中文核心嘛=。=)。
我做的方向是個什麼樣的方向呢?小老闆的博士導師(不是大老闆啦),ieee上我只搜到老爺子的5篇trans。同一個系的其他方向呢,有些博士畢業就有10+sci啦~
我的畢業條件是什麼呢?一篇trans+兩篇中文EI。
13年初開始,一年做實驗,一年寫文章。14年2月,投中文EI,修改後錄用;14年6月投中文EI,就那個一有負面意見就拒稿的雜誌(說的就是你啊!),一個月以後,錄用+小修;14年3月第一次投trans,兩輪大修+拒稿,拒稿那天,我27歲生日。
15年初換個 trans投,28天審稿意見回來,錄用+小修,3月20日,投稿之後的28天,我把大論文初稿寫完了,接下來的兩周,修改一下大論文,就可以開心的送審啦,6月畢業?為什麼不?
-------------------------------------------------------------------
最想說:還好我沒放棄。
-------------------------------------------------------------------
讀博的過程,我認為哪些很重要:
- 思路一定要清晰,要管好你的老闆,對,就是管好你的老闆。
- 一定要寫試驗計劃,不斷反覆思考,一定要努力把所有的問題都想清楚,要有一個合理的解釋。
- 也不用太把讀博當回兒事,這玩意兒就像古代女人閑來無事綉個花。
題主這兩天仔細看了大家的答案和評論,認真反思了自己的情況。
我覺得問題的癥結並不是工作還是科研。更多的是在身份轉換過程中(從被動接受走向獨立自主)的一種不適應,說白了就是慫,不習慣承擔自己做出的決定所帶來的後果。
所以只要我在面臨兩難選擇的時候依然盲從(自己相信的)權威而不根據事實和邏輯勇敢堅持自己的選擇並且積極調整策略就永遠都逃不出眼高手低的窘境。
也就是說題主心態/思考方式不改變的話,哪怕現在把我放到世界名校/行業領先的公司,也一樣會散發出一種弱者的氣息。
具體到PhD這個問題,我依然喜歡計算機這門學科,在技藝精進的時候有純粹的喜悅。
另外確實自己也是高估了困難。
所以決定還是擺正心態,再搶救一下(畢竟抖M)。
謝謝。
從option 1的角度 談一下自己的些許經驗:
首先distributed systems不一定就要求上來實現Spark這種檔次的軟體。當新手讀到很多系統頂會(SOSP/OSDI/EuroSys/ATC/NSDI/FAST)的文章,會潛意識的頂禮膜拜,這很好,但是千萬不要被這些文章嚇到,而妄自菲薄自己幾斤幾兩如何可能在僅有的三四年時間達到如此檔次。首先,你要知道,這些文章背後更多的是你觸及不到的機會/資源——實驗室背景,導師的指導,業界的合作,機遇,等等。諸多因素決定的高度與深度不是其他中流lab學生能夠觸摸到的;其次,如果你閱讀量上去了,會發現很大一部分頂會論文並不是如你想像的觸不可及:一個聰明的點子,可以從很小的一個發現出發,深挖,並通過大量evaluation/analysis鞏固結論,這樣的論文很多很多,舉例:TableFS (USENIX ATC"13);最後,興趣——計算機系統,尤其是distributed systems research,的確入門門檻不低,如果有興趣做支柱學習曲線的長短因人而異,但是終歸有一個量變轉質變的過程,尤其是當你的閱讀量、寫作量、動腦子想點子的過程達到一定程度後。
祝樓主好運!Quit申請一個cmu的ms,簡單粗暴又管用
spark之類的大東西確實不是一般人能寫出來的,但是如果在老闆是大牛的前提下,還是有可能發表頂會的。不要試圖從頭造輪子,而是基於他們的系統,做一些小的有趣的改進。這個需要的代碼量小很多,而且比較容易。改進後就看論文怎麼吹了。。。
LZ加油1.你最大的問題是能力問題,這需要時間來獲得,逃避不是解決問題的方法。
2.你最害怕的問題是不能按時畢業,浪費時間做不出成果。但是你到畢業為止時間都在那裡,你可以用來提高自己,到畢業的時候,你如果一直都在提高自己,那麼這幾年不能算浪費了,即使到最後你覺得沒有符合別人給你設定的成功標準。相反,你去折騰換學位找工作,不過是選擇了代價更大的途徑來提高自己,自費碩士要錢而且自由度沒有博士高,找工作刷底層代碼學習到的東西比起時間自由要求高的PhD來說也很有限。其實在我看來PhD是拿別人的錢提高自己,去找工作看的是真本領,對CS這種看硬技術不怎麼看學歷出身的專業來說,你的技術提高了,未來找到的工作更好,發展也更好,至於學位實在拿不到可以拿個碩士走人,也可以延期繼續找導師資助。
3.綜上,我選1,但是大前提是不要去看結果那個畢業標準來不斷給自己壓力和借口來逃避現實,而是看自己的能力提升。別人花錢讓你提升自己的能力,你能呆多久就呆多久。至於工作,這東西又不是越早出去越值錢,而是你的技術能力越不可替代你的年薪就越高,也越不愁就業。
還是那句話,你害怕一切的根源是能力問題,那就解決能力問題。而不是找一個不需要太高能力的平台給自己台階下,逃避自己的能力問題。
看看computer system方向的論文,一篇上得掛多少人名,尤其是頂級conference的,這個坑跳得...,不過還是可以抖機靈的,概率稍小而已
你本科背景是電氣工程?電氣工程的話會學數字電路,單片機會刷最簡單的彙編語言。如果你熟悉這些,我建議你讀sicp,先讀第五章,從底層開始實現解釋器,編譯器,順便刷完sicp,演算法,數據結構基本就算打通了。上可以學龍書,往下刷csapp都不會有壓力,而且你應該有信心,知道他們再說什麼了
從問題看q兄,做事思路清晰,如果能按思路2認真搞,補完計算機基礎,刷完leetcode,加上英語又好,拿個master及時捲鋪蓋去FLAG、或者Uber等創業公司根本就不是事啊。
這樣看起來,你的底牌可以說是如此之好~~~
何況再看兄台,骨骼精奇,資質聰慧,少說以後也是個架構師級別的人物,怎能不繼續做研究為工業界做點創新的貢獻呢?假設最差6年畢業,現在才1年半,基礎補完,我認為在distributed system,具體應用相關的交叉方向這麼多,理論是一部分,工程非常重要。如果有機會去工業界找大牛抱個大腿幫搬磚,完了偷師學藝,回來整整paper,最後兩年突突出成績有木有!!!
推薦閱讀:
※與同齡人志趣差異較大,共同話題少,偏好和閱歷豐富的人交流以提高自己,這樣是否自私且功利?
※為什麼雷鋒精神沒成為普世價值?
※家庭經濟普通父親病重缺很多錢,剛畢業應該工作掙錢還是支教然後讀碩?
※大多人的平凡人生有什麼意義和價值?
※原本很喜歡創業,不知道怎麼突然對金錢、急功近利產生了厭惡,反倒想活的輕鬆一些,多幫助別人、做一些有意義的事,並把這個作為人生的追求。但這種想法跟社會主流價值觀不相符,怎麼辦?