|
半路出家踏進(jìn)這個(gè)領(lǐng)域的,基本上全部是靠自學(xué)的。下面是這些年來(lái)的自學(xué)途徑(含未完成部分),目標(biāo)是為未來(lái)的30年進(jìn)行技術(shù)儲(chǔ)備。換一句話說(shuō),今后三十年都打算搞技術(shù)。什么程序員三十歲怎么怎么,先把這句話踐踏在腳下。
下面的圖中,黃色部分是正看的(含看了七八年還沒(méi)看完,但又不想放棄的的),紅色部分是待看的,白色是已看的。打叉的是不想看的。
首先,是技藝部分。自學(xué)路線如下:
當(dāng)然,中間還看過(guò)其它很多相關(guān)書,但我覺(jué)得那些書不是很重要,包括《設(shè)計(jì)模式》。
然后是領(lǐng)域部分。把軟件開(kāi)發(fā)分為三個(gè)領(lǐng)域:它的本身領(lǐng)域/行業(yè)應(yīng)用領(lǐng)域和企業(yè)(政府)應(yīng)用領(lǐng)域。
1. 本身領(lǐng)域
這張圖中,我把領(lǐng)域分為四個(gè)維度:系統(tǒng)、數(shù)據(jù)、算法和網(wǎng)絡(luò)。這四個(gè)維度在未來(lái)的30年中都會(huì)很重要。上面的書都是我個(gè)人覺(jué)得適合自學(xué)的書。
備注:
(1)別聽(tīng)Google咋呼什么操作系統(tǒng)會(huì)過(guò)時(shí)。操作系統(tǒng)在幾十年內(nèi)仍然是基礎(chǔ)。嵌入式那一堆我不了解,但PC、服務(wù)器、移動(dòng)設(shè)備未來(lái)可能仍然是Windows和*nix的天下,因此,一本W(wǎng)indows Internals和一本Linux內(nèi)核的書就夠了,兩個(gè)操作系統(tǒng)對(duì)比著看,可以更深入的了解操作系統(tǒng)。
(2)雖說(shuō)《計(jì)算機(jī)組成與結(jié)構(gòu)》是《計(jì)算機(jī)體系結(jié)構(gòu)·量化研究方法》的基礎(chǔ),但我覺(jué)得做軟件的,可以不看《計(jì)算機(jī)組成與結(jié)構(gòu)》,直接看《計(jì)算機(jī)體系結(jié)構(gòu)·量化研究方法》,后者很易讀很有用。
(3)不推薦自學(xué)者看《算法導(dǎo)論》,《算法導(dǎo)論》可作為手冊(cè)來(lái)用。這里推薦的是《算法:X語(yǔ)言實(shí)現(xiàn)》和《算法引論》兩本書,第一本書是基礎(chǔ),第二本書是講思路的。
(4)《網(wǎng)絡(luò)處理器與網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)》一書的前半部分寫的非常精彩、簡(jiǎn)煉,俺只翻過(guò)前半部分,后半部分不是搞網(wǎng)絡(luò)設(shè)備的不推薦看。
(5)隨機(jī)圖、復(fù)雜網(wǎng)絡(luò)這是未來(lái)網(wǎng)絡(luò)應(yīng)用的數(shù)學(xué)基礎(chǔ)。
下面是斃掉的:
(1)前面兩個(gè)大家都叫好,但我實(shí)在靜不下心來(lái)看,太抽象,斃掉了。
(2)離散數(shù)學(xué)太雜,但具體的主題又講的太淺,基本上在每本書中都會(huì)講一些該領(lǐng)域的數(shù)學(xué)基礎(chǔ),離散數(shù)學(xué)就可以不看了。想深入某一領(lǐng)域直接Google這一領(lǐng)域的paper就可以了。我沒(méi)看一本離散數(shù)學(xué)書,感覺(jué)對(duì)后面的自學(xué)沒(méi)有影響。作為替代品,我推薦中科大某老師寫的《數(shù)學(xué)基礎(chǔ)》(很遺憾的是,這本書我現(xiàn)在搜不到了),講集合論的,看起來(lái)非常爽。
(3)《編譯原理》我個(gè)人認(rèn)為也可以不看。它很重要不假,但不是必要的。
2. 行業(yè)應(yīng)用領(lǐng)域
行業(yè)應(yīng)用的基礎(chǔ)是數(shù)學(xué)。因此主要是復(fù)習(xí)和自學(xué)數(shù)學(xué)知識(shí)。未來(lái)幾十年,IT會(huì)大量的向各行業(yè)滲透。因此,非離散數(shù)學(xué)比離散數(shù)學(xué)會(huì)變得有用。下面是俺的儲(chǔ)備圖:
嘿嘿,從上圖可以看出,俺最近正在這一領(lǐng)域攻城掠地。
備注:
(1)線性代數(shù)非常有用,但太TMD抽象,學(xué)了就忘(大學(xué)中開(kāi)了兩門線性代數(shù)課,不好意思,畢業(yè)后馬上忘記光了)。線性代數(shù)的核心是“變換”,但這玩意,對(duì)高維空間很難理解。因此,需要以復(fù)分析作為過(guò)渡,把復(fù)數(shù)運(yùn)算作為一種變換來(lái)理解,然后再過(guò)渡到理解線性空間中的變換。復(fù)分析以前沒(méi)接觸過(guò),掃了幾眼那本《復(fù)分析:可視化方法》,突然感覺(jué),對(duì)線性代數(shù)的理解深入一點(diǎn)了。
(2)《變分法》以前沒(méi)接觸過(guò),接觸之后發(fā)現(xiàn)很好很強(qiáng)大。
(3)行業(yè)應(yīng)用的關(guān)鍵是數(shù)值分析。
(4)數(shù)值一般都是采樣來(lái)的,因此,又需要了解《信號(hào)與系統(tǒng)》。
(5)隨機(jī)、統(tǒng)計(jì)、模式分析,這些是隨著計(jì)算機(jī)技術(shù)的發(fā)展大放光芒……
(6)上面的核心理論都是幾十年一二百年前的,估計(jì)幾十年內(nèi),不會(huì)過(guò)時(shí)。是計(jì)算機(jī)的發(fā)展,讓這類計(jì)算變得可行了。
3. 企業(yè)(政府)應(yīng)用領(lǐng)域
想了想,軟件可能涉及的核心應(yīng)用領(lǐng)域應(yīng)該是上面這些(“中國(guó)人的心理”除外)。這些在N年前已經(jīng)蹂躪過(guò)了。不過(guò)現(xiàn)在基本不做這類方面的開(kāi)發(fā),改作管理研究了。把《運(yùn)營(yíng)管理》排第一是因?yàn)镋RP、OA、供應(yīng)鏈之類的應(yīng)用都處于運(yùn)營(yíng)管理的范疇,從運(yùn)營(yíng)管理的角度進(jìn)行了解,會(huì)更深刻些。
下面是三個(gè)英文詞:
Operation System - 操作系統(tǒng)
Operation Management - 運(yùn)營(yíng)管理
Operation Research - 運(yùn)籌學(xué)
中文名字不知道是那幾個(gè)家伙翻譯的,搞的三個(gè)詞完全到三個(gè)不同的領(lǐng)域了。Operation System 在 IT, Operation Management 在管理,Operation Research 在數(shù)學(xué)。實(shí)際上這三個(gè)是三位一體的,都是講怎么管理和調(diào)度資源,怎么樣組織流程的,怎么樣優(yōu)化資源和流程的。Operation System 的對(duì)象是計(jì)算機(jī)資源,Operation Management的對(duì)象是企業(yè)資源,Operation Research為上面兩個(gè)提供數(shù)學(xué)支持,三者三位一體:
再放大點(diǎn)看,可以看見(jiàn)上面三個(gè)領(lǐng)域也是三位一體的:
上面是為未來(lái)三十年做的知識(shí)儲(chǔ)備。
it知識(shí)庫(kù):自學(xué)之路——為今后的30年做準(zhǔn)備,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。