【傳送門】
Part 1 - 數理基礎篇
Part 2 - 電腦基礎篇上
Part 3 - 電腦基礎篇中
Part 4 - 電腦基礎篇下
Part 6 - 進階篇中
Part 7 - 進階篇下

Meow~ 我是清大菸酒貓
之前的四篇大概簡述了一下資工系的必修課
但是這些課畢竟是基礎課程

如果想要更深入資工的專業
或是想要提高未來工作的薪資
那就必須要學一些更進階的課程

接下來我會簡略地介紹資工的進階領域
並且敘述一下我覺得大概所需的基礎能力
硬體類的進階技能就留給電機系的大大們解釋囉!
因為我跟硬體不熟XD

注意:這篇因為描述的是進階領域的內容,因此可能偏向給本科系的人看呦

───────────────────────────────────────────────────────
未來會涵蓋到的主題:

1. 演算法研究 Algorithm Research
2. 編譯器 Compiler
3. 程式語言設計 Programming Language Design
4. 電腦通訊 Computer Communication
5. 資料探勘 Data Mining
6. 機器學習 Machine Learning
7. 人工智慧 Artificial Intelligence
8. 影像處理 Multimedia Processing
9. 自然語言處理 Natrual Language Processing
10. 人機互動 Computer-Human Interaction
11. 電腦圖學 Computer Graphics
12. 平行程式 Parallel Programming
13. 分散式系統 Distributed System
14. 雲端計算 Cloud Computing
15. 儲存系統 Storage System
16. 作業系統研究 Operating System Research
17. 資料庫系統 Database System
18. 資訊安全 Information Security
19. 軟體工程 Software Engineering

因為主題的數量很多,因此建議大家挑有興趣的看就好
───────────────────────────────────────────────────────
1. 演算法研究 Algorithm Research

有句話這樣說:
「如果你發現程式跑得不夠快,在考慮提升硬體或者換其他程式語言之前,
請先考慮程式是否做了充足的優化」

人們總是希望程式能夠跑得更快
因此資工人中的一群高手,為了造福於世界上的工程師
一生致力於研究更高強、更有效率的資料結構與演算法

這必定是條艱苦且孤獨的道路
但也只有強者中的強者才有能力行走

〉需先修課程:資料結構、演算法


2. 編譯器 Compiler

編譯器是負責將某種程式語言轉換成更容易供電腦執行的翻譯者
它是每個程式設計師有意或無意間都會使用到的重要工具
有一部份的人,專門研究如何設計出好的編譯器

使用編譯器通常不難
但是要設計出一個好的編譯器
必須要對低階語言有著深入的了解
除此之外,還必須要完全了解被編譯的程式語言
以確保每一項要求都有被準確地實作出來
所以設計的人必須要考慮比別人都還要多的細節

B5 補充
其實編譯器除了以上這些之外
還有一個很重要的功能,就是對程式碼的優化
例如有些程式碼其實在寫法上有更有效率的方法
然後編譯器就可以幫你偵測出來,並自動修改成有效率的版本
這也是編譯器很重要的一個研究方向

〉需先修課程:程式語言、組合語言、計算機結構


3. 程式語言設計 Programming Language Design

你覺得現在的程式語言都很爛嗎?
你覺得 C 語言缺東缺西麻煩的要死嗎?
想要留名千古,讓每個人都使用你發明的東西嗎?

如果是,看來你想要設計自己的程式語言

程式語言永遠會有需要改進的地方
有一群人專門就在研究現存的程式語言中
有哪些不足,哪些需要改進
或者更極端的,嘗試設計出一套全新的程式語言
以取代現有的語言

〉需先修課程:程式語言、資料結構、演算法


4. 電腦通訊 Computer Communication

這類別涉及的範圍比較廣
不過主要是關於網路方面的東西
例如像是研究電腦要如何提高現在無線網路的傳輸速率
如何讓傳輸過程中的資料損壞後還能復原
如何讓資料透過網際網路傳輸時,盡可能地縮短路徑
這些都是這個領域在研究的課題

