我的大學生活 - 暨大資工

這篇文章獻給就讀暨大資工的學弟妹們。 其實我滿想念北部的學校,當時學測成績出來,分數只夠填地名大學(彰師還填不了),經過一番求神問卜之後決定暨大,此處環境好師資好,是個練功的好所在,當時長輩們就跟我說,在暨大好好練功四年,研究所考個好一點的。 暨大資工師資可以說非常棒,老師們都是台清交等級以上的。大一時的程式課是教 Python,真正體會到「寫程式是一種魔法」[註1],當時對於寫出程式的興奮與成就感使我開始自學,還記得大一宿營時(約莫十月吧)我帶了一台筆電過去,晚上休息時在寫爬蟲,只為了給朋友一個能夠自動下載中央氣象局每日觀測檔案為生日禮物,那時使用的還是 py2exe 呢,現在都使用 pyinstaller 了。 說到 Python,當時我除了跟著上課的進度,週末在家晚上有空時也會上網看[官方文件](https://docs.python.org/3/tutorial/),因實在對 Python 太有興趣了,雖然有買中文書但這語言不斷改版,書中內容又偶有錯誤,不如乾脆看官方文件,但是大家可別嚇著了,「Python 這語言優雅到初學者可以不必看那些漏漏長的英文敘述,直接看程式範例去會意即可」。程式最重要就是會用會寫,我一直堅持動手先玩一下,要先感興趣再鑽研其道理也不遲,相信有不少人一開始看到長長的英文敘述就先昏過去了呢。就這樣不知不覺將官方文件看了一大半,但課內的課程也很重要,當時是吳坤熹老師授課,他的課總是提醒我不少小細節,尤其是考卷的部分實在很有趣,老師有[將考卷公開上網](http://course.ipv6.club.tw/),有興趣可以去看一下。 程式課使用老師的 STU Server,因爲都在終端機上面操作,加上當時順便修了 Unix 使用入門,我也對終端機感興趣了,假日有空就利用從克寧老師教的指令亂逛 STU,找找看有沒有沒藏好的東西如考卷之類的😂。說到 Unix,這堂課是影響我很重要的一堂課,當時學長們說這堂課不好過,不過實在沒什麼系選修好修,只好嘗試看看,反正也有人大一修通過的。雖然 Shell Script 跟 awk 現在都忘光光了,但因為有了 Unix 的基礎,讓我往後的課程、實驗能夠更加流暢,也讓我學好了 vim(這技能很重要,當你看到同學殘廢的用著 vim 就能炫技一下),到現在我打 Python 跟 C 語言還是習慣用 vim,不會特別去開 sublime 或是 vscode,至於 PHP 因都是接案程式量龐大就以 IDE 如 PhpStorm 為主。不過說真的,vim 是個好東西,只需要熟悉約莫 20 多個指令就可以比用 sublime 編輯還要快。 當時除了要求自己使用 vim 編輯而不是 nano,還有要求自己不看鍵盤英打,可別小看這技能,雖然資工系打了很多程式,還是有人到了碩班仍記不起來鍵盤英文位置,甚至一指神功在打英文。練英打除了打字快很多之外,在做共筆時特別有感,常常遇到講者投影片咻一下就過去,除了拍照之外,打字快就派上用場了呢!還有在昏暗的燈光底下打字也很方便都不需要看鍵盤。 說到共筆 [註2],這目前似乎主要流行於醫學系跟資訊系,這時常在資訊活動當中使用,大家一起記錄,分享筆記的過程還可以順便在上面聊天討論,是很棒的風氣。資訊活動在資訊領域算是很重要的活動,雖說不參加也不會怎樣,但參加了真的很不一樣,自從高中畢業後我參加過:台灣黑客松、台大黑客松、SITCON、MOPCON、COSCUP 等等,裡面可以認識到不同大學、業界人士、國外與會者等等,最重要的是他們分享的議題大多是在校內聽不到的!大家學校教的東西有限,這些場合是與世界接軌的好管道,資訊領域的東西變化實在是非常非常非常快呀,多跑這些場合也可以多認識好學校的學生,只能說真的差很多,多出去看看才知道自己多麽廢然後才知道要精進自己。 大一剛開學就接觸到 [MOLi 實驗室](https://moli.rocks/)了,這說來滿妙的,在進大學前暑假的某天我在玩著 Ubuntu 14.10,但是載點掛了(這好像一年中會有數次...)就到處看看該找誰幫忙,就找到 BlueT 了😂,當時還以為他是暨大的學長,沒想到是講師,之後才知道是 Ubuntu 台灣站負責人,並且向我推薦 MOLi 實驗室,於是乎開學沒多久就傻不隆咚的跑過去,當時裡面充滿了學長們,討論一堆我聽不懂的名詞,嚇得我一年多不敢再過去(誤。裡面的風氣其實很好,雖然充斥著各種技術名詞,但學長姐們很友善,有問題都可以詢問,也常常推各種坑,讀資工的我還滿羨慕有這種地方的,希望資工也能有一個,不然管院離科院真的有點距離。且 MOLi 時常辦活動,可以說是每個月都有 MOLi Day,除了網頁設計等偏技術面的,還有 Cardboard 製作等外系也能參與的內容,很推薦大家有空多來坐坐。[MOLi 也有 Telegram 的群組](https://telegram.me/MOLi_rocks),裡面各種技術上的疑難雜症都可以問,且大多是暨大自己人不用覺得害羞。 當時有位學長跟我說吳老師很棒可以多跟在他旁邊學學,大一上我就找了氣象局的地震預警系統合作案問吳老師能不能帶我做專題,忘了是什麼原因他沒答應我,不過在一下時他找了我和另外七個人接案寫網頁,因為大一上學了 Python,老師決定使用 Django 來完成這個案子,當時老師簡單介紹一下 HTML 是什麼和 Django 怎麼用之後,便要我們自己去看 W3School,並且告訴我們客戶的需求,要我們想辦法完成,當下覺得不可思議,老師都沒有在教便要我們寫程式,後來才發現其實資訊領域就是這個樣子,東西多到永遠學不完,老師不可能都教你因此自學超重要,經由接案來邊查邊學邊寫是最好的磨練方式,以前有個傳言「大學中要寫過十萬行程式」,高手都是這麼訓練來的,除了線上解題系統跟課程需要的小程式,最容易的方式便是接案寫程式了。我母親一直告訴我多去實習,就算沒錢也沒關係,因為你可以學到更多的技術,而不要去打工浪費時間,因為現在學的是未來能夠賺更多錢! 大二時因為 MOLi 群組有在揪團購,就買了一台樹莓派,當時也不太知道能幹什麼,以為跟 Arduino 是差不多的東西。到貨之後裝完系統,看到上面雖有很多腳位但我啥零件也沒有,就暫時把它當作 Server 使用,這個重要的抉擇讓我走向網管之路,更讓我推甄上了交大丁組 [註3]。為了玩樹莓派我將家中種花電信改成1個固定IP加7個浮動IP,只為了讓我的樹莓派能夠有 Public IP,當時沒啥在賺錢手頭緊,申請了一個 dot tk 的免費頂級域名來玩玩,越玩越玩出心得就從 Google 買了 dot org 頂級域名來經營自己的網頁。有樹莓派的好處是讓自己隨時有工作環境(SSH連進去寫程式)、有自己的 Email(很炫炮)、有[自己的網站](https://jackkuo.org/)(雖然沒人看...)等等,為了維護這台 Server,你會去想辦法找資料來讓他可以運作,這個過程中習得了不少網管知識與 debug 技巧。 大二下因 MOLi 在揪團打 CTF,當時也不知道啥是 CTF 就跟著報名看看,黑白學長很好心還開了個 DVWA 教學的 MOLi Day,很感激他帶我入門資安。或許是因為平常很喜歡亂玩東西與到處看科技新聞 [註4],解題的思緒總是比其他沒經驗的朋友快得多,當然因為有接案寫網頁的經驗,對於網頁相關的題目總是比較能夠掌握到關鍵。之後有幸進到複賽並且參與課程訓練,結束之後又獲選為教育部資安培訓計畫成員。這是個成長很多的轉捩點,大一到大二上我成績並不是很理想,就只是因為不愛念書而已,自從接觸到 CTF 之後,我開始知道原來課內教的東西在 CTF 都會用上,而且都很重要!我開始努力聽懂課堂上老師教的東西,只為了在 CTF 解題時能夠派上用場,如程設、資演、資料庫、系統程式、作業系統等課程,必修課真的是各種重要的基礎!如果今天你也不知道資工的這些科目可以幹什麼,那你肯定得試試看 CTF。 除了技術方面能力的提升,生活也是很重要的,暨大鄰近日月潭,泳渡跟環湖馬拉松是必要的,如果你在暨大的這四年沒有去做過這兩件事就太可惜了!吳老師每年都會報名馬拉松,找他報名好處多多,老師除了幫你繳報名費還會在跑完之後請個大餐,只要你有心錢都不是問題。泳渡日月潭也是十分有趣的,但後來覺得參加過一次就好,這事情自己去體驗一次就明白了😅。 每有專題我都習慣自己一個人一組,除了不想要有人幫我買便當,還有不想讓組員拖累我。這想法或許有點自私,但是在實作方面同學能力實在差我太多,時間有限的情況下還要去教他我在幹嘛實在是浪費時間。當然我們班上也有幾位強者,但我還是覺得全部都自己做才能全程參與,全面掌握專題的各種技巧與方向。 夜已深 (2:50),東西太多了待我有空會在編輯補充。 最後有些東西懶得寫成故事,直接跟大家建議。 1. Github 這東東很好用,請註冊個帳號多多丟程式碼上去 2. 瀏覽器書籤分類很好用,我到大三才知道怎麼用,超後悔 3. 請將所有上過課程檔案、講義、考卷都分門別類放好在雲端硬碟 4. 多寫程式,接案、刷題 (UVa) 都好,別讓自己有空打遊戲,沒案可接請找我 5. 學好英文

註1:「寫程式是一種魔法」出自於 Mosky "Coding is magic",推薦閱讀「[如何進化自學能力?後端工程師 Mosky 的人體實驗](https://medium.com/@StarRocket/https-medium-com-starrocket-interview-with-mosky-e7c18b54545)」。 註2:共筆指的是共同寫筆記。以前流行的是 Hackpad,但是被 DropBox 收購改成 Dropbox Paper 了。我個人習慣共筆以 HackMD 為主,個人筆記以 Paper 為主,在做段落處理、程式碼高亮非常方便。大家請務必學會 Markdown 這個語言! 註3:沒有唬爛真的是因為買了樹莓派和修 LSA,丁組考題學校必修課幾乎不會教,但大多都在 BlueT 的 LSA 課程當中。 註4:平常會看 [iTHome](https://www.ithome.com.tw/)、[Inside 硬塞的網路趨勢觀察](https://www.facebook.com/cyberbuzz/)、[雲爸的3c學園](https://www.facebook.com/yunba8/)、[台灣數位國土安全部 - DDHS](https://www.facebook.com/DDHS.TW/) 、訂閱 [TechBridge](https://blog.techbridge.cc/)、訂閱 [CodeTengu](https://weekly.codetengu.com/)、看 PTT Soft_job 版與 Tech_jog 版、在 WeChat 訂閱 CSDNnews,Telegram 群組則有 [COSCUP](https://t.me/coscupchat)、[SITCON](https://t.me/SITCONgeneral)、[MOLi](https://t.me/MOLi_rocks)、[Mozilla](https://t.me/moztw_general) 等。

留言

這個網誌中的熱門文章

[Weekly Report] 2018.04.05 - 04.18

LINE Notify 初嚐心得

DokuWiki - Wiki 平台初體驗