痛並快樂著的C 學習之旅

2021-04-12 16:54:24 字數 2985 閱讀 8223

痛並快樂著的c++學習之旅

——書評《exceptional c++》

「程式設計是件快樂的事情,它的快樂來自如下幾點:第一、……;第二、……;第三、……;第

四、這種快樂是持續學習的快樂;最後、……」,在其經典巨著《人月神話》中,frederick p. brooks jr如是說

[1]。是的,作為乙個幸運的成為程式設計師

[2]的傢伙,我們在平時的工作中不止一次地體會到了brooks在書中所描述過的快樂。但是,套用一句經典的台詞:「快樂總是短暫的,換來的便是那無盡的痛苦」

j [3]

。同樣還是在《人月神話》中,brooks也提到:「然而這個過程並不全都是快樂……」。

然而,作為一篇書評性質的文章,本文的重點並不是告訴大家程式設計過程中的苦與樂如何如何;而是要竭力向讀者你推銷將要介紹的書籍的好處及缺點(當然,缺點肯定是一帶而過了)。上面這段話的實際作用也只是為了讓我更好地轉入到我想要敘述的事情之中。現在我將開始轉入到了本文的重點,向大家推薦一本講述c++的經典書籍——《exceptional c++》。

眾所周知的是,作為一門程式語言,c++一直以來都是以難學難用而「著稱」,不過作為一門重要的系統級的程式語言,很多時候我們又不得不去面對這門「強悍」的語言。為了讓大家更好地學習和掌握這門語言,c++社群做了大量的工作,編寫了大量的書籍來講述c++的方方面面,其間也湧現了大量的經典c++書籍,如:百科全書式的《the c++ programming language》

[4];參考手冊式的《the c++ standard library》;經驗條款式的《effective c++》;獨樹一幟專攻某一面的《c++ template —— the complete guide》、《inside c++ object model》……等等等等,這一切也讓學習c++的過程成為了一條「痛並快樂著」的經歷——痛是因為學習的過程,快樂是因為學習的收穫。故此有人曾經說過,評價乙個c++程式設計師的水平,從他看過的書籍列表中就可以得出個大概;並且這種言論在實際中也擁有頗多的擁護者,由此也驗證了c++的學習之艱難。

