臺灣的資工系好像都不是資工系

我所認知的理想的資工系應該是要像美國主要大學(Havard, MIT, Berkeley, Stanford 這些)的資工系那樣。

前幾天跟 jserv 前輩聊天,他說臺灣的資工系幾乎都淪陷了,很多CS基礎的課程都不開了,他舉的例子是正規語言和程式語言,這兩門課在臺大和成大資工都已經數年沒開了(但據說臺大明年要恢復正規語言)資訊有誤,見留言。這些系反倒是開了一堆創業、寫app,或是非常高階很專精的課程。他覺得交大資工很好,是臺灣最正統的資工系,意思是大部分正統的CS課在交大都還有。

我補充我的觀察,創業課程在交大資工只有1門,交大資工沒有寫app或是網頁開發的課程(但是電機系有,神奇)。這類的課程確實本來就不是CS,只是有了之後對學生會有很大的幫助。

雖然交大資工確實還有正規語言、程式語言這兩門課,但是老實說這兩門課的教學狀況都不是很好,正規語言是我親身經歷,程式語言是聽學長轉述的。

正規語言老師上課就是介紹課本的各種觀念,依照課本的進度這樣教下去,講完一個觀念會有一些 example 演練這樣。沒有作業,只有期中考和期末考。這樣我覺得大致沒什麼問題,因為正規本來就是比較概念性、思想性的東西,習題就幾乎只是練習用課本裡面教的專用符號表示這些概念,重要的是概念本身不是符號,所以不出作業這點沒什麼問題。這門課其實有點像……概念非常困難的通識課,就是懂了就可以。

程式語言據學長說法狀況就比較糟,有位老師花一整個學期講某個 functional programming language 和 functional programming 的概念,但 functional 其實只是 programming paradigm 裡面的一種而已,只講 functional 太狹隘;另一位老師則是用一整個學期快速教了5種程式語言,不講程式語言的分類或是設計或是寫法習慣的不同。

其實也是聽 jserv 一講才知道原來交大資工算是「正統」的 CS department,只是那只是表象而已,內容物有很多是爛的啊。

林正中數位電路實驗雜筆記

本篇內容乃道聽途說而來,目的在於快速了解數位電路實驗到底要怎麼做以及諸多抱怨,目前是很簡略地寫給自己看,要是有哪裡看不懂可以問,也歡迎修正內容。

暫且以編譯一詞代表 ncverilog -f

工作站是非常舊版的 Linux, vim 版本只有 6.3 超難用。

如果不用 screen 的話編譯到一半斷線編譯也會一起中斷,GG 。

在同一個資料夾內只能同時進行一次編譯(編譯進行中會產生鎖定檔來阻止另一個編譯同時進行),只要多複製一個資料夾就可以同時編譯了~

測試運行的方法:ncverilog 編譯 主檔案 TESTBENCH.v ,testbench 會 include PATTERN.v 和你寫的 module 進來,pattern 把資料餵進去你的 module ,然後檢查 module 的輸出。

假如這次你要實做的 module 是 decoder 好了。
Testbench 負責把 pattern 和 decoder 用線接起來。可以去看看,pattern 的輸出就是 decoder 的輸入。

01_run.f 這些檔案定義 macro, 讓 testbench 去 include 不同實做 level (behavior/dataflow/gate level)的 decoder 進來,有點像 makefile 。

要怎麼依照給定的 timing waveform 做出 pattern ?
(去看 PATTERN.v)initial 就是 t=0 (時間等於零啦)的時候,接下來可以用 # 符號表示等多少時間單位之後做什麼事情,例如 initial 輸出某特定值給 decoder,然後馬上檢查 module output 。
接下來 PATTERN.v 寫了 #5 ,就是維持目前 PATTERN module (PATTERN 本身也是一個 module )的輸出,5時間單位之後再繼續進行 #5 之後的動作,像是輸出另一組值給 decoder 以進行檢查。

大多數資訊都是由阿飄提供。
和認真好朋友修課都會變得認真起來。

