因為找不到人一起寫 code ,所以辦了臺灣程式路跑

臺灣程式路跑是我和子期舉辦的活動(還要靠很多朋友和導師的幫忙啦),希望傳承台灣現有自由開源軟體開發者的經驗給新進者,讓更多人接觸自由開源軟體開發。這篇文章說明一下我為什麼想要辦這個活動背後的脈絡。

——

最一開始其實是我去柏林參加兩次 ownCloud 黑客松回來之後產生的想法。感覺,對於這些歐洲開發者(裡面大概一半是歐洲其他地方來的)來說,寫開源專案好像只是「空閒時間跟朋友進行的休閒活動」而已,可能跟我們會約朋友一起打球很像。就算一開始不認識,也會透過 IRC 上面的閒聊(通常不會在 GitHub 或是 mailing list 上面閒聊)互相認識,而且大概又因為是屬於相近的文化圈和時區,本來的同質性就高,所以到最後多半可以互相認識。——感覺有點像在臺灣參加社群研討會籌辦一樣,大家一開始不認識,但是在為了同個目標工作的過程熟悉了彼此。

「貢獻自由開源軟體在歐洲是一件稀鬆平常的事情」,也跟風氣脫不了關係。很多人都在做,所以不覺得有什麼稀奇。在臺灣除了一開始貢獻的人數就比較少,二方面是,貢獻者之間的連結似乎沒有像在歐洲那麼強,很容易只知道自己的專案,不知道有其他人在寫、在寫些什麼,所以感覺上自由軟體貢獻者更少了。而自由軟體貢獻者在臺灣的稀少性,更強化了「貢獻自由軟體的人都很厲害」、「要很厲害的人才能貢獻自由軟體」的想法,無形中產生了心理上的門檻。

——

我也是那種新奇想法很多,但是很少堅持到底完成一個專案的人。我的興趣變的太快,幾乎每一天都在變,今天想 hack 某個專案,明天想讀另一個專案的程式碼,後天想研究什麼東西的架構。更別說每個禮拜還會突然發現某個功能很重要,為什麼沒有,甚至在洗澡的時候冒出超酷炫新專案的構想。構想的實現速度永遠比不上增加的速度還有在不同計劃之間 context switch 的時間。

計劃這麼多,卻因為自己似乎對什麼都有興趣,什麼都想學,反而沒什麼實際產出。這個問題苦惱了我很久,直到鳳梨酥計劃開始之後我才發現解法就是找人一起來。

鳳梨酥計劃的開始,還有高中的時候和同學整個暑假開發學校網站的經驗很類似。鳳梨酥計劃一開始只不過是因為我們都覺得在 OpenStack 上面跑 FreeBSD 很麻煩,於是隨口在社辦約了黑客松,另一個人看到我們的黑客松也說要加入,就形成了這樣的三人團隊。裡面正好我搞 OpenStack ,負責手動測試我們的 code ,Iblis 寫骯髒的 shell command ,Apua 寫 Python 。我們只花了大概三四次黑客松就把最基本的功能完成。每一次黑客松都很開心,大家遇到哪裡卡住馬上可以問另一個人,馬上測試也可以讓寫 code 的人有馬上的回饋,然後最後大家再說說笑笑去吃宵夜。高中的時候則是,我記得整個暑假我們不是泡在社辦(還用櫃子在角落隔出一個空間,裡面鋪上學校新採購電腦主機的大片包裝用塑膠軟墊,讓我躲在裡面睡午覺),就是整天掛在 Skype 上面 cowork 。

有朋友一起寫程式,不只是比較好玩、有人可以討論,對於我這樣三分鐘熱度每天轉移焦點的人,為了不和朋友失約,可以約束自己專注在一個專案比較久而不會分心去玩其他東西。

所以從這兩次的經驗,我瞭解到要做長久的專案,一定要找到志同道合的朋友。

——

既然如此,下一步很簡單,我就想辦法找人一起寫我覺得很有趣的專案就好了,一開始我一廂情願地覺得我只要跟他們解釋這個專案的願景,還有我發現他們現在沒有的功能、可以從哪裡參考類似的實作、有了這個功能之後世界是多麼美好,就可以說服他們一起來跟我寫 code 。——顯然我錯了,出乎當時的我的意料之外,我講的幾乎每一個構想,朋友們聽了之後的回應大多都是「哦,我覺得還好啊」。

