作者序?? ?
我經常被問到一個問題:當初你為什麼會去學程式設計?因為我很喜歡玩遊戲。每一個喜歡玩遊戲的人,都夢想著可以透過修改遊戲的程式,使遊戲中的自己變得非常強大,而這需要學習程式設計。其實每一個人都曾有過創造遊戲的夢想,那我們為什麼不把這種夢想變成學習的動力呢?我就是這樣踏上程式設計之路的。
強者肯• 湯普遜(Kenneth Lane Thompson)自己編寫了一個叫作《星際旅行(Star Travel)》的遊戲。而湯普遜為了能更順暢地玩這個遊戲,竟然自己動手用組合語言編寫了UNIX 作業系統。後來他覺得用組合語言寫UNIX 作業系統非常麻煩、非常辛苦,於是和另一個強者丹尼斯• 里奇(Dennis MacAlistair Ritchie)一起創造了C 語言。沒想到吧,C 語言竟然是一個強者為玩自己寫的遊戲而創造的。其實這在電腦界很正常,程式師們往往就是因為某個遊戲或者軟體的現有功能不能滿足自己的需求,才開發出了更加優秀的遊戲和軟體。本書中超可愛、超簡潔的「啊哈C」程式設計軟體也是這樣來的。
經常被問到第二個問題:為什麼普通人需要關心程式設計呢?因為現今程式設計師幾乎主宰了整個世界,控制著你我生活的各種層面。我們住的房子、穿的衣服、吃的東西、用的各種電子產品,以及我們去ATM 領錢、坐電梯、開汽車、坐飛機、坐火車??你坐火車時有沒有想過,一條鐵軌上同時運行那麼多列火車,是如何調度才沒有導致它們相撞呢?這個時代很難想像還有什麼不是透過電腦程式控制的。如果想理解這個時代,就必須得理解電腦程式設計,程式設計會讓我們以一種全新的方式來看世界。當然,在學習程式設計的過程中還可以提高我們的邏輯推理能力、批判性思考和動手解決問題的能力。與電腦展開的邏輯較量一定會讓你覺得很有意思。
還經常被問到第三個問題:什麼樣的人可以自學程式設計,學習程式設計需要什麼基礎?答案是只需要小學四年級以上,並且可以熟練運用滑鼠和鍵盤就可以。你若不信,那就從這本書開始吧。
程式設計很容易讓我們實現夢想。如果我們覺得某個遊戲玩得不爽,或者某個軟體不夠好用,想自己做一個,沒問題,現在就可以!而唯一的投入就是一台電腦。實現夢想從未變得如此簡單過。程式設計世界裡每天都上演著傳奇,一大批熱愛程式設計並且滿懷夢想的人正在充滿激情地奮鬥著。
程式設計將會改變我們的思維,教我們如何思考,會程式設計的人總想改變點什麼。正如賈伯斯所說的:“I think everybody in this country should learn how to program a computer, should learn a computer language, because it teaches you how to think.”