這門課助教和老師提供的資訊都很 confusing ,很多資訊得要學生自己找、花時間理解。對於這種我沒什麼興趣的東西我才不會做這種事,要是沒有這麼認真的同學的話我早就放掉這門課了。後來意識到老師這樣(不論他是有意還是無意),也可以促進認真的學生自主學習,甚至鼓勵同學之間互相討論。對於從小拿到精美整理的教材的台灣學生來說這是一個轉變,這或許才是真的大學吧。不過對於本來就沒什麼學習動機的人這只會讓他們更傾向放掉這門課吧。(放掉的意思是蒙混敷衍過關,非認真學習而真懂)這樣的教學對於激起學習興趣大概也有負面影響。不過至少數位電路設計比起線性代數更容易看出實用價值太多了。

譯:電腦科學有哪些領域重數學?

源自 https://news.ycombinator.com/item?id=6503176

看到回應的論點我很喜歡,閒閒沒事就把它翻譯下來:

Q: 電腦科學有哪些領域重數學而且職缺很多?

我是一位正在考慮雙主修電腦科學和應用數學的大學生。我想找一個重數學的電腦科學領域來鑽研。我喜歡數學的實用性和簡潔,我正在尋找一個會用到各種數學的電腦科學領域。

我也傾向於選擇變動比較慢的領域,所以大概不會選像是資訊安全這樣的領域。

我知道圖形或機器學習應該是會用到很多數學的領域,而且職缺很多,但我希望得到更多建議。

A1: 我覺得你對電腦科學保持錯誤的期待,結果很可能令你失望。

現在很多地方需要程式設計師,好的程式設計師會花90%的時間寫程式。許多人,包含你都認爲圖形程式會用到很多數學,其實不然,你可以去看看 DOOM 的歷史和原始碼。雖然 DOOM 的程式在當時是頂尖科技,大部分的程式碼都是和數學無關的苦差事,讀寫檔案、網路通訊、高效能 array 和 string classes 、跨平臺、跨 compiler 的相容程式碼、除錯用程式碼……等等。Carmack (譯註:大概是 DOOM 的作者)確實懂很多數學,但是他八成更瞭解 C 語言。

數學或許在很多領域當中有幫助,甚至是必要的,但是如果你想的是成爲程式設計師(而非大學教職、學術研究人員),別指望數學會佔用你超過 10% 的時間,對大多數程式設計師而言,90% 的時間還是得要花在處理和數學無關的其他苦差事上面。

回顧各種關於線代用途的評論

本文原本是對於金國興教授對於我在交大資工的心得的回覆的回覆,但我覺得直接回覆他好像是在針對他,這些話應該是針對那些告訴我線代有何用途的教授,那些回覆我線代用途的人如果不是教授也值得一看本文。

這篇大概才是我寫那篇心得所希望帶來的改變,我希望帶來改變而不是得到一堆「線代很有用」、「線代有某種用途」的評論。心得沒有導致教授們理解到這些我所希望的改變是因爲,那篇我本來就不是寫給教授而是自己看的,打算帶進主觀情緒來寫,也沒有料到會有這麼多教授來回覆我。

—–

謝謝您又提供了另一種線代的應用。

不過很多人在我的 blog 做的也只不過是這樣,我期待的是教授們看到這篇文章,把它轉給其他的教授,慫恿教授們改變教學方式。

也就是說,爲什麼您做的事情是花時間在這個 blog 上面留言,而不是去跟其他教授(甚至反省自己)說,我們的教學方式有問題?以我看來第二種做法能帶來更大的效益。(當然兩種都做更好)

這篇文章(心得)的目的不是要讓教授們來回我,告訴我線代可以做什麼,而是希望系上的課程能夠有所改善,教授們能夠有所改進。

這邊的各種關於線性代數應用的評論,比起我在線性代數課程中學到的有價值多了,可是爲什麼不是在課程當中就提到這些東西?這樣我還可以省下寫文章的時間。

我在線性代數課程學到的是什麼?教授跟我們說怎麼做計算、介紹我們瞭解線性代數各種名詞的定義與概念,但是這些東西有什麼是我不能從 Khan Academy 學到,甚至是自己看書就能理解的嗎?

可是線性代數的各種應用,是 Khan Academy 不會提到的,曾經需要利用線性代數解決問題的人,才會有這些觀念、方法是如何實際應用的經驗,這也才是我在大學所期望學到的。

如果你說,這些東西不應該是由大學來教,那大學的線性代數課程應該要學什麼?我真的不知道答案,我進來大學也不過1年,如果您願意希望您講一下您覺得大學應該是要教些什麼、學些什麼。

