月份彙整: 2021 年 3 月

讀書》A Tour of C++ 中文版

《A Tour of C++, 2/e》繁體中文版與簡體中文版

最近把《A Tour of C++, 2/e》中文版重讀了一次,上次讀的時候因為台灣譯本裡的一些翻譯名詞看不太懂(有些名詞既不是台灣傳統上的譯法,也不是中國那邊的譯法),所以最後也沒讀完就丟在一旁了。

最近開始想認真學習一下 Modern C++(因為想用 JUCE 寫跨平台程式 🙂),所以把《A Tour of C++, 2/e》繁體中文版又拿出來讀,並且另外買了簡體中文版,當繁體版看不懂時就翻簡體版來對照著看 XD

《A Tour of C++, 2/e》內容涵蓋了部分 C++20 特性,而且很薄(才兩百多頁),很適合拿來快速理解 Modern C++…(大誤)。嗯,對有 C++98 經驗的人來說,這本應該是不錯的現代 C++ 入門書,對沒什麼程式經驗的人來說,這本書恐怕不易消化 😅(其實我覺得 Bjarne Stroustrup 的書對新手來說都不算友善 XD,個人感想,勿戰)。

談 C++ 語言的書通常都很厚,光是看到那比磚頭還厚的厚度,就沒什麼動力讀下去,這本《A Tour of C++, 2/e》夠薄,拿來入門剛剛好。不過,我認為最好的 C++ 入門書還是《Essential C++》,薄薄一本只有兩百多頁,講述了 C++ 最基本最核心的部分,只可惜《Essential C++》是 1999 年出版的,內容對現在而言已經過時了…

說到《Essential C++》,讓我想到了 Stanley B. Lippman 在《Essential C++》前言裡提到他在迪士尼電影動畫公司工作時,有次被要求用 Perl 重寫一個工具程式,但他不懂 Perl,所以他想找一本 Perl 書籍來抱佛腳,而且那本書不能太厚,因為當時的情況需要快點讓那個 Perl 程式動起來,最後他找了《Learning Perl》(台灣譯本名為:《Perl 學習手冊》)來讀。這次的經驗讓他明白對於想立刻學會並使用 C++ 的人來說,《C++ Primer》過於龐大複雜了,因此他寫了《Essential C++》這本小書。

說到《Learning Perl》,又讓我想起我的第一份正職程式設計工作時的一件事 😅,當時我剛進去工作不到兩個禮拜,第一個任務是要把一本英文字典做成 iOS app,當時的老闆已經有寫好一支程式把字典的純文字檔轉換成他想要的特定格式,他讓我接手修改那支程式,那支程式是用 Objective-C 寫的,我當時研究了程式的內容與特定格式的結構後,發現那支程式的效果不好,因為還需要半人工的方式去修改文字檔,而且無法正確找出所有的格式問題,最後我決定重寫一支程式來處理格式的問題。

一開始我是用 Objective-C 去寫,寫了一堆 NSRegularExpression 😵,過了三個禮拜後,覺得寫 NSRegularExpression 實在太痛苦,而且寫到卡關了,所以決定改用 Perl 來處理格式問題。雖然之前有用 Perl 寫過一些小程式的經驗,但是當時有一陣子沒寫 Perl 了,已經忘光 Perl 怎麼寫,因此趕快重讀了《Perl 學習手冊》(忘記是第五版還是第六版了),用了約四、五天的時間讀了一遍《Perl 學習手冊》,然後開始寫 Perl script 來處理格式問題,後來寫了十幾支 Perl script 才終於解決完格式的問題(一支 script 處理一種格式問題),而且才花了一個多禮拜的時間 😁

雖然格式的問題解決了,但是我後來發現文字檔裡有少數的地方有亂碼(原本的字典純文字檔就有亂碼),結果最後還是得找工讀生拿紙本字典對照著文字檔找出所有的亂碼,並手動修正,噗,這樣一開始就請工讀生直接手動修改格式並修正亂碼不就得了 🙃 …… #這就是人蔘啊

好像越扯越遠了,今天先這樣囉,Bye~