分享到plurk 分享到twitter 分享到facebook

User/Sean

Sean(鄭宇軒)

Intro:

  • NCKU CSIE(2015~)

Work:

  • Contest:

    • KDD Cup 2017: Highway Tollgates Traffic Flow Prediction

Other:

  • Wake Lion(2016~)

Contact:

  • email: wannaplay1304@gmail.com

System Embedded Spring 2017

Homework:

Project:

心得

如同老師開學所說,這是一堂頗有挑戰性的課,但照理來說,大學裡的每堂課也都應當如此。若要總結本學期最大的收穫,其一是認識到自己不足的地方,其二是了解如何去搜尋跟篩選資料,其三是認清做一個工程師的生活不會輕鬆。 事實上,收穫絕對不止這些。例如本堂課以“複習所有資訊系的必修科”自居,結果的確是達成了這個目標。要寫出一個合格的程式,必須熟練C語言、資料結構、演算法、硬體架構…。C 的部分有 bitwise operator ,在 strlen, clz(ctz) 一些最基本的操作,再來是更深入的了解 pointer,進而在 C 用上 OOP 的概念實作 encapsulation。資料結構和演算法雖然用的不多,但仍有許多東西必須回去翻書,像是 heap, tree, merge sort。硬體架構尤其重要,首先是最關乎電腦速度的記憶體架構,因而需要處理 cache。這裡又分成前處理(pre-fetching)跟後處理(cache friendly algorithm)。計算機組織上課的內容自然不在話下,還要知道使用 GPU 讓計算再加速的方法。如果直接操作 assembly,也需要套用很多最佳化的方法。最後,能夠達到“就算是 gcc -O0 也跟 -O3 一樣快”的程式才算大功告成。 當然,我也因為這堂課的需求而去裝了 win/ubuntu 雙系統,但對於一個 window 使用者(簡言之: 電腦白癡)而言實在是無法習慣,所以最辛苦的就是前 4 個星期了。現在回顧起來還能對以前的自己自嘲的說“身為資訊系學生,電腦裡居然沒有裝個 linux,還不趕快去裝”。 我會推薦所有人來修這堂課,希望這不會帶給老師困擾,我知道老師超級忙。但自認程度不錯的同學可以來這邊挫挫銳氣,程度不好的同學可以來這邊快速進步,此乃“資訊老少”皆宜的課程,何樂而不為?只能說,誠實面對自己永遠不嫌晚。

自我評量分數 (1 到 10 級分)

我給自己6分。我不認為自己夠認真投入,而且後半部的課程,除了兩次作小組作業以外,多半沒有每周花 25 小時在這堂課上。一部分原因是在參加了 KDD Cup 大數據競賽,雖然最後也沒有得名。另一部份是我在猶豫要不要繼續走資訊這一行。老師一再強調這一行的運作模式,強烈的競爭、技術時時刻刻都在更新等等,這些我還可以接受。而這堂課就像是模擬剛出社會開始工作的情境一般,充滿挑戰、而且看似沒有完成的一天。每天每天就是起床、工作、吃飯、工作、睡覺的循環。但人總是有彈性的疲乏,經過本學期的實驗後,我發現自己的疲乏期限是 1 個半月,這也算是額外的收穫之一。過了 1 個半月後,我很容易產生一種抗拒的心理,而會需要轉移注意力的對象,例如改準備通識的報告、或是讀科外書。我認為這是今後要面對的一大問題,比起其他什麼專業知識還來重要。如果能早一點發現,或許就能找老師商量來解決了,因為像我這種有奇怪理由偷懶的人,老師以前肯定治療過不少吧。 總之這個升大四的暑假開始進入專題的重要階段,希望可以趁機培養好自主學習的習慣。期待暑期間的 C 語言講座與下個學期的課再見。