這時候我才意識到,即使同為程式設計師,人之間的興趣還是有如此鴻溝般的差異。

也差不多是同個時期,我正在為自己維護的開源專案感到心煩,一個承諾已久的重大功能。雖說是重大功能,實在提不起動力實作,不是因為難度太高,而是因為完全沒有技術創新性,總覺得不過就是 API 接一接這樣簡單的事情。這樣一拖就拖了兩年了, ownCloud 都裂成兩半變成 Nextcloud 了。

我想到,有這麼多人想要踏入開源軟體的開發,也有許多開發者因為必須要開發那些不算是重複但是技術不有趣的必要功能感到厭煩(像我一樣),這兩者是不是可以結合,讓這些原本的維護者懶得寫的 code 作為新進開發者熟悉專案的練習?

這就是程式路跑活動的初步想像。

——

我和子期也開始進行很多討論,尤其是:我們到底要找哪一些專案的導師來?

一開始的想法很模糊,大概是「不要找那些商業型的開源專案」,有很多公司將專案開源只是為了行銷並且獲得免費的開發人力,舉個最極端的例子就是 MIUI ,早期很熱門的 Android 第三方韌體,一開始是開源的,因為漂亮的界面吸引了很多人,開發者免費幫他們把 ROM 移植到不同裝置上面,使用者則是開開心心地體驗了小米公司的軟體,順便幫忙推廣給親友。後來知名度高了,小米公司就拋棄開源的 MIUI 維護,不再釋出新版 MIUI 的源碼。高明的行銷。(順帶一提,我感覺以後 Deepin Linux 也會這樣,中國沒有什麼軟體公司真的有社群精神或是社會責任的,一切以賺錢為優先,大概是競爭激烈的文化氛圍所造就的吧)

另一種商業型的開源專案則像是 OpenStack ,OpenStack 能夠維持開源同時維持熱門,主要的原因就只是對於這些參與 OpenStack 開發的公司來說,開源是能夠創造最大利益的選項,雖然無法排除競爭者從原始碼得利,但大家一起合作寫 code ,這些比較小的公司也才有機會和大型競爭對手 VMWare 甚至是 AWS 競爭,他們可以基於這個共同的開源平臺開發專屬的、不開源的武器,因為只要是相容於 OpenStack 的就可以使用,拉近了這些小公司和大型競爭對手的距離,然後再用專屬的武器突圍。

OpenStack 這樣的專案絕對堪稱是開源軟體的典範——但我們還是不希望程式路跑納入 OpenStack ,原因是一般的個人使用者幾乎不可能會直接用到 OpenStack ,而既然程式路跑以純粹個人的背景出發,我們考量的也是廣大個人用戶的利益,引用自活動的 FAQ:

有許多 FOSS 軟體背後有企業支持,如 OpenStack, Tensorflow ,有企業支援,這些專案要找到貢獻者相對容易,相對來說有許多得不到企業支持的 FOSS 軟體,只能靠現有貢獻者的熱情,甚至捐獻金錢才得以繼續,身為一個保持自由開源理念、駭客精神的個人,我們(主辦人)想要將我們的一己之力集中在沒有企業支持的 FOSS 軟體。

這樣的選擇,也是出自於一個疑問:臺灣這麼多 Linux/FreeBSD 桌面環境的使用者,其中有不少具有相當的程式能力,為什麼一些重要的桌面環境開源專案,像是 GNOME, KDE, ibus-chewing, Firefox 的臺灣開發者還是這麼少?(甚至是 bug report 來自臺灣的都很少?)

選擇開源桌面環境的使用者,我想或多或少都抱持一點理想性,認為自由軟體才能帶來使用資訊科技時真正的自由。而這點理想性,是我們以學生、年輕人,還不必負擔太多社會現實的身份負擔得起的,所以我們花時間精力舉辦的程式路跑,希望集中力量在這樣的自由軟體上面。

——

這個活動非常高興能夠獲得各方支持,尤其是幾位導師,Tim, Weicheng, 呂行, Mark, Acelan, Franklin, 4$ ,幾乎什麼都沒有問的馬上就答應支持,中華民國自由軟體協會慷慨的經費贊助,還有師大資訊社阿哲幫我們弄到場地。

