開發人員如何轉行去做教師

老碼農發表於2013-04-13

最近有個朋友問我:

我最近在考慮像你那樣在大學或中學教一門程式設計課。你能指點一下我怎麼去更深入瞭解這些機會嗎?要教大學的課的話,我是不是需要先拿個碩士學位呢?你當時是怎麼去接觸學校談教學的?

對於業界的程式設計師碼農去教電腦科學課程的想法我是非常贊成的。有實際經驗的人能給課堂帶去實際工作的視角和酷感,這些是專職教員們模仿不了的。而在教學過程中對主題的深入探索也會讓碼農從業者們提高學術嚴謹方面的素養。子曰:“能教,方為知也。” (嗯,這是老子說的。。。)

我整理了一下給朋友的答覆,如下所示:


如果我計劃去教大學課程,是否需要先拿個碩士學位?

一般正規大學都要求教授擁有博士學位。一般來說他們的博士學位都是從更牛的大學獲得的,很少有本校博士留校任教的情況。不過,也有一些全職或非全職的教學崗位不需要博士學位,這種崗位叫講師(在英國,講師的意思又不同了)。例如賓大(賓夕法尼亞大學)就總是有一些講師的空缺。

研究性大學可能會更希望講師有博士學位,但是作為硬性要求的則只是碩士學位就可以了。沒有博士學位,你會碰到困難( glass ceiling),例如不能引入新的本科生必修課,不過如果你的點子夠正,也不是完全不可能。很多大學特別是那些只招收本科生的,或者是大部分畢業生都去業界工作的,會允許講師只有學士學位 — 尤其是當他們有豐富業界經驗的情況下。

(譯註:the glass ceiling effect 意思是天花板效應。這是一種比喻,指的是設定一種無形的、人為的困難,以阻礙某些有資格的人(尤其是女性)在組織中上升到一定的職位。)

所以,碩士學位不是教學必須的,但它能增加你的選擇面,並有助於你形成學術圈的人脈網路。

你當時是怎麼去接觸學校談教學的?

我沒去過。我當時很幸運。我去賓大的時候認識了一堆人,特別是Joe Kider,他們鼓勵我去申請教GPU課程。

當然也不可能總是這麼簡單,不過有一些辦法…

在本地的某個大學做一次演講(talk)

這有兩種方法:

找到相關課程的教員,毛遂自薦做一期嘉賓講座。基本上所有的電腦科學系會列出它們當前的課程表。另外,教員都有個人網頁,上面有他的郵件地址。比如,有一個賓大的教員。你可以給他寫封簡潔的郵件,說明你的工作地點,想講解的主題,以及該主題和該課程的關聯。如果能拿到他上課的PPT會更有用,不過我個人從來沒看到過。

總的來說,教員很喜歡嘉賓講座,特別是對於研究生和研討會型別的課程。實際上,我就花了很多時間去找嘉賓來做講座。因為我教的是GPU課程,我特別希望有來自GPU廠商、遊戲工作室、研究實驗室等機構的人來做講座。即使我來自業界,嘉賓往往會帶來其他的視角。實際上,要是有合適的講座嘉賓來,我寧願取消我的一次課程。這些講座是一學期裡的亮點。

確保找到合適的時機。例如,不要在學期只剩兩週的時候給教員寫郵件問能不能加個講座。很難說什麼時間點是最好的,因為教員要做的準備工作因人而異。我通常會在學期開始時或開始前一個月就敲定嘉賓講座。給你個警告:課程的第一週往往會很瘋狂。

還可以找到你感興趣的領域的一位教員並毛遂自薦給全系做一個講座。這也很好,因為你會遇到更多的人,而且有時教員也不願意把課堂時間讓給你。大部分系都會有一系列研討會,讓學術界或業界的來訪者介紹他們在做的工作。例如,這裡是賓大的研討會。很多時候是關注研究的,但也不一定,尤其是在小一點的大學。

當年我做碩士論文答辯的時候,我請了本地大學的圖形學教員參加答辯會。他們一個都沒來,但結果我被邀請去參加了Villanova大學的研討會。我的工作不完全是研究性質。它在一兩個地方有點創新,但它更像是說“這是對某個領域的調研,一個很酷的專案實現,配上仔細的總結分析。”我覺得大部分的業界人士都能準備出一套這樣的講座內容。

有一些做講座的動機如下

你對某個想和其他人交流的主題很有熱情。如果不是這樣,教學工作就不適合你。

做講座和教學不一樣,但也是很好的經歷和相關的經驗。

這對發展人脈網路有利,即使目前在該大學還沒有空缺職位。

 

在會議上做專題演講

在會議上做演講有很多好處是和在大學做講座一樣的。它有利於分享知識,增進經驗,發展人脈網路,特別是在很多學術界人士參與的情況下。

得到在學術會議上做演講的機會有可能很難,取決於會議的具體情況。我曾被拒過很多次。別擔心,每個人都或多或少地被拒過。

像SIGGRAPH這樣的大型學術會議的講座競爭激烈,但比較可行的是加入某個已有的專題,或者和別人合夥成立新的專題或小組,或在非正式討論會(BOF)上發言,甚至組織你自己的非正式討論會。在學術界人士眼裡,非正式討論會這樣的形式可信度不高,但它還是會很有意思,也是很好的經驗和人脈網路形式。

大型會議並不是唯一的選項。你所在公司的使用者大會就是一個更簡單的機會。還有當地的一些聚會也行。更小型的或者業界的會議也是不錯的機會。

你還可以在公司做演講來增加經驗。大部分地方有自備午餐的嘉賓講座活動。這種場合有助於你結識某些能邀請你的人。例如,我曾經通過以前在IBM工作時的朋友幫忙,在麻省理工大學的林肯實驗室辦了一個關於我們的WebGL引擎Cesium的講座。

在本地的中學辦講座

現在大部分中學都有電腦科學甚至高階電腦科學課程。教師們都喜歡有業界的人來給他們的學生做講座。這能彌合上學生在教室裡看到的知識和他們在現實世界中能做的事情之間的鴻溝。

I我有一陣子回到我畢業的中學。有一次我寫了一小段Java框架來玩五子棋。在多型性的一節課上,學生們可以把他們的人工智慧演算法實現到一個類裡,然後他們的人工智慧演算法可以互相玩五子棋。我甚至找了一些朋友也實現了他們的人工智慧演算法,這樣學生們還可以和高手們PK。

教師們也會歡迎你去講述你是如何做開發工作,你每天都做什麼,以及你對學生們有什麼忠告。這樣的一個講座準備起來也是很快的。

其他想法

對於在Udacity這樣的線上課程網站,雖然我除了給他們做過審稿人之外沒有什麼經驗,但我還是覺得教這些課程也是個機會。在這裡和學生的互動形式挺不一樣的,但是它也還是有回報的,你也可以通過它結識很多人。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

開發人員如何轉行去做教師 開發人員如何轉行去做教師

相關文章