別以為是那些軟件開發(fā)定律,別以為是開發(fā)出那些特殊用途的軟件,別以為是軟件設(shè)計(jì)技術(shù)本身。只有一條真理決定了一個(gè)軟件程序員的成功還是失敗。由于堅(jiān)持這個(gè)真理,一個(gè)資深的程序員能在一天的時(shí)間里學(xué)會(huì)一門新的編程語(yǔ)言,而由于不堅(jiān)持這條真理,一個(gè)初級(jí)的程序員用十年時(shí)間也只能掙到一份糊口的錢、永遠(yuǎn)是來實(shí)現(xiàn)別人的設(shè)計(jì)、永遠(yuǎn)不夠優(yōu)秀而得不到晉升的機(jī)會(huì)。這條真理讓你看清了差的程序員和好的程序員的不同之處,好的程序員和偉大的程序員的不同之處,偉大的程序員和能通過自己的技術(shù)創(chuàng)造出一個(gè)億萬(wàn)美元價(jià)值的程序帝國(guó)的超級(jí)程序員的不同之處。

不是什么復(fù)雜的道理,不是什么難懂的理論。不是具有什么天賦或“編程超能力“才能做到的事情。最終成為的是一個(gè)優(yōu)秀的程序員還是一個(gè)很爛的程序員,這跟你的出身一點(diǎn)關(guān)系都沒有。

而真正的原因只有一個(gè),唯一的一個(gè):

對(duì)所做的事情的理解越深,你就會(huì)做的越好。

超級(jí)程序員跟那些平庸的、一般的程序員比起來,對(duì)自己要做的事情的理解要深的多的多。這就是原因。

要想成為一名出色的程序員,你所要做的就是完全的理解要在做的事情。

有人會(huì)說,該知道的我都知道了。而對(duì)說這話的人的驗(yàn)證就是看他們能有應(yīng)用他們知道的知識(shí)的能力。是否他能夠構(gòu)造出完美的系統(tǒng)架構(gòu),讓人們能輕松的維護(hù)?是否他能在不皺眉頭的情況下把一個(gè)普通程序員毫無(wú)可能解決的問題輕松解決掉?是否他能在被詢問時(shí)能用最簡(jiǎn)單的概念把任何問題都闡述明白?如果能夠,那他就是一個(gè)杰出的程序員,他能很好的理解了他在做的事情。

然而,盡管這些人看起來已經(jīng)“無(wú)所不知”,很多的程序員(包括我)都感覺他們?nèi)匀辉谥R(shí)的海洋里奮斗不已。有如此多的東西需要去學(xué)習(xí),一個(gè)人幾乎要花費(fèi)他畢生的心力去學(xué)習(xí),但仍然很難說能掌握計(jì)算機(jī)知識(shí)的90%。

而這場(chǎng)持久戰(zhàn)中的秘密武器、戰(zhàn)勝計(jì)算機(jī)知識(shí)的亞瑟王的神劍,就是透徹理解。對(duì)你的領(lǐng)域里的基礎(chǔ)知識(shí)理解的越好,你就越容易提升到更高的層次。你對(duì)這一層次的知識(shí)理解的越好,你就更容易掌握下一層次,以此類推。一旦你從最簡(jiǎn)單最基礎(chǔ)的知識(shí)走到最高級(jí)最復(fù)雜的理論,你可以從頭再過一遍,此時(shí)你會(huì)驚奇的發(fā)現(xiàn),在最低最底的底層,竟然還有那么多知識(shí)需要學(xué)習(xí)。

看起來這個(gè)道理實(shí)在是太簡(jiǎn)單,難以受到重視,但事實(shí)就是這樣。通往杰出的程序員的道路就是完全的深入的理解,從掌握精通最基本的知識(shí)開始,從而逐漸牢固掌握更高級(jí)的知識(shí)。

我不想騙你—這是一個(gè)很長(zhǎng)的路程。但你是值得去做的。在路的盡頭,你會(huì)突然發(fā)現(xiàn),自己神奇的成為了一位資深的程序員,受到所有人的尊敬。你能成為一位神奇的程序員,任何事情都難不倒的程序員,讓其他程序員都羨慕的程序員。誰(shuí)能預(yù)料到呢?我不能告訴你你該做什么或能成為什么。但我可以告訴你我發(fā)現(xiàn)一些真實(shí)的道理和有價(jià)值的東西。怎么去做全在于自己。

-Max