·當(dāng)你被各種新奇的概念、瑰麗的界面和無(wú)休止的名詞弄的筋疲力盡的時(shí)候,閉上眼睛,想象一下內(nèi)存中機(jī)械的、冰冷的一條條高高低低的電位指令,想想地址、寄存器、call、mov、in、out指令,你會(huì)發(fā)現(xiàn):所有概念都是人自己創(chuàng)造的,真實(shí)的世界原來(lái)是那么的單純明了。
·高級(jí)語(yǔ)言如:c、c++、java,都是假的。高級(jí)的概念如:段、對(duì)象、組件都是假的。他們最終都要變成內(nèi)存中一個(gè)個(gè)機(jī)器指令(電信號(hào))。
·閉上眼睛,想象下操作系統(tǒng)、dll模塊、編譯器、鏈接器、載入器、各個(gè)api函數(shù)、在內(nèi)存中都是一塊一塊的指令集合。你編的程序進(jìn)行編譯、鏈接、裝載、系統(tǒng)調(diào)用時(shí),其實(shí)就是在這些指令塊里面call來(lái)ret去,就是跟這些地址打交道。看看c函數(shù)編譯出來(lái)的匯編吧,就是push,然后call。
·當(dāng)你試圖弄清一個(gè)層面的問(wèn)題時(shí),往往需要借助更深層面的知識(shí)。比如c語(yǔ)言的函數(shù)其實(shí)就是匯編里的幾個(gè)push和call。
·程序的本質(zhì)在“序”。幾個(gè)簡(jiǎn)單的有限的東西通過(guò)不同的排列(序),可以構(gòu)成復(fù)雜而強(qiáng)大的東西。比如26個(gè)字母構(gòu)成英語(yǔ)、簡(jiǎn)單的機(jī)器指令構(gòu)成繽紛的軟件。(這種思想是樸實(shí)而自然的,比如簡(jiǎn)單的磚頭和泥灰可以蓋成各式各異的建筑,簡(jiǎn)單的原子構(gòu)成復(fù)雜的世界。古代有“道生一,一生二,二生三,三生萬(wàn)物”的說(shuō)法,可見(jiàn),圖靈的通用計(jì)算機(jī)思想也沒(méi)有什么新奇之處。)
·計(jì)算機(jī)學(xué)科的基石。
思想方面:
1. 協(xié)議。就是大家都遵從的一種約定,這樣才能把力量用在一處。數(shù)據(jù)結(jié)構(gòu)也是協(xié)議。
2. 模塊化。把能復(fù)用的東西,抽出來(lái),避免重復(fù)勞動(dòng)。子程序(過(guò)程,函數(shù)),就是最好的例子。
·人應(yīng)該做有創(chuàng)造性的工作,單調(diào)重復(fù)乏味的事情讓計(jì)算機(jī)去做