讀書筆記1:《C++沉思錄》
因為最近做圖形學方面的研究,要用C++。大一時的C++課學得一知半解,所以寫程式時經常碰壁,於是就想仔細學一下這門語言。去圖書館逛的時候發現了這本書,非常開心,便想拜讀一番。
今天讀完了第一篇——動機。這篇中,作者根據自身的經歷,講述了為什麼選擇C++。他並沒有講過多的專業知識,而是提出了幾個觀點。我認為比較有趣的有兩個:
第一,作者認為好的專案一般都始於小專案的成功,然後才逐步成長為優秀的軟體。在本篇中,作者對“軟體工廠”提出了質疑,他認為這其中所謂的“管理”,實質上並未對提高開發效率起到多少積極作用。軟體工廠忽視了程式設計和生產的本質區別:工廠製造大量相同的產品,講究規模效益;而軟體開發主要生產數目相對較少、彼此不同的人造產品,如果這些產品太相似,開發工作就變成了機械的、重複的事情,這完全可以用程式完成。作者認為,不如將軟體開發的理想環境比作修理廠——在那裡,熟練地技術工人可以利用手邊的工具來提高效率。
第二,作者由豪華轎車和用Lisp升級圖書流動報表的例子提出:我們不可能為特定的工具挑選問題。我們的思維應該是由問題出發的。而當時的具體問題就是作業系統多種多樣,大多數的程式語言都和程式設計環境相耦合。這就顯現出C++抽象、可移植、易擴充套件的優點了。
我覺得作者提出的上述兩個觀點非常重要。上世紀九十年代提出的的極限程式設計的思想,就有一種回到程式設計本質的味道。作者於1996年底編寫此書,可見其觀點十分前衛。之於他提出的第二個觀點,也是我一直執著堅持的。在不久前,我進行研究選題時,就與老師討論過這個問題。我認為研究應當從實際問題出發,老師給我補充了幾點:第一,這個問題並不一定是實際的,也可以是抽象的,黎曼在研究積分時並沒有想到會對相對論產生鋪平道路;第二,關鍵是研究者要對所研究的問題有濃厚的興趣。總結起來就是:研究應當從感興趣的問題出發。
推薦大家也讀一讀《C++沉思錄》。