如果你說,這些東西不應該是由大學來教,是我抱持錯誤的期待,那教授們是不是應該去想辦法瞭解,學生對於大學究竟有什麼期待?然後試着去滿足我們的期待?因爲在這個教育體制下,大學是我們這種 PR 90 ,或許70 ,以上的學生唯一的選擇。學生被家長鉗制,我們無法改變什麼。但是您是教授,雖然我也猜到教授會受到各種制度、經費、上級、升等壓力的鉗制,但是教授擁有的影響力依舊比學生多太多了,何不利用您的影響力幫助學生一下?

我並不是說教授和學校必須完全符合學生的期待,我是說師生之間值得溝通,我和幾位教授聊過,我認爲教授們對於學生、大學的目的等等的期待,與我們學生有頗爲嚴重的落差。但我也瞭解現在大部分學生不喜歡向教授表達意見,很多人都有所意見,但是見到教授時,往往又選擇保持沉默。對於我這種樂於表達意見的學生,某教授也對我說過,我一個人無法表示多數,多數人的沉默讓上級無法有所改變,因爲通常沉默就表示沒有不滿,不需有所改變。

我表達意見時,時常遭遇到的困難是,很多時候教授沒有真正認真理解我的目的、我的訴求,時常帶着開導的心態來回應。開導的人並不認真思考、瞭解這些抱怨背後的原因,而是覺得「你還年輕、你之後就會瞭解」、「我有經驗,這些經驗可以幫助你」,並努力說服被開導的人不要抱怨、認真培養實力、以我的經驗爲指標等等,開導的人沒有不好,只是這並不是我表達意見的目的,也不是我想聽到的回覆。

如果教授真的想要幫我,幫學生,去聽聽看別的老師的線代課,甚至別的課吧,想想我爲什麼對於線代課會有這樣的評論。

如果您真的去聽了別的老師的課,那我在此致上敬意,並懇請您與我分享看法。

服務學習教授訪談心得

總之因爲服務學習神奇複雜的原因,所以我們這組要去跟教授訪談(並記錄、寫報告)。今天訪問的教授是我上學期的線性代數的教授。

這篇的重點是訪談的問題之外的談話。

訪談的問題結束之後,教授開始跟我們閒聊,他提到我上學期問他「爲什麼要學線性代數」的 email ,他說的大概是:「我看到這個問題就很興奮,這個問題非常有破壞性,首先你有提出你的想法,然後再問我的想法。能夠提出你的想法表示你有思考過這個問題。但是我身爲大學教授當然不能像國中老師一樣直接給你答案,我只能指引你方向。我後來期待我們會有後續的對話,但是很可惜並沒有。」我也老實的告訴他,我沒有再回他的原因是我對他的回覆非常不滿意,我決定不再問教授,我要自己找答案。

他也提到他第二次對我產生深刻印象的事件。從學期中後我上他的課幾乎都是帶着耳塞坐在最後一排自己試着讀懂線性代數的教科書,有一次他下課經過我旁邊突然問我耳朵上的是什麼東西,我跟他說是耳塞,他問爲什麼要戴耳塞,我當時差不多是這樣跟他說的:「我覺得你上的東西我都聽不懂,還倒不如自己讀。」這句話隱含着我想要表達的含義是:「我覺得你教的很爛。」當時內心帶着點憤怒這樣跟他說。拉回訪談當下,教授又問我:「那你爲什麼還要出席?不在宿舍讀就好?」我也誠實的回答了他:「我怕你會點名,以防萬一。」我也跟他坦誠,自己讀的效果也並沒有好到哪裏去,跟聽他上課一樣會睡掉一半,大概是翻1頁就會睡半個小時。還好最後有 Khan Academy 救我,雖然沒有救到考試成績,但至少我對線代有最基本一點點的瞭解了。

這次的訪談是我在前2週的導師時間詢問他的。他說當時要是問他的不是我,他也不會那麼輕易的答應。

我自己是很高興教授對我印象這麼深刻啦,這樣要拜託教授幫什麼忙的時候比較容易。