更而甚者,不是每本c++書籍都是讀起來讓人心情愉快乃至一閱千頁的,很多的時候,為了讓你更好地領會到「從錯誤中學習才是最有效的學習」,在很多的經驗條款性質的書籍中,作者都會在其中巧設機關,等待著傻呼呼的讀者你自己掉入他所設的陷阱之中,然後可憐的你就成了作者最忠實的聽眾,跟隨著他一次次地出沒於c++的驚濤駭浪之中並且從中學會了如何避免被風暴所捲入的技巧,從而使得自己逐步成為乙個合格的弄潮兒。在這些作者以及他們所撰寫的書籍中,又以c++標準委員會現主席herb sutter老兄以及他編寫的exceptional系列(已出版的包括:《exceptional c++》、《more exceptional c++》、以及《exceptional c++ style》)為甚。作為現階段的c++社群第一人(c++的創始者bjarne stroustrup現在已經算是半退隱了,故筆者斗膽將其從寶座上拖下

我將 gotw

( guru of the week

,每週大師)的發音讀作「

gotcha

」,這可能是比較合適的。當我將自己對書中問題的解答與

sutter

所給出的解答相比較時,我總是會掉入他(和

c++)給我設定的陷阱中,雖然我不是很情願地去承認這些,但事實確實如此。對於我所犯的每個錯誤,我都好像看到了

herb

在微笑地說著「

gotcha!

」。——

scott meyers

, preface of exceptional c++

雖說作為應邀來為好友書籍撰寫序言,scott meyers可能會稍微誇大了一下自己的失誤;但做為新聞組中最負有盛名的常規性活動,guru of the week對參與者的要求確實不是一般人能夠滿足的,其問題的深度也是遠遠超出大部分人平時所能考慮到的,可以不負責任地說一句,能夠參與到guru of the week活動中並提出自己見解的人,其水平絕對到了我們通常所指的「高手」之列。即便如此,guru of the week的產生速度實際上還沒有達到scott meyers所說的「每週一位」,由此可見,成為guru of the week那是多麼困難的一件事情。幸運的是,作為文明的收益者,我們不必再「閉門造車」,自行去思考出那些**(?)的gotw問題的答案,而是可以直接從前人的經驗中直接吸收到自己所欠缺的那部分知識。更為幸運的是,herb sutter還特意為我們這些讀者將這些問題中的部分及其答案修正和重新整理,並且分門別類地把它們做成不同的系列供我們閱讀、參考、以及查閱。雖說在最開始一遍的閱讀中,筆者近乎「逢陷阱必踏」,簡直是苦不堪言,痛徹心扉啊~~,但每當思及scott meyers的上述言論以及自己從書中所得到的巨大收穫,我又「腰不酸了,背不疼了,腿也不抽筋了……」;並且隔段時間時不時地翻閱該書,又能讓我得到不同層次上的收穫,正所謂:「痛並快樂著」,不外如是!

對於大多數的國內程式設計師來說,很難直接接觸到exceptional c++該書,更不用說用他們所熟悉的母語來體會該書中的高深內容。幸好最近機械出版社華章公司決意引進該書(中文版和影印版)並在國內出版,由於得益於多年來和該系列叢書編輯以及本書中文版譯者之間保持的良好關係,我得以第一時間(如果刨去譯者和編輯的話)翻閱了該書譯稿,其間阿諛奉承的詞也不多說了,總的來說,譯者聶雪軍並不是乙個以華麗文筆見長的技術人員,但對於書中技術內容的把握確實可以達到「用平實的話來準確流暢地複述書中的內容」的程度,由於該書難度頗高,我個人覺得平時的描述可能會更適合一點,過於華麗的話語反到有可能會導致讀者在接受herb sutter的教誨的過程中產生巨大的挫折感……

廢話說的差不多了,也該收筆了,嗯,就用如下格式作為結束語吧:

書名:exceptional c++

型別:經驗條款式

適宜c++人群:中級->高階、高階

警告:程度不夠者切莫輕易嘗試,以免遭受巨大打擊 王昕

2023年10月於上海

[1] 參見《人月神話》第一章:焦油坑

[2]此處,我用了「程式設計師」一詞來泛指所有從事程式設計的人員

[3]沒有聽說過此句台詞的人,建議他去重溫《大話西遊》一百遍啊一百遍

[4]此處對於每一型別的書籍,原則上我只列舉一本,只有在「獨樹一幟專攻一面」的型別中除外

痛並快樂著的C 學習之旅

痛並快樂著的c 學習之旅 書評 exceptional c 程式設計是件快樂的事情,它的快樂來自如下幾點 第一 第二 第三 第 四 這種快樂是持續學習的快樂 最後 在其經典巨著 人月神話 中,frederick p.brooks jr如是說 1 是的,作為乙個幸運的成為程式設計師 2 的傢伙,我們在...

痛並快樂著

現在我坐在十樓的機房 也就是說我還是個學生 我在做vf 我們的資料庫課程 無聊之極 本來準備講資料庫原理來著 其實老師更本不會來 走吧 我在記流水賬 很好玩阿?同學們都在玩 什麼什麼黃健翔 這會結束也太短了 在無聊幾句 前天看了一本vc mfc的書 乙個很有名的先生 懂了很多的東西 可是我的數學課程...

痛並快樂著

時間總是悄悄從我們身邊溜走,轉眼間來兄弟連it教育已經有半個月的時間了,在這裡,再次體會到了什麼是時光如箭。回想起這段時光,也是有挺多感嘆的。在乙個這樣的班級,大家為了各自的初衷,不斷的努力著,爭取能有更好的改變。當初來到這裡,是為了自己的乙個目標,為了能找到乙個既體面又有好的發展空間的工作,另一方...