1.請分享印象深刻的主修?
資料結構。
這門課算是資工系核心的一門課,我覺得很重要,因為裡面的幾乎就是資工系的基本觀念和應用。會介紹Arrays、Stacks、Queues、Linked Lists、Trees、Graphs、Sorting、Hashing等等在資工領域應用非常廣泛的結構的實作方式。這門課通常會配合作業的實作,實作很重要,在這門課程中我釐清了關於Linked Lists的觀念。原本大一剛接觸時,我對跟pointer有關的應用完全畏若蛇蠍,時常搞不清楚pointer指到哪裡、該怎麼透過他去取資料?但在大二修完資料結構之後,我雖然不敢說對pointer完全熟悉,但對Linked Lists的使用已經不會有障礙了,基本上可以像使用Arrays般順暢。不只Linked Lists,諸如Trees、Graphs 、Sorting在這門課中都可以清楚了解它們的原理,並透過實作加深印象,雖然很多結構在STL中都已經有包好的函數可以用,但我覺得領會背後的運作方式非 常重要的!
2.你覺得貴系給你的專業訓練是什麼?你覺得這樣的訓練在就業市場有什麼優勢和幫助?
其實我覺得,訓練還是要看個人,學校只是教給我們基礎訓練,很多還是要自己去延伸。我覺得資工系很重要的一部分就是實作,什麼都要自己想一想、寫出來測試一下,光看理論是沒有用的。基本上學校的課會分為兩大類──實作和理論。實作如:資料結構、計算機概論;理論如:離散數學、演算法、正規語言,通常理論課會比較難以理解,但如果配合實作,就會發現一些文字敘述難以理解的東西,實做起來卻會讓你豁然開朗。
但是,其實教授上課時也會談到,某些課程上學的東西,其實在現實中已經沒有再使用了。並且課堂出的作業練習其實也只是小程式。真正想培養之後在就業市場的優勢只能靠自己去研究、發展,如果光吸收學校給的知識我覺得是不夠的。至於幫助的話,我覺得在學校學習過程中,要培養出良好的coding style,這對之後的職場生涯是必要的,因為在職場中不可能像在學校只寫一些小程式、一個人就能完成,而是要寫多人合作的大型程式,這時候如果你寫的code讓人看不懂,會造成很大的困擾!
3.什麼特質,興趣的人會適合念這個科系?
基本上,一般常聽說念資工系數學要好。我覺得在實作上面其實不太需要數學非常好,但數學好一定會有幫助。至於在理論課上,數學好的一定比較如魚得水,雖然資工系的數學課和一般理論數學不一樣(這是我數學不好的心得)。
要怎麼評估自己適不適合資工系,首先,有摸過code應該可以知道自己對這方面有沒有興趣。至於沒摸過code,像我就是在上大學前完全沒碰過程式,這時候在寫第一到第二作業的時候簡直痛不欲生,但熟悉了以後回頭再看,發現那只不過是非常簡單的東西。其實我覺得沒有碰過根本很難知道自己喜不喜歡、適不適合,聽別人空泛的描述沒有真實體驗過還是很難了解的。
不過基本上要具備抗壓力,因為BUG抓不出來可能會讓你報銷整個晚上乃至好幾天,有時候你以為程式是照著你的想法做,其實他運作的方式根本不是那樣,所以也要很有耐心。
建議是在高中一二年級可以參加一些大學系所辦的營隊,雖然主要是在團康活動,但也有蠻大一部分會介紹該系,如果對資工系有興趣可以去參加各大學的資工營,裡面基本上會有一些課程能讓你了解資工系的課程在做些什麼(但不會很深入)。
4.你後悔當初的選擇嘛?覺得選擇這個科系,你改變最多的是什麼?
不會後悔。雖然我當初只是因為對電腦有興趣、喜歡玩線上遊戲而選擇這個系,但接觸過後發現我並不討厭,也蠻喜歡寫code的。資工系的課雖然有跟線上遊戲有關的,不過都是要寫code,而不是畫圖,大家一定要分清楚這個差別!例如像電腦動畫這門課,主要還是跟code以及物理公式打交道,絕對不是畫畫圖建建模而已。
改變我最多的可能是思考方式吧,以前很多事都不會太去細想、分析,但在寫code的過程中有清楚的思路是很必要的!