我覺得活動算是蠻順利,結果也很成功,大家都有作出貢獻,幾個 bug report, patch 。也真的有產生出我想要的那個氛圍——坐在教室,真的有那麼一刻,我以為我回到 ownCloud 黑客松那時候柏林工業大學的教室裡面,大家吃東西討論 code ,很歡樂的黑客松的感覺。

希望真的有幫到臺灣的自由軟體和開發者就是。

(跳過八月的文章沒寫這次居然寫了三千多字,就當作是補償吧,發了之後 WordPress 告訴我這是這個部落格第兩百篇文章啦,真是值得慶祝)

來自另一個演化樹的 Grand Central Dispatch

前幾天讀了 Evan Miller 的 Four Days of Go ,裡面有一段提到 libdispatch ,就研究了一下。

每次發現 XNU, BSD, Solaris, Illumos 這些比較不一樣的 UNIX 有神奇的功能的時候就如同發現尼安德塔人的存在,還有他們某方面還比我們先進一樣。又像是重新發現亞特蘭提斯,是如此的先進,但卻不為多數人所知、所用。

感覺很酷炫,因為有共同的基底,類似的環境,發展出的科技卻截然不同,就像另一個演化樹一樣,也就是為什麼我說像尼安德塔人。

不禁想,既然有同個基底,移植過來,整合進大家常用的版本裡面,就技術大躍進了啊。

像是取得外星科技一樣,但外星科技意外地跟我們使用同一個基底,所以很快就可以移植過來。

鳳梨酥計劃:FreeBSD on OpenStack

最近都在交大計中內玩 OpenStack 相關的事情。

FreeBSD 是我架伺服器的首選,令人意外的是要在 OpenStack 上面跑 FreeBSD 到現在依然都還沒有很好的方案…

CNMC 和交大計中都大量使用 FreeBSD ,同時我們也在研究 OpenStack ,在 OpenStack 上跑 FreeBSD 能提供我們很多好處。同時,身為 FreeBSD 的使用者和支持者,當然希望更多人來使用,也擔心現在很多的使用狀況都是在 VM 裡頭,如果 FreeBSD 沒辦法在雲端環境下運行,就是多了使用上的限制,不利於 FreeBSD 的普及。

因此我,Iblis 和 Apua ,決定開始計劃來讓 FreeBSD 像各種 Linux 一樣在 OpenStack 環境下輕鬆順利的部署和運行。我們將計劃命名為鳳梨酥計劃!(這個名字讓我們笑了很久,會取這個名字是因為使用來自台灣的東西更可以凸顯這個計劃的發源)

鳳梨酥計劃基本上就是給 FreeBSD 用的 cloudinit

計劃分為兩大部分。一為 instance 的開機腳本,會在開機時讀取 OpenStack 的各種環境變數並依照環境變數來設定 instance ,這部分稱為 bsd-cloudinit ,做的事情和 Linux 上面的 cloudinit 相近。第二部分為 VM template 化腳本,在建立 template 的時候使用,負責移除 VM 的各種特徵,如 SSH host key ,以免屆時開新 instance 的時候 VM 的特徵重複。除此之外還要負責安裝 bsd-cloudinit ,我們將第二部分稱為 bsd-cloudinit-installer

命名

會開始做這件事情是想說,這件事情應該很簡單,但是卻沒有人做(我也很納悶為什麼沒有人做)。在 FreeBSD 上面做各類的系統管理只要用 CLI 就可以完成,我們要做的事情只是把外面的資訊拉進來,和這些動作黏在一起,就做完了。

剛開始我們就確立了一個方向,就是不要管 code 有多髒,能動就好。後來覺得這真的是正確的決定。由於不管架構、維護性等問題,我們很快就做出基本的功能。快速做出基本功能有一個重要的好處就是可以迅速獲得進度的回饋(你看,我們這麼快就做出這個功能了!),有進度就產生成就感,成就感對於計劃的繼續進行我認為很重要。要是我們顧慮很多,拖了很久還做不出第一個功能,因為沒有明顯的進度,心理上就很難產生成就感,很可能連第一個功能都沒做出來就不想做了。