從教授的各種說法看來,我發現教授對於大多數的學生,太過於理想化(高估)他們的學習興趣和動機。在我看來一些人是直接把大學當高中念的,意思是說,學校、教授、家長告訴他們要念什麼、什麼是必修科目,他們就去修這樣,這些人恐怕也就是考試過了、作業交了即作罷,然後出去莫名其妙的當個工程師或是賣雞排這樣。這是他們自己的選擇,不是不好,只是我並不欣賞這樣的選擇,我自己也絕不會做這樣的選擇。但是教授似乎都認爲,會來修這門課的,一定是瞭解這門課的大綱、修課的原因與目的,或是有興趣的。教授似乎並不瞭解這些人的想法,但也是情有可原。

我有點不滿,爲什麼我問教授「爲什麼要讀線代」這個問題的時候,他要我自己找答案;但在線性代數的課程上,卻不斷的用作業、考試塞給學生一題又一題的答案?教授或許是認爲,來修線性代數的學生都已經瞭解自己爲什麼要修線性代數了(除了「線性代數是大一上必修」這個原因),會主動問他這個問題的人想必是不知道答案,需要指引,所以纔會這樣給我指引。而若沒有問問題的人,就通通當作沒有問題。理想狀況下(學生已經瞭解爲什麼要修線性代數),這樣操作確實是很好,但是現實狀況並非如此,教授這麼做也昧於現實。

但又想想,如果第一堂課就花時間簡介線性代數、說明爲什麼要學線性代數、又爲什麼要當作必修,對於那些從來就不打算瞭解「爲什麼要學線性代數」的人來說,大概也不能造成什麼差別。

SA/NA 應該納入虛擬化技術相關的教學

前情提要:SA/NA 是交大資工的2門課,分別是計算機系統管理 (System Administration) 和計算機網路管理 (Network Administration) 。

虛擬化環境是現今很多服務的基礎。我覺得對於虛擬化的瞭解應該已經是做一個系統管理員的基本了。

所以身爲專業的系統管理員培育課程的 SANA 課,再納入虛擬化的東西應該會更好。

畢竟就連作業架 server 的環境都是虛擬機了,當然應該要先瞭解虛擬機的技術再來其他的東西啊。

不過照現在的課綱要再塞虛擬化進去也不容易吧,勢必要做一些調整/刪減。

在交大資工一個學期的觀察與心得

小提示:如果你是高中生,可以先看給高中生的大學選校系建議

前言(寫於2013九月)

實在是太多人在下面留言告訴我線性代數到底有什麼用了,看到這麼多相似的留言我已經有點膩了。我寫這篇的目的也不是想要知道線性代數的用途。

這篇文章似乎很容易讓人抓錯重點,這篇本來只是寫給自己看的,我也沒料到會在搜尋引擎衝到那麼前面。不過我不打算因爲流量衝高就去修改內文以澄清我的重點。

有一位朋友私底下和我說(在文章發佈很久以後),這不過就是我來錯地方了,這地方的風氣不適合我,我覺得大概就是這樣吧。

可以這麼說,我來到(交通)大學,然後發現這個地方和自己先前所想的不一樣,於是寫了這篇描述我原本的預期或是理想。就風氣這方面來說,選大學是場賭博,因爲要進來之後才能體會這究竟是不是對的地方。

我大致上不喜歡這個地方,但我也發現這個地方爲我所提供的也並不是完全沒用,也不盡是壞處。並且,這些壞處不值得我再去賭一次,意思是我會繼續待在這裏。只是我發現的這些好處和待下來的理由,和我原本的預期、一般學生的理由、教授認爲讀大學的理由已經不一樣了。也沒關係,就各取所需就好了吧。

正文

在交大也一個學期了。寒假聚餐時聽臺大資工的同學談臺大的情形,也有點感覺到兩個學校不同的…應該說中心思想吧。

必須承認,我非常笨的以為到了大學就可以做自己喜歡的研究,自己學想學的東西,但這兩件事情其實在交大受到了嚴重的阻礙。

從小學還算愉快,到國中悲慘的3年,再到附中…我大概是從國中就對電腦產生濃厚的興趣,到了附中加入網管之後才篤定要將電腦作為我一生的職志,不管做什麼工作,反正大概就是與電腦相關。所以從上高中開始我讀書的主要目的就漸漸變成「拿到不會太爛的成績」,然後把其他時間拿去玩電腦(主要啦,社交活動、打遊戲的時間老實說也不少)。那時候生活的主要目標就是電腦、社團,讀書從來不是目標,讀書只不過是為了達到目標而必須克服的障礙。考大學呢?考大學在我當初以為,也是一個阻礙,讓自己有更多自由時間的阻礙,為了讓自己未來有更多自由時間,我犧牲考大學時的自由時間。

