破除迷思系列:Programming = Computer Science ?

Gordon Lau

Gordon Lau

2018-11-01

一個大家經常會問到Tecky Academy的問題是,我們程式設計微學位課程跟大學的電腦科學學位有甚麼不同?為何大學要讀四年,Tecky卻是在三個月完成? 其實,歸根究柢原因是大學教的是電腦科學(Computer Science)Tecky教的是程式設計(Programming)

programming_vs_computer_science.png

Computer Science vs Programming

電腦科學 vs 程式設計

電腦科學作為二十世紀新興學科,其實包括許多不同的分支:程式設計(Programming)、人工智能(Artificial Intelligence)、計算理論(Theory of Computation),以至於電腦保安(Cybersecurity)。

由上圖可見,其實程式設計只是電腦科學的其中一小部份,就正如你只在中上環一帶閒逛,又怎能說自己已遊遍香港呢?正因為電腦科學涵蓋的範圍很大,所以修讀電腦科學需要涉獵許多不同的領域,亦因此需要有一定的數學能力以理解抽象的計算理論。

值得留意的是,軟件開發(Software Development) 、除錯(Debugging)、數據結構(Data Structure)、軟件測試(Software Testing)等技能,同時包括於電腦科學及程式設計之內。而相關技能所需的主要是邏輯理解能力而非數學能力。這亦解釋了為何有許多本身並非修讀電腦科學的朋友,靠著平常個人鑽研,亦有能力成為軟件工程師。

shortage.png

圖片來源:http://programarcadegames.com/index.php?showpart=0

職場前景比較

由於所着重的不同,學習電腦科學及學習程式設計比較適合不同的職位:

電腦科學的知識由於涵蓋範圍比較大,不論在程式設計、數據科學(Data Science)、電腦保安都可以有發展的空間,但由於在程式設計上的實踐不足,如果要在程式設計上發展,須要再花一些時間重新熟習程式設計的範疇。

而學習程式設計由於專攻程式設計一門,在軟件測試、程式碼重構(Code refactoring)方面可以着墨更多,因此如果想在程式設計一門發展,其實直接學習程式設計更為適合。 而由上圖可見,由於Programming 相關的工作空缺近年愈趨嚴重,直接學習程式設計亦未嘗不可。

Comments

Read More

Data Science? AI ? Machine Learning? 到底有何分別?

破除迷思系列:用Command Line 的都是Hacker?