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