進了交大才知道,交大比起附中並不會讓我有更多時間,反之在交大,取得自由時間的阻礙更大了,意味著我必須花更多的時間才能克服這個阻礙。

我不知道該說我笨、天真,還是我從小學到高中都是被制度、家長、老師騙著長大的,被騙著以為大學就可以做自己喜歡的研究、自己學想學的東西(理想中是由我自己訂想學什麼,然後自己找資料學習,遇到瓶頸問教授,研究完成之後交報告,沒有考試)。不管是哪種,到了交大,一廂情願以為從此可以自己學習(或至少更接近自己學習)的理想正式破滅。

大一上我覺得我90%的心力都在對付線性代數與微積分,尤其是線性代數。線性代數的抽象讓我難以理解,每每遇到瓶頸,我又會開始思考究竟為什麼要讀線代,我問了老師,「為什麼我們要讀線代?」,老師回答的還是老生常談 google 一下或是看維基百科就可以得到的答案:「線代在圖形處理、訊號處理等方面非常有用 blablabla」。這我也知道啊, but shut up and show me the code ,哪個計劃、哪隻程式使用線性代數解決了什麼問題,這活生生的例子才是我想知道的,我想知道線代究竟實際上可以幹嘛,而且我要看到原始碼。但是畢竟是我一開始沒有講清楚我要的是什麼樣的答案(第一次問問題就這麼直接的問如此特定的問題,還要求教授舉例,這似乎也有點咄咄逼人,不太禮貌。這是兩難。),教授自然也不太可能給我我想要的答案。得到這個完全沒用(google 都知道)不滿意的答案之後,再加上我作業已經好幾次沒交(此教授的作業幾乎都是是該章節課本習題全部),上課一直睡著(不是故意的,是因為聽不懂…),小考成績很差,我也不好意思再回教授說:「這不是我要的答案」。我不希望讓他覺得說這學生自己不唸書、態度不佳還來問我這種問題,要我給答案。這不知道為什麼而學的感覺讓我格外痛苦,一方面我覺得到了大學不應該再是家長老師告訴我們要學什麼就學什麼,一方面那時我還有自己程式的計劃進行中(這計劃完成之後說不定可以賺錢),不能把時間分配給有用(能賺錢)又有趣的事情而要費心讀一個教授說很有用但我卻找不出到底有用在哪裡的科目。

當初,在我心目中的排名,交大資工是比臺大資工還要好的選擇,想要進來交大資工的原因很大一部分是因為我覺得我在交大資工比較有機會遇到真正對電腦有興趣的人,而不是那些因為資訊奧林匹亞保送進大學的人,我覺得資訊奧林匹亞的某一些人,他們「數學很好」、「對數學有興趣」,但是他們有興趣的是數學,不是電腦。我想遇到的是對電腦有興趣的人。

題外抱怨一下,我覺得資訊奧林匹亞沒資格稱作「資訊」奧林匹亞,「演算法奧林匹亞」才是比較符合事實的名稱。

確實,我在交大資工遇到不少真的對電腦很有興趣的人,這些人有一些以前也有自己努力研究過電腦的東西,具備實力。但我看到一些人不是在(試圖)發揮/提升自己的實力,打造自己的 project 之類的,而是為了應付各種的作業、考試而忙得不可開交。或許他們單純是被課業壓住,或許他們覺得學校的課程是提升實力比較好的方法,但我認為接 case 、做 project 這是比較好的方法。更何況我覺得做 project (不管後來是為了要創業,或是單純 opensource 出來)是對這世界比較負責任、有貢獻的做法。電腦、網路給了人類很大的力量,對於這些實力已經足夠改變世界(就算是一點點)的人來說,為什麼不是去思考如何讓這世界(或者狹窄一點,臺灣社會)更好,而去花時間做好考試、作業?身為臺灣頂尖的交通大學資工系學生,又正處於人生最有創造力的幾年,為何要選這麼多課,花時間學這麼多東西,而不是利用這種優勢去改變世界、回饋世界?

對於那些單純想要在學術界鑽研的人,他大概也覺得沒什麼關係吧。我是比較喜歡關心社會罷了。

希望臺灣能再有多一點人致力於改善臺灣。

