資工女孩大學回顧 — 要往哪個方向走

Laurice
Sep 5, 2021

--

FB粉專:L’s 碎碎念

上一篇:資工女孩大學回顧 — 生存小撇步

Photo by Denise Jans on Unsplash

每一篇都要有一小段寫在前面(累

我在第一篇就有提到,這系列文章比較偏我對台大資工的回憶錄,以故事為主,以論述為輔,無法fit任何其他人的體驗,分享出來是希望可以讓大家有些不同的看法,又或者可以幫助到與我有類似狀況的人,就跟我們會喜歡看別人的故事來體驗別人的人生或生活,但我們不會因此變成別人,只能從中擷取適合自己的部分來吸收。

而當然,對某些人來說,會覺得你說的這些我做不到,那我該怎麼辦?我想強調的是,我找出來的方法不是對所有人適用,但我希望在看完我不按照系上文化的例子後,找出一個讓自己舒服而又可以有所進步的方式,而不要太被一些現有的框架侷限住。

再次聲明,我沒有要評判任何人的方式正確或不正確,我只是提供我自己的故事,讓大家可以看到更多聲音

前一篇得到了一些蠻有趣的回應,像是在我不是系中心的狀況下,為什麼其他屆我也認識蠻多人的,而且某種程度上來說我還算有名?

朋友1(學妹): 不是因為你拿卷(書卷獎)嗎?

朋友2 (天天):明明是我綽號取得好。

接下來這篇我想來談談系上一些我參加過的實驗室或團隊,資工這個領域太廣太深,而當時的我有興趣的領域不少,也因此去過許多實驗室、參加了不同領域的討論,而這篇我覺得也會一定程度解釋了,為什麼在我不太參與系上活動的狀況下,還是認識挺多人的。

資工系的領域可以說是包山包海,教授們的研究科目從極為理論到極為應用都有,而很多領域甚至在系內沒有相關課程可以修習,要了解更多需要找教授、學長姐聊聊。身為一個什麼都想摸摸看的人,在大學之前又沒有接觸過任何一項,我幾乎是只要受到邀約或有興趣就會去碰,也造就了我去過很多實驗室做不同的事情,為什麼這裡不用做研究來一言以蔽之呢?大家看下去就知道了。

接下來希望大家可以跟著我,看看台大資工到底是個怎樣的地方,或是,台大到底是個怎樣的地方。

要往哪個方向走 — 台大共識實驗室 (剛剛才知道廖世偉教授的實驗室叫這個名字….)

在大二下學期時,我修了廖教授的數位系統實驗(當時是必修),課程結束時,老師來問我跟天天要不要一起在暑假衝鋒,我們想想,暑假也沒事做就去了。

雖然這可能是公開的秘密,廖老師的實驗室不完全是實驗室,_______,做區塊鏈相關的東西。而且老師找了我們似乎沒跟其他學長說,導致我跟天天第一次出現在辦公室時,大家都呈現一臉:「我們不知道要給你們做什麼?」的臉,後來我總算分到了做網站後端的工作。從前面幾篇,應該可以看出我光是弄課內的東西就已經蠻焦頭爛額的了,畢竟系上的課程作業不少又不簡單。所以,我對網頁後端這東西,除了當時有和朋友接過一個網站case有簡單摸過,其他什麼REST API、DB、通訊協定,什麼都不知道,然後我也只能看著本來的code,開始摸索我該做些什麼,幸運的是當時是用Django做為主架構,而接case的時候,我們也是用Django。

既然進了區塊鏈相關的實驗室,總是想學些相關的技術,所以我也跟學長借了本Oreilly的區塊鏈技術書想看看,但奈何當時的我對這個一無所知,最終這本書仍躺在房間地上,而我也沒有在那時候all in 比特幣QQ

總之我在廖老師的實驗室待了一陣子,學到了網站後端開發、網頁前端開發(怎麼把設計師的圖變成現實)、一些商業文化和一些開發流程,也在那時候學會了怎麼寫unit tests以及其必要性。學到了非常多我在學校課程不會接觸的技術,讓我知道要開發一個完整的產品時,會需要哪些專業的人一起合作,這對當時的我來說是新世界,畢竟這些課題不是任何一個必修會教導我的。同時,廖老師實驗室的學長不是典型的研究生,他們有許多都是辦過HackNTU大活動的,也一直有在接觸業界,自己也有做一些side project,算是我學生生涯中接觸到的很不一樣的類型。

我想我不後悔去廖老師的實驗室,認識了一群很厲害的學長、學到了我照正規途徑走不會學到的技術,雖然區塊鏈相關的知識還是沒有啦QQ,行政這塊也不太行。

要往哪個方向走 — 機器發明與社群網路探勘實驗室

機器發明與社群網路探勘實驗室是林守德教授的實驗室,一樣是大二下修了老師的必修課機率,最後老師廣告了自己的實驗室。老師的實驗室涵括的領域非常廣,以機器學習為大主軸,涵括了理論到應用,文字處理相關、時間序列到資安相關,而且還在暑假設計了讀書會,所以我也心動的參加了。當時的我想接觸機器學習(畢竟當時超夯),但又知道自己數學沒有太好,如果純理論的話可能無法負荷,所以想去老師的實驗室看看,有哪些領域會比較適合自己。

實驗室依據主題有不同的小組,進去時挑一些有興趣的跟讀書會,我忘記我當時挑什麼了,但只知道我讀書會都一知半解,我不確定是缺了什麼前備知識還是單純自己不夠認真,單字看起來我都懂但組起來我都不會,當時大二升大三懵懂無知的我,也只能安慰自己知識太少,能懂多少算多少。

守德老師實驗室最棒的就是,選了實驗室還不用定型。後來我慢慢的摸索出我比較有興趣的部分是比較應用的,跟語言處理相關,就開始選跟NLP (Natrual language processing 自然語言處理)比較有關的project,由學長帶領做做資料分析、寫寫paper,雖然能幫上的忙不多,但也終於比較清楚學界做研究的生態與規則。跟了兩個學長寫了幾篇paper,最終在我在碩班時也選擇了守德老師這邊作為歸宿,繼續相關的研究,最終也謝謝老師的指導,以及修改論文(守德老師英文超級好!!!),我順利的跟學弟合作,投上了EMNLP的demo track。

守德老師實驗室一直以來人都蠻多的,中午開會需要借一整間教室,人多可以做的領域也多,但同時老師也需要照顧比較多人,在我當時,我跟老師開會的前後常常都會有排其他人,所以可能會被前面delay又被後面的組別催促,後來我會跟婷婷(他也是選守德老師當指導教授)一起進去開會,兩個人的時段一起使用,畢竟不是兩個人每次都有很多內容可以報告,這樣老師時間也比較好安排。而在我寫文章的現在,因為老師最近到Appier去了,根據跟學弟聊天的內容,老師現在時間非常少,開會要非常的簡潔扼要。

我最後選擇守德老師實驗室的原因包括下列幾個:

  1. 想學習機器學習相關的技術
  2. 我想做語言相關的,而老師本身有計算語言學的學位
  3. 老師接受我做比較偏應用而沒有什麼理論的論文
  4. 可以跟婷婷互助合作
  5. 老師學生雖然多,但都會照顧到每個學生,也會定期開會
  6. 老師比較屬於放任式管理風格,定期開會但不會緊迫盯人

要往哪個方向走 — 圖論研究(隨機客)

之所以沒有寫實驗室的名稱,是因為我沒有進過老師的實驗室,但是有跟老師做過研究。在大三、大四時,隨機客問我要不要跟他做做看研究,我雖然覺得老師的研究我可能做不來,但在老師聊過也提過我可能無法做出太好的成果後,我跟老師說我會試試看,加入了。

隨機客帶我做的研究是純圖論,非常的理論、邏輯要非常好,老師花了很多時間帶我看相關的研究,訓練我上台報paper並且讓我請教他我不懂的地方,但當時的我在老師如此努力的帶領後還是只懂了大概70%,在寫論文時也是在似懂非懂的狀況下寫的,也導致邏輯常常很奇妙,因為我自己根本不懂自己在寫什麼。而複雜的圖論要具像化靠的是很多的Theorem,我沒辦法具體的想象出,現在我在談的圖長什麼樣子,也發現自己真的不是做如此理論的研究的料。

雖然最終沒有完整的成果,但跟著老師的這段時間,老師帶著我申請了大專生論文計畫,是我第一次試著寫自己的論文、讀相關的論文並引用需要的部分,了解latex的排版與線上的協作,加上老師修改與更正(隨機客英文也超好!!!),我初嚐一份完整的研究需要有多少背後的付出,從確立研究題目、相關論文的閱讀、思考自己的解法到可以好好的撰寫論文,這段過程我獲益良多。同時因為我真的發現自己想不出來老師想導引我的作法,對一些需要元素也似懂非懂,而漸漸的開始在研究中擺爛,最終沒有做出成果,這部分也很對不起老師。

如果對於圖論或隨機客其他研究有興趣的人,我是很推薦去找老師聊聊的,老師很認真也會很好的引導學生,雖然結果並不完美,但跟著老師做研究的過程我收穫非常的多。

要往哪個方向走 — CTF競賽與網路安全實驗室(nslab)

以下三句敘述有一句是錯的,可以先猜猜是哪句

  1. 我有跟著網路安全實驗室的蕭旭君教授做過相關研究
  2. 我有跟網路安全實驗室的夥伴們一起出國比過賽
  3. 我大學時期實體上待最久的是網路安全實驗室

與資安的開始是從大三的選修課,我一直覺得駭客很帥、也覺得資安是個很酷很有趣的領域,而當時又正又帥的旭君老師開了一門資安入門課,我很開心的去修,也踏入了CTF (Capture the flag, 一種資安競賽)的世界。入門課的主軸是一些資安基本理論跟設計,但作業是比較類似的CTF找flag的形式,我鼓起勇氣去問了大神學長,請教他我不會的部分,而學長很熱心的解答我的疑惑,後來學長也問我要不要一起打比賽,當時學長還不是用Balsn的名義在打比賽,我就這樣加入了後來變成Balsn的團隊。

當時初入這個領域,我也不知道自己能做些什麼,就跟著學長打了幾場比賽,靠著學長罩在神盾盃拿了名,同時也發現題目有夠廣又通靈,簡直是腦筋急轉彎,但總之還是好玩的,什麼找加油站在哪裡、看貓咪圖片解凱薩密碼,還有許多題目會讓我查不同的編碼、工具,吸收了一堆當下無用卻有趣的小知識,所以也一直持續著打著比賽。那段時間有比賽就會窩在nslab,和大神們一起打比賽,有時也會開檢討會,一待就待到晚上十點,是一段雖然累但玩得很開心的時光。

這組可愛貓貓可以解出一段英文字,是某次ctf的flag,大家可以玩玩看(在網頁上似乎會破圖,建議下載來看XD)

因為本意是將比賽當成有趣的活動,所以我雖然有修一些相關的課,但一樣逃避著我不拿手的pwn、binary的部分,而隨著打的比賽等級越來越高、題目越來越難,加上我大四時對學習感到疲憊,我也開始面臨解不出任何一題的窘境,最終就慢慢淡出了,至於對資安的愛也有讓我考慮過要不要做資安相關的研究,但因為我大部分時間還是在打CTF,衡量過後也比較喜歡機器學習應用相關的研究,所以最終沒有選擇nslab。

以為故事到這就結束了嗎?並沒有。到了碩一時,Balsn拿到了到羅馬尼亞比某個CTF總決賽的資格,結果大學部剛好撞到考試時間,大神學長找了一圈最終問我要不要去比,當下的我已經一陣子沒打比賽,但如果我不去似乎也找不到人了,於是我就開心地當旅遊出去玩了~結果我在比賽中以絕對音感拿到了一題的first blood (全場該題首殺),那題題目是一個錄音檔,要將裡面的音數字化,再用凱薩解密轉成flag,總之那題題目不難,但因為我直接用聽的所以速度很快。最後名次雖然不太亮眼,出國比賽總是是個開心的回憶。

我想這段在nslab跟balsn(發現隊伍名的玄機了嗎XD)一起打比賽的經驗讓我Google能力大增、通靈力也大增,畢竟CTF是個完全沒有範圍,什麼都可能入題的比賽。鼓勵大家,如果對什麼有興趣,可以去找找系上相關的課修,或找該領域的強者聊聊,再參加相關的比賽或活動,在這過程中認識該領域的大神跟志氣相投的朋友,收穫絕對超過自己當初的想像!並且還會有一些意外的收穫,我從來沒想到學樂器居然可以解CTF題……點終究會慢慢連成線的!

要往哪個方向走 — NASA 的SA(System administration 系統管理組 )

資工系身為資工系,當然要有自己維護的網路、信箱、電腦以及系上工作站!NASA是負責維護系上這些系統的團隊,而為了培養跟招募團隊人員,蔡欣穆教授開了一門課,內容包括了網路、系統相關知識以及實作。當時我看到系上廣告,覺得這門課感覺很酷,又可以對一些離自己比較近的技術有了解,就寫了HW0報名了這門課。

課的內容很充實,而且跟生活很近,例如網路線怎麼做、防火牆設定怎麼設、系統維護相關的指令與工具,裡面教的wireshark在之後的CTF競賽中也派上了用場。通過第一門課可以選擇要不要進到NASA系統中當見習生,當完見習生後變成正式組員,而這段過程中,我又陸陸續續學了LDAP怎麼架、mail server怎麼架,也發現系統真的很難搞,哪裡設定不對、哪裡看不懂設定,都會導致我沒辦法架好我要做的功能,這也間接導致我最後決定加入個人電腦組,也就是管理204裡面那些桌機。

204的桌機也不好管,光是還原卡這件事就常常會出問題,再加上電腦中有雙系統,還原卡只管得到Windows,讓整個管理更加混亂,這也是為什麼現在204桌機的Ubuntu系統只有Guest可以用。而軟體是怎麼被安裝到各台電腦呢?我曾經傻傻的以為全人力慢慢一台一台裝,後來加入SA之後才知道是還原卡附帶的功能,以一台機器為主,先裝好要裝的軟體,再派送硬碟上的內容到其他電腦,但這有時候會因為網路問題或電腦自己不穩而失敗,所以派送時,還要確認有沒有哪台電腦派送失敗,幫他重新裝。真的要自己體會過才知道電腦多難管,大一時常常會抱怨204電腦開機慢很難用,自己管之後只祈禱電腦不要故障就好了。

對於資工系的學生來說,這些修電腦、修網路、架系統的技能我覺得蠻重要的,但是要多深入我自己也不是很確定。在NASA中會有一些大神真的對這方面非常有興趣,研究得很深入,如果系統有漏洞或哪裡有新功能也會馬上更新或試用,也有些人是進來才慢慢學的,維護系上的系統大致上夠用就好,這都是自己的選擇,端看自己想學多深。這邊想提供給大家,如果想有這方面實務上的學習,是可以去修NASA的,不過聽說他現在變成一門loading不小的課,如果有興趣的可以衡量時間上的分配。

要往哪個方向走 — 小結

從以上幾個我待過的實驗室、做過的相關領域,到最終選了一個自己相對有興趣的領域繼續念碩士,我不知道我還有沒有沒探索到的領域是我更有興趣的,但至少在這過程中,我慢慢釐清了自己一些條件的限制以及想做的方向。

我想很重要的一點是,有興趣就去試試看!這跟投資不一樣,錢砸進去沒了就沒了,去試一個新的領域,發現自己很喜歡,或是發現自己再也不要接觸這些領域,或是很難過的發現自己就不是這塊料,這些都是回饋。就如同我上面所說的,跟著隨機客做研究,我沒有做出結果、最後發現自己並不適合這個領域,但中間的思辨讓我學習許多,也補足了一般課程中不會有的完整研究過程。我想這裡可以引用愛迪生的例子,試了很多材料終於發現哪個適合當燈絲,但不開始試永遠不會找到可以用的燈絲。

這篇提供給那些想多了解資工系上一些實驗室狀況,或是想知道在大學生活該怎麼開始去接觸一個新領域的讀者們做參考,希望大家看了可以被鼓勵,勇敢踏出步伐去探索CS (或是自己的領域)的世界~

--

--