做博士還是做一個專業的程式設計師?

2016-03-23    分類:程式設計師人生、首頁精華2人評論發表於2016-03-23

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

當我從大學畢業獲得電腦科學學位的時候,我就想繼續學習並獲得博士學位。但是,我又想作為一個軟體開發者去參與工作,所以我在這一行中工作了五年之後,又回去唸了一年的博士學位,在作為博士生的一年時間裡,我發覺我更喜歡專業的軟體開發。儘管這已經是多年以前的事情,但我覺得這裡面我學到的一些經驗現在仍然適用。

為什麼要取得博士學位?

喜愛學習。我享受於學習電腦科學的每一分鐘。我一直都很喜歡數學和電腦,並且我在查爾姆斯理工大學的碩士課程就包括了大量的數學課程和計算機課程(軟體和硬體),以及常見的工程課程例如物理和力學。有這麼多出色和聰明的理念:拉普拉斯變換,控制理論,訊號處理,糾錯碼,堆排序,排隊論,等等。因為所有這些學習的東西是如此有趣,因此為了能繼續瞭解這樣有趣的內容,我覺得我有必要繼續去念博士。

別人會認為你很聰明。想去做博士的另一個原因做是為了顯示自己有多聰明。在現代薪資體系中,學歷是收入的另一個標準(儘管你需要花費數年才能獲得博士學位)。

博士學位的具體情況

在用了五年時間為行動電話交換機開發軟體之後,我決定是時候回去深造了,於是我去了瑞典隆德大學的通訊系統系開始我的博士學位。他們的其中一個研究領域是擁塞控制演算法,這很適合我,因為它適用於電信系統的同時大量應用了數學。他們也搞軟體開發研究,這是額外的加分點。

除了回顧一些數學和排隊理論,和上博士學位的課程外,我不得不決定研究方向。由於目的是釋出結果,那麼主題必須是尚未被研究過的。但是這裡的問題是,沒人期待結果如何(至少據我所知是這樣的)。我結束了在分散式系統的研究,包括一些模擬。但是,我的感覺是,我研究問題在某種程度上是為了有內容可發表。

博士工作的第三部分(除了上課和研究之外)是教學。雖然我只是排隊論課程的助教,但它讓我意識到在大學任教需要花費多少的時間和精力。

在瑞典,你是被大學錄用來做博士的,因此學校會支付你薪水。這聽上去挺不錯,但並不如你在行業中工作得到的多。在其他方面,我又回去做了一次學生。雖然當我在念碩士的時候我真的很喜歡做學生,但第二次去做真沒多少樂趣。所以在做了一年的博士學生之後,我決定這不適合我,於是又回到了愛立信工作,擔任一名軟體開發人員。主要的原因是我覺得我的工作變成了編造問題,而不是工作於真正需要解決的問題,以及還有薪資更低,又被當作了一個學生,當然最重要的是軟體開發比我在念博士期間做的程式有趣得多了。

我學到的經驗教訓

你沒有必要成為學生的身份去學習。這是我最明顯的教訓,而且令人難以置信的是,我花了這麼久的時間才明白這一點。在回到大學之前,我以為這裡才是“真正”學習的地方。在之前我工作的五年時間裡,總的說來,我並沒有花多少時間來學習更多有關軟體開發的內容:我學習了我使用的語言和工具,但僅此而已。

在做博士期間,我買了一本《Code Complete》,是它使我睜開了矇蔽的雙眼,讓我意識到有多少學習軟體開發的途徑。它不僅有很多研究的例子、關於程式設計各個方面的調查,而且它還有關於軟體開發很長一串的參考書單。這使我意識到,即使你不去上大學的課程,也可以保持不斷地學習。

現在,許多年以後,得益於如Coursera和EDX這樣的MOOC供應商,你甚至可以在業餘時間攻讀實際的大學課程。我抓住了這個機會,接受了第一批中的一門課程,“Introduction to Databases”,以及其他。

博士學位不會讓你變得聰明。雖然的確有很多的聰明人獲得了博士學位,但也有很多很多的聰明人並不具有博士學位。於是我意識到,是不是博士並不是聰不聰明的標記。同樣的,能不能相出巧妙的點子和是不是博士無關。

變得泯然於眾。我發現當我帶著博士頭銜和其他人接觸的時候,我變得非常謙遜。也就是說,我還不如以前能給人留下深刻的印象。我試圖不論學歷地來評估一個人。我合作過也見過形形色色的人,聰明的和沒那麼聰明的,聰明和學位不相關。

狹窄化的問題vs.大範圍的問題。研究人員通常研究那種很窄的問題。例如:給定某個到達分佈和良好準則,那麼最優的擁塞控制策略是什麼?雖然這些都是要學習和理解的重要內容,但是我更感興趣那些大範圍的“是什麼導致軟體成功”的問題。以電話交換機為例,為了成功,它必須在很多方面都執行良好。它必須有足夠的能力,但是不能崩潰,它必須很容易配置,它必須很易於尋找故障,等等。擁塞控制只是眾多問題中的一部分,只給出這個問題的解決方案是不夠的。

我意識到我更享受工作於大型軟體系統所要面對的挑戰,即必須每個方面都做到位,而不是研究一個很窄的細節性問題。

擁有使用者的快感。當我啟動博士程式的時候,我才發現有使用者的重要性。研究於我自己選擇的問題,而沒有任何人熱切地等待著結果,真的讓人特別提不起勁,相比之下,工作在有著許許多多使用者的系統上,那就別提有多興奮了。我新增的功能和我修復的bug將對很多人產生直接的影響,我真的很懷念那樣的感覺。

選擇的價值。由於我在開始博士之前已經工作過一段時間了,所以我知道選擇是什麼。我的意思是,大多數人在拿到碩士學位之後立即去讀博士,意味著,他們不知道非學術界的工作是什麼樣子的。在大多數情況下這可能無所謂,但有時知道你錯過了什麼很重要。

結論

我很高興我嘗試過做過博士,但我也很高興,我在一年後選擇了離開。做一個專業的軟體開發人員讓我更有幸福感。而且,我很高興這並不意味著學習的結束。與此相反,我依然可以學習很多有趣的領域,並且有大量的學習資源可用。

譯文連結:http://www.codeceo.com/article/phd-or-professional-programmer.html
英文原文:PHD or Professional Programmer?
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章