上面講的改變世界,或許有人看了會覺得我太理想化,當然有些人會是比較顧慮現實面。我所抱持的理念是:「只有那些笨到以為自己可以改變世界的人,才能真的改變世界」至少在我還相信這一套的時候,在我未來或許被現實逼得無法再相信這一套之前,我還是要為這世界、為我所相信的東西做一點事情。

即使我能做的不過是送個 bug report , 翻譯一些自由軟體,轉貼、瞭解、思考反媒體壟斷、關廠工人的議題。

聽臺大資工的朋友說,最近接了什麼 case 、有學長姐回來找人做 part-time ,我覺得很羨慕。交大在這方面的機會比較少,比較需要靠自己爭取。以臺大、清大、交大來說,我看來交大的創業風氣是三校當中稍弱的。臺大有創意創業學程,這可能不代表創業風氣,但至少表示校方有著墨在這塊。聽臺大的同學說很多回來找 part-time 人員的都是學長姐開的公司。清大和交大的一些學生有(應該算是)合辦 AppUniverz 。我比較有明顯的感覺臺大的創業風氣比交大盛行,清大的情形我就不清楚了。

我有去過交大創業俱樂部(非正式學生社團)的聚會,跟裡面的人聊天之後發現,大部分的人都有想過要創業或是做 project ,只是顧慮到課業上的壓力、自己的能力、創業的機會,大多都沒有著手實現。創業俱樂部以外,我也聽到一些學長在討論創業或是 project 的構想,並且有幸認識一位學長做了很多有趣的計劃,其中很多都 opensource 出來了。

想想自己,在交大的這一個學期當中,也有很多需要反省改進的。時間的利用上我做的特別糟,作業幾乎都是前1、2天才開始趕工,禮拜四下午的作業交出去之後的這段時間最頹廢,因為到了禮拜五下午才需要再去上課,就會覺得自己時間好像很多,於是就開始看電影、聽音樂、打遊戲之類,有時候做的事情更少,因為線代遭遇到重大挫折然後就開始思考究竟為什麼要讀線代、為什麼要讀大學,想了很久總是得不到答案,陷入憂鬱狀態地做什麼事都提不起勁,不想洗衣服、不想洗澡,什麼事都不想做,就只是坐在椅子上逃避、拖延,然後整個禮拜四就耗掉了。睡眠時間也比高中時長多了,不是每天都需要6點起床,睡眠也就睡得很不規律。躺在床上的時間8、9個小時,其中睡不著,或是醒了但是賴床的時間就佔了1、2小時。

高三時喜歡交大資工有很大一部分的原因是 CCCA ,交大網路策進會,雖然它倒了,但是我那時候想說繼任的 NBA 應該會有類似的性質、環境。為什麼會喜歡 CCCA ?因為我在附中網管 CNMC 受到很大的啓發、學到很多東西和經驗,附中資訊中心給 CNMC 的權限和資源相當大,這是超級難能可貴的。我期待到了規模更大的交通大學,我可以在 CCCA (NBA) 學習到更多專業知識和難得的網管實務經驗。

後來發現 NBA 和交大校計中的實際狀況和我想的真的是天差地遠,NBA 的資源(設備、經費、權限)與 CNMC 相比少得可憐。NBA 根本不是 CCCA 的繼任者,而是完全被砍掉重練,而且校計中以我看來也沒有想要「重練」它的意思,完全就要靠社員自己。社團內部的課程也都還沒有上軌道,以我看來社團的宗旨也還不夠明確。

我也在 NBA 開一些課,希望哪天計中看到我們的實力能夠給我們更多的機會和資源。雖然這幾堂課我自認都還頗認真準備,但是整體的課程來說,我對自己也不甚滿意,這幾堂課(好像3堂吧)只能讓聽衆學到零碎的知識,缺乏整體的認識。因為我自己時間上的限制,沒有辦法每週開課,我覺得教學的效果頗為有限。就連 CNMC 完整2學期+寒暑假的課程我都覺得稍嫌不足了,何況是這短短3堂課。

光是關於 CNMC 、CCCA 、NBA 、兩校計中的環境,這就可以寫一整篇了……