計劃的命名也讓我們想了很久和笑了很久,剛開始我們提了一堆希臘神明之類的名字(因為拼起來很酷XD)。可是其實我一直覺得開源計劃的名稱應該要達到幾個目的:能夠顯示計劃的緣起、計劃的功能、好念、好記,再來還要看起來很酷很先進。

計劃剛開始我只有找 Iblis ,那天我給 Iblis 做 OpenStack 架構的簡報,Apua 走進來問我們要幹嘛,我就簡單講了一下然後附帶問了一句「要不要加入」,然後 Apua 就加入計劃了www

第一天我們就開始想名稱了哈哈,剛開始想了一堆希臘神明的名字,那天我剛好有帶鳳梨酥當點心,靈機一動就提出用鳳梨酥當名字XDD

鳳梨酥這名字超棒,首先,它顯示了我們的起源——台灣,只有台灣有這種點心。再來,它好念而且念起來很酷(對於不會中文的人而言),想像一個老外說 “feng li su" 的聲音XD

但是為了顯示計劃目標,我們還是再加了一個附標題:bsd-cloudinit

開發過程

幾乎都是以半 hackathon 的方式進行的,我們大概花掉幾個週末和平日晚上吧。

Iblis 負責用各種骯髒的方法用 shell script 實作各種動作,因為我們兩個都不會寫 Python ,Apua 提供 Python 支援,幫我了解 cloudbase-init 的架構,我比較了解 OpenStack 和 cloudinit 的架構,所以我要提供其他人方向,還有架構用以前弄好的 OpenStack 提供測試環境,還有負責 build template 、寫文件、去 mailing list 宣傳什麼的。

我們三人的領域都不太相同,但都互相稍微了解對方的領域。合作起來很愉快的一點就是一旦遇到問題就可以互相回答,像是不確定要用哪種實作的時候馬上就有人可以討論、分析和決定。不像我常常自己寫程式寫到一半沒辦法決定 implementation 就整個卡在那邊猶豫很久,要是猶豫太久就會開始打混了XD

成果

我們的計劃被加進 OpenStack Image Guide 了!超爽

下一步

最大的重點就是把 cloudconfig 的功能加進去,這樣才是真的自動化啊。

還有很多很髒的的地方要稍微修一修⋯⋯

鳳梨酥計劃主網站及說明文件

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

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

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

—–

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

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

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

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

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

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

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

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

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

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

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

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

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

發動態比較輕鬆的原因

發動態比較簡單的地方在於沒有前後文(不是處於一個對話當中),所以可以想到什麼就發什麼。

但是在與真人講話的時候就不能想到什麼講什麼,要考慮原本的對話內容,就算是開始一個新對話,也不能劈頭就把想講的講出來。

而且對我來說在對話中直接講出想法的機會也很少。

動態也往往就只是一個簡單的想法、小心情的發洩、新發現之類的,不需要很長的回應,如果轉成真人對話,大概很難超過十句話。但是在聊天的時候一般不是十句話就結束的。

動態的是使用文字,發出去之前比對話經過更多的整理,適合發表想法。畢竟也不能跟在對話的人說等一下我想好了再跟你說。

還有就是聽到而不想回應/沒有回應的時候,動態通常不會有一個特定的聽者,像是自言自語,所以看到的人可以不回。但在真人對話當中也不能不回啊。

總之,在真人對話當中要嵌入自己深層的想法或感覺還是很困難吧,有時機對不對的問題。

但我還是希望在與朋友的對話當中能夠包含發在動態的內容,這樣朋友就不用透過 Facebook 才能知道我真的在想什麼了。不知道要做到這樣需要什麼溝通技巧,不過應該也不可能。

服務學習教授訪談心得

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

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

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

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

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

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

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

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

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

昨日導師時間之所得

說明:導師時間乃交大近年的新政策,據說原始目的是希望讓老師多多關懷、瞭解、輔導學生。在資工系的實施狀況爲導師時間看不到導師,又名「浪費你時間」,大致上有3種實施方式,第一種爲強迫學生參加某些學校舉辦的演講,第二種爲資工系自己找講者(通常是學長姐)進行經驗分享,第三種爲實質的浪費時間,通常出現在學期初,內容爲說明導師時間的點名方式、重複新生訓練的內容,或是交換學生的廣告。三者均通常爲時2節課(約2小時),均需繳交演講摘要報告,作爲點名用途。謝天謝地我這屆到了大二應該就不再有導師時間。