〉需先修課程:程式設計、演算法、電腦網路概論、離散數學
〉可能還需要:微積分、線性代數、機率


5. 資料探勘 Data Mining

資料探勘主要在研究如何從現有的資料中
利用一些演算法或統計的方式來挖出有用的資訊

舉個例子來說
有一間大賣場,收集了每個客戶都購買什麼樣東西的資料
然後他們使用了資料探勘的方式分析之後
發現某些客戶似乎在買了尿布之後,常常也會買啤酒
(也許是男性客戶出來幫老婆買東西)
這個時候他們就可以把啤酒放在嬰兒用品附近
縮短來回兩樣商品的時間,以提高客戶的購買意願
並增加他們的銷售量

發現這種關聯性就是資料探勘的目的

而正因為發現這些資訊對很多企業來說都有極大的幫助
因此許多企業也會比較願意給這類工程師較高的薪資

〉需先修課程:程式設計、資料結構、演算法、線性代數、離散數學


6. 機器學習 Machine Learning

機器學習與資料探勘很像
都是嘗試在現有的資料上做研究

比較不同之處是,機器學習通常會從更數學的角度來研究
並且注重數學模型的建立,以及對未來的預測

例如,假設現在有近一年的某某上市公司股價資料
我們就可以利用機器學習中的回歸分析(Regression)來預測未來的股價
(當然沒這麼容易啦XD 因為股價要考慮的因素過於複雜)

機器學習這個名稱的由來,主要是因為這個領域的研究
很像是讓電腦去學習過去資料中的「模式(Pattern)」
然後再拿這個 Pattern 去預測未來的結果

而通常要做到這樣的事情
就必須要借助一些統計學的幫助
因此基礎的數學能力絕對是少不了的

〉需先修課程:程式設計、資料結構、演算法、線性代數、微積分、機率
───────────────────────────────────────────────────────

不知道我有沒有在清單中漏掉什麼主題
如果有的話請提點我一下~

話說我想看醫學系在學什麼XD(敲碗

清大菸酒貓

共 13 則回應

2
Data Mining 尿布啤酒這個例子好像很有名吶

24YA
0
OSOSOSOSOSOSOSOSOSOSOSOSOSOSOSOS

QAQ
0
Wow 進階篇看起來果然相當專業阿~!!!
請問你們硬體的進階是學那些科目呀??

-W.H.H
2
你寫原文書中譯本 我一定買
0
我想 compiler 最精彩的地方莫過於它的 optimization
這當中可以把問題轉成圖論問題, 其實又會需要 algo 的背景 xD
3
每一門感覺都好厲害www
原po可以去出資工相關科普的書了,一定買!XD

-語璇
0
我可以坐等把超雜超多的東西寫出來的神人嗎?
0


低音bass哥
0
我是從一本 Web Data Mining 上面的書看來的
好像真的很有名XD

哦哦!對耶!
等等補上

主要是嵌入式系統跟 VLSI (大型積體電路設計) 吧~
不過我都不是很懂XD

我英文其實蠻爛的XD

哦哦!你說的對
等等補進 Algo 那塊

哈哈~ 寫這種文章還可以
寫一本書對我來說就太麻煩惹~

你說分享醫學院在做甚麼東西的人嗎?
感覺醫生好像真的都蠻忙的
只好慢慢等囉

0
喔~ 我走IC設計的,有修VLSI這方面的課XD
不過嵌入式系統就沒修過了 = ="

-W.H.H
0
我是說醫學系在學甚麼的方面XD
0
os 跟 compiler 真的很... = =

看decompile 出來的code 看到想死~~
怎麼可以寫的這麼醜拉~~~-
- - 帥版蝦 - -
0
哦哦~ 其實我有修過嵌入式
但是修得實在挺痛苦的
讓我發誓我之後絕對不要再碰這玩意兒XD

恩恩~ 我是這個意思沒錯~
所以你要來發一篇嗎XD

OS 怎麼惹~

清大菸酒貓
馬上回應搶第 14 樓...
回應...