隔週週一晚上的 PyHUG (Python Hsinchu User Group) 是我一整個禮拜最快樂的一段時間(另一段快樂的時間是週二的神經科學導論),雖然老實說,我從來沒有寫過 Python ,短期之內也不打算學(因為沒有需要),PyHUG 講題我也很多聽不懂。快樂的地方在於可以互相技術上的交流、瞭解老師、同學之外的人的生活、價值觀。我在 PyHUG 聽到許多新技術和工具,像是 Scrapy 拿來做 crawler 看起來頗方便、RabbitMQ 的用途還有某公司究竟是如何使用 RabbitMQ 等等,雖然我短期之內可能用不到,不過我至少知道了新工具、新方法,未來遇到問題的時候用這些工具解決起來應該會比較輕鬆。光是認識這些人,跟他們聊天,其實就很開心,跟他們講我最近在玩什麼,比起同學他們會比較聽得懂。

至於神經科學導論,喜歡這門課的原因很大一部分是因為我真的有興趣,教授的教法也適合我,最後我覺得我整學期學到最多的也是這門課。現在想想,「有興趣」和「教授方法」對「會不會學到東西」有重大的影響。我對線代完全沒興趣,再加上不適應教授的教法,導致線代最後應該是教授幫我加到60分我才過的,老實說我自己覺得我也並未瞭解線代、觸碰其核心想法,根本不具備通過這門課的資格。我對微積分起先沒興趣,幾堂課之後逐漸熟悉教授的教學方法,剛好跟高中三年的數學老師很類似,後來有感受到一點微積分的微妙與有趣,興趣漸漸提高(感謝這位教授)。另一堂法學緒論是原本自己有興趣,結果選到的教授卻只會照講義念,學到的也不過是民法和刑法上的各種名詞、概念,大部分與高中公民重疊。

從學期中開始,我有越來越強烈的想法開始覺得,很多的東西都可以自己靠網路學了。記得神經科學導論的教授剛開學的時候提到,這門課不需要買任何書籍,如果想要複習的話,可以去看投影片和維基百科。我去讀了維基百科的一些條目,如 Neuron , Brain ,我十分訝異於這些條目的詳細、結構分明與容易理解。看完了 Neuron 一整個條目,我就已經瞭解神經元的運作(瞭解程度差不多剛好到通識課程的難易度與詳細度),而且到了寫文章的這時候,雖然許多細節忘掉了,但是我發現整個大圖像 (Big picture) 還是清楚的,我的整個骨架都還記得(學起來了),就差細節可以隨時再從維基百科填補。維基百科真的幫助我在神經科學學到了不少。

另一個親身經歷又讓我加深了這種看法。線代課程我的進度一直是落後的(因為完全靠自己讀課本),剛開始是一章、然後2章、3章,學期中我意識到如果我再只靠這個方法大概永遠也追不上,我想起先前在網路上看到的 Khan Academy , 它是一個類似開放課程的線上教學網站,我去試聽了一堂線代的影片(很前面的章節),發現我居然聽得懂,於是就再聽第二個影片,也聽得懂,然後幾天之後我已經補完一個章節了(雖然說我依舊是懶得寫習題)。不像真的老師,因為他的課程是影片,所以看不懂的地方可以一看再看,要是不小心睡著了也可以重來,也可以快轉(像是他在計算矩陣相乘時我就可以跳過)。影片的長度7~30分鐘,相對於教授的課程上需要注意力集中50分鐘,要維持30分鐘注意力的集中簡單多了。(因為對線代沒興趣所以注意力沒辦法集中很久……)

網路上的資源這麼多,除了維基百科和 Khan Academy ,全世界很多的大學也都有開放式課程,就算不是 MIT 、哈佛的學生,也可以免費享受他們高品質的課程。我不禁開始想,那讀大學究竟是為了什麼?上大學最主要的目的不就是為了要「學習」嗎?如今這麼多的學習都可以透過網路和圖書館自己完成,那教授為什麼還要教這些我根本就可以自己學的東西?教授還應該繼續教線性代數、微積分嗎?是不是應該去教網路上學不到的東西?(這是以我的觀點來說,我也知道不是每個人都有能力、意願自己學習)

以我看起來,我所修的課,有些取代性非常高(可以輕易的被網路上的東西取代),我不希望我來大學學到的是別人在網路上也可以學到的東西——如果是這樣的話我去網路上學就好了,幹嘛還要來大學。我期待我來大學所學的是網路上所學不到的、只有在大學能夠學到的東西,那麼這些東西是什麼?主要是人,我覺得。教授的經驗、同學、PyHUG 這些!學習人,大概就是去瞭解他們的想法和經驗吧。大學應該提供的是更多這種與人接觸的平臺,而不是更多的必修課啊。

