「一篇說完資工系四年所學」
「前言」 最近公司內的新人越來越多,而且很多不是相關工程背景的學生,在教導或是說明一些電腦科學的用詞時,很明顯的她們並不曉得是什麼,這依舊是老問題,自己平常熟悉的事物在其他人眼中卻是另一個世界的內容,因此藉這篇文章機會把整個大學中電腦科學課程中所想要傳達跟教導的事情一起描述完。 「建模:描述名詞並且量化之」 >你怎麼描述愛情是什麼? 這算是種常見的問題,你怎麼完完整整的說明你喜歡某一個人?你可能會說他長得很帥、個性很好、會照顧人、身穿名牌衣服、家裡有錢,既然如此,下一個問題是,你要怎麼把這些資訊放到資料庫裡頭?你要怎麼把長得帥這件事情用資料描述出來? 這個問題的本質是在談建模(Modeling),要怎麼把東西量化(quant)起來變成可以描述的內容,比較常見的情景是,購買商品的評分,或是谷歌地圖上的地點評價,你在嘗試給予這個地方一個量化的標準,當然一個人的評分會十分偏頗,但如果拉一萬個人一起幫忙的話,效果就會大不同。評分會形成某種趨勢存在,有些人會按1分,有些人會按2分,有些人會按3分等,你會得到某種回歸趨勢,為了得到這個趨勢,你需要先把事情量化並且描述下來,而描述下來的東西我們則可以進行管理。 舉例來說:你會想知道,一間雞舍有多少產能,我這個雞舍有好幾排不同品種的雞正在生產雞蛋,為此你會把雞給個編號,給一個ID 好辨識,同時會說這個雞是黑色的、體重多少、多少年齡,嘗試把對於雞的描述記錄下來。 「管理物品最有效的結構:樹狀結構」 >三年五班七號給我過來! 有趣的地方來了,萬物總是會被歸納在一起,如果你整理自己的房間一樣,你會把衣服收在一堆,褲子收在一堆,鞋子收在一堆,這也叫做物以類聚。而為了管理你的房間,你會採用樹狀結構的方式管理房間內容。 一樣的管理管理雞社也是,相同品種或是顏色靠近的雞會被收在一起,你會直覺知道雞在那一個排列底下,用樹狀結構管理是一直以來的作法,而且也是方便管理的,回憶一下,生物中的,界門綱目科屬種,也是為了管理自然界中的各種生物,軍隊治理中也是,我們用班、排、連、營、軍團來管理,這也是某種樹狀結構。 「資工重點項目」 >虛擬世界跟真實世界是做相同的事情 「資料結構」旨是在管理空間用的,方才說過,最好管理的方式是樹狀結構,腦中直覺想到的是網狀結構,但效能不佳,鏈狀則是太慢。可以管理空間後,再來就該提升效率了,也就是「演算法」存在