昨天導師時間的經驗分享由2爲交大學長進行,其中一位是轉入資工系,另一位是轉出。基於學校(系辦)強迫學生參加導師時間的不尊重的反抗心理,當時我正在試着讀懂 ownCloud 一部分的 code ,因此並未專心聽,然經驗分享的片段依舊讓我產生了一些看法與感觸。

第一位是從外系轉入資工系的學長,從分享的內容,以及上次導師時間經驗分享的內容,可以感受到學長們(或是老師、系辦)想要讓大家瞭解的核心理念:「就算你不會寫 code ,對電腦一點興趣也沒有,只要你認真堅持下去念,一樣可以在資工系得到好成績。然後升上研究所或是去工作。」這在我看來極爲諷刺,讓我點評一句:「就像高中一樣。

「我高中的時候,根本不知道 code 是什麼,考大學的時候,成績剛好有到資工系,想說資工系好像不錯,未來比較不會失業blablabla,然後就進了交大資工了。」

「遇到室友,平時打 LOL ,趁遊戲載入的時間,隨便去寫幾行 code ,然後就100分。我絞盡腦汁,最後只交得出20分的屍體。」

「但是我沒有放棄,雖然沒有很喜歡寫程式,但是也不排斥。我認真研讀程式書,後來漸漸感覺到自己的進步,雖然沒辦法拿100分。其他科目也是,我堅持下去認真讀,雖然沒有第一名,但還是拿了個中間的成績。blablabla」

跟高中比較一下:

「考高中的時候,成績剛好有到XX高中,想說XX高中好像不錯,升學率也不錯,然後就進了XX高中。」

「遇到同學,平時上課睡覺 ,補習班翹掉,結果段考還班排2,我補了這麼多科,最後班排不過20。」

「但是我沒有放棄,我認真準備各個科目,問補習班老師各種問題,後來漸漸感覺到自己的進步,雖然沒辦法拿100分,但還是拿了個中間的成績。blablabla」

當然不是每個人都是這樣,這樣也沒有錯(可能錯在家長就是)。

雖然沒有很喜歡XXX,但是也不排斥,爸媽/同學/老師/新聞說XXX不錯,於是我就去做了」,我不喜歡這種態度,這跟隨便選一個不是一樣嗎?這是基於我沒有辦法理解、體會那種「什麼都不排斥,也沒有明顯興趣」的人的想法。在我看來應該做的事情是去做那件最喜歡、最有興趣的事情,就算比起其他東西,沒有多喜歡多少。如果真的找不到最喜歡的是什麼,那上面那種隨便選的方法似乎也是唯一能採用的。

但反過來說,隨便選、什麼都好像喜歡、什麼都不排斥這樣似乎也不錯,別人強迫你做這些事情的時候大概也不會太痛苦。這似乎是針對臺灣的環境(升學主義、考試、強制讀書、大家都讀大學)所演化出來的態度,這個環境中能改變、能選擇的機會比較少,被(半)強迫的機會還是頗多,如此的態度讓人面對衆多無可奈何時不會太痛苦,可以活得下去(雖然在相反想法的人看來這不過是行屍走肉)。

另一點我不認同的在於,那個室友,你不應該覺得你追不上他的程度。真正的全能天才很少,這種專精於某方面的天才,他想必是付出了代價,才能做到這種程度。換句話說,我覺得應該要這麼想,我也會這麼想:「若是我下工夫(付出代價)一定也能和你一樣強。」但是是否要付出這個代價換取這樣東西的決定權是在我,我當初只是沒有做和你一樣的選擇。就算你覺得你追得上他的程度,我也不認爲「讀書」是追上他的方式。能做到這種程度的人,確實有很高的機會是苦讀、努力研究而得來的,但是在苦讀和努力研究背後絕對有強大的夢想、興趣在支撐。我認爲可以做的是去體會他爲什麼對這件事情有這麼大的興趣,甚至進一步去自己培養這個興趣,或許你後來也會在這件事情找到樂趣。

第二位學長的主軸其實也接近上面所講的核心理念。但是他最後播了一部 MV ,我看了很感動。

https://www.youtube.com/watch?v=mqlZVBcs1Wg

「我不想只是當齒輪而已啊!!」