像計算機科學(xué)家一樣思考
軟件工程師Yevgeniy Brikman認為:
編程氯庆,碼代碼只是一個工具蹭秋,只是計算機科學(xué)的一部分。是一種你與計算機交互的方式:如何顯示一個app堤撵,如何存儲數(shù)據(jù)仁讨,如何對你的點擊回應(yīng)。
而計算機科學(xué)实昨,教會你批判性思考洞豁,能夠在科技領(lǐng)域之外使用,教你如何處理并重新表達信息的能力荒给。
比如說丈挟,我們坐飛機,但不需要每個人都考飛行員證志电。然而有些工具能夠幫助你理解飛機飛行曙咽。
物理和數(shù)學(xué)幫你理解重力,力挑辆,壓力例朱,速度,摩擦鱼蝉,升力洒嗤。
生物學(xué)教你人體在高空,缺氧蚀乔,極寒中的反應(yīng)烁竭。
歷史解釋了飛機是如何發(fā)明,發(fā)展吉挣,它在旅行、商業(yè)婉弹、戰(zhàn)爭中的作用睬魂。
高中的教育讓你有了一個更廣泛的認知,而不是教你如何開具體某一種型號的飛機镀赌。
同樣的氯哮,我們應(yīng)該關(guān)注于計算機科學(xué),而不是單純的編程商佛。前者是一種通用的思維方式喉钢,后者只是一個具體的工具。
什么是計算機科學(xué)良姆?
計算機科學(xué)是一門計算的學(xué)問:如何表示肠虽、處理信息。
1. 解決問題:你會學(xué)習(xí)算法玛追,一種普遍的策略税课。比如divide and conquer, recursion, heuristics, greedy search, randomized algorithms. 這些幫助你建模闲延,分解,解決任何種類的問題韩玩。
2. 邏輯:abstraction, Boolean logic, number theory, set theory.
3. 數(shù)據(jù):information theory. 什么是信息垒玲?你如何表示它?如何給現(xiàn)實世界建模找颓?
4. 系統(tǒng):如何設(shè)計合愈、建立復(fù)雜的系統(tǒng),來滿足一系列需求和限制击狮?System engineering是每個企業(yè)的核心主題想暗。
5. 思維:理解人類思維最好的方法就是代替它。有些主題比如人工智能帘不,機器學(xué)習(xí)说莫,計算機視覺,自然語言處理寞焙。不僅僅是計算機科學(xué)储狭,還是生物、心理捣郊、哲學(xué)辽狈、數(shù)學(xué)。
計算機科學(xué)訓(xùn)練的是你的大腦呛牲,教會你一種思維方式刮萌。
然而單獨的思維是不夠的,我們還需要知道如何使用它娘扩。這時我們就需要學(xué)習(xí)工具——編程着茸。
什么是編程?
學(xué)習(xí)編程帶來一系列好處:
1. DIY:你可以實現(xiàn)自己想要的功能琐旁,比如給一系列照片重命名涮阔,一個excel公式來計算稅。給你的作品集建一個網(wǎng)站灰殴,給公司做一個手機app敬特,做一個可以和朋友一起玩的游戲。
2. 分析解決問題:一旦你構(gòu)建了一些app牺陶,解析出其他app就很容易了伟阔。不再害怕編程,在這個科技高速發(fā)展的時代掰伸,成為技術(shù)支持皱炉。
3. 事業(yè):學(xué)習(xí)計算機科學(xué)的目標(biāo)不是成為一個專業(yè)的編程人員。但如果你對其有熱情碱工,可以找軟件工程的工作娃承。
將計算機科學(xué)的思維和編程結(jié)合起來奏夫,就可以幫助你實現(xiàn)更多的東西。
《Don’t learn to code. Learn to think.》筆記