我經常會強調我的一個觀點:
思想(或思考的方法)高於具體的方法,具體的方法又高於特定的軟件使用。
我總是認爲在學習知識時,尤其是針對已經不在學校裏,不再有大把的時間可以讓你字典式、無具體目標的學習知識的工作人士,注重以上的優先順序無疑能達到事半功倍的作用。
就編程來說,思想(思考的方法)是指解決問題的思路,在這個層面,甚至往往與具體的語言是無關的;具體的方法是指具體的編程語言,比如:C,C++,VB,Java等;特定的軟件使用是諸如Visual C++6.0,JBuilder等具體的工具軟件。
編寫C語言類圖書有兩種寫法:
(1)以知識點爲線索。這類圖書往往以介紹C語言的基本功能點爲主,會講到變量類型、會講到程序語句的類型(順序、條件、循環等)基本概念,也會講到指針、函數、數組、數據結構、宏和預處理等C語言的核心功能,讀完(並真正掌握)以後基礎很紮實,但是往往會只見樹木,不見森林,真正去動手編程解決問題,卻還是不知從何處下手。這類書佔據了C語言圖書的大部分市場。
(2)以問題解決爲線索。這類圖書保持了良好的大局觀,從介紹如何解決問題的思路做起,把C語言的知識融入其中介紹,往往能夠更好地幫助讀者直接認識到編程的本質,這類圖書編寫起來要花費更大的精力,市面上也很難找,尤其是做到通俗易懂,更加不易。
《C語言的科學與藝術》無疑是第二類圖書中的精品,並且即使是入門級讀者,也可以輕鬆的讀懂。
欣賞書中的幾段話,特摘錄如下:
“程序設計的精髓在於解決問題。學習如何表達固然重要,但學習如何找出解決問題的方法則是更大的挑戰。”。
“……不僅象程序員一樣編寫程序,而且象程序員一樣去思考”