想想上面那一段的論述其實也有點瑕疵,總而言之,我所希望學到的內容是知識性的東西少一些,因為知識比較容易從網路和書上取得,而經驗性的東西多一些。大致上是如此。

更新

以下是對於 Facebook 上面一些留言的回應。

有人提到,要在網路上學到一些文組的科系的內容,還是有些困難。以我目前所看到的,確實如此,不止是很多文組的科系,我看起來目前的狀況來講要在網路上學東西能夠學得最完整的還是資工系的主題居多。對於有些理組科系來講可能也有點困難,像是核工系和建築系,這兩個是比較明顯的例子,但是我的推測是除了資工系的東西可以靠網路,要在網路上學到其他科系的內容都還有一段路要走。

Philip Chen 學長提到:

對於"大學"這個議題可以參考 肯.羅賓森 寫的幾本書
我記得裡面有提到現代的大學體制出現於工業革命之後,現代大學的出現是為了"製造"產業所需要的人才。

所以在苦惱為什麼大學是這樣那樣,而不是我所想要的那樣這樣時,或許可以用這個角度來思考:大學之所以教我們某些東西而不教我們另外一些東西,是因為政府、產業、資方等等認為社會/職場上需要這樣的人。現代的大學在根本上是在服務產業的,所以它不會專注在如何讓學生發展成他自己想要的樣子,它只是很單純的從一個"如何製造出需要的人"的角度去思考。

所以這種教育總是以一個宏觀的角度看事情,它關注的是整個體制裡的多數的人,至於那些非主流(?)、較有獨立思想的人而言,這些人本來就不是主要被關注的對象,所以在這個體制理會覺得格格不入、不適應、感到痛苦都是很自然的。也不是說這樣的體制就是萬惡的根源,因為100%客製化的教育本來就是有困難的。

所以如果發現自己是這類非主流的人,似乎只要能清楚了解上述的邏輯,也清楚體制的設計不適用在自己身上,那麼與其試圖抵抗整個體制,不如就坦然地設法找到一條自己走得通的路就是了。剛好身在現在也很幸運能有open course,讓不適應體制的人能夠獲得更良好的客製化教育。

比較矛盾的是
現在產業在嚷嚷找不到需要的人、學生在學校又覺得學的東西用不到,所以學校該不該直接變成職業訓練所?
但是如果這麼做,又會有新的意見說大學失去原有的意義了。
所以還是回到自己吧,知道自己想成為什麼樣子,然後看看學校裡、學校外有什麼資源就都拿來用吧

大學的兩個目的,「學術研究」與「培養產業所需的人才」有時候是還蠻衝突的吧。每個系在所因爲產業環境的不同,對這兩個目的的努力都會有不同的比例吧,以資工系來說,本來就是比較傾向培養人才這邊。另一件值得思考的事情是,大學究竟應該培養人才到什麼地步,像是該不該教網頁設計、App 創作?還是將這些東西交給電腦補習班,而資工系只負責基礎理論,像是計算機概論、計算機網路概論?

最後謝謝學長的建議,確實還是要靠自己。

更新2

好像蠻多人關心我的線代的,也感謝很多人給了我線代有用的實例,另外也有些人說我在逃避。至少我覺得我自己沒有逃避啦,雖然我線代的進度落後,但是 我還是有試圖修補它啊,我很認真的試著讀懂教科書(雖然效果不彰),還去看了線上課程。這學期的所有課程我也都有通過啊,這樣至少沒有逃避的很嚴重吧?有 位學長說的很好:「要學一個自己不知道要用在哪裡的東西,有點難激起學習動機」、「只知道圖學相關會用到,然後實際情形是如何,上課根本沒提到」。我確實 也有找尋過我的學習動機(線代應用的實例),我最後是在接近期末考的時候找到了。我並不是說線性代數一無是處,我的意思是:若是上課時能夠提到線代應用的 實例,那這門課應該更能夠引發學生的學習動機,學起來應該會更快樂。

最後,我希望讀文章的大家能夠不要一直把焦點放在我的線代上面,也請瞭解一下我其他的觀察和想法啊。