在dotNet平台中有多種開發語言可以使用,C#無疑是其中應用得最為廣泛的。學習一門編程語言最好的方式就是找一本好書系統地學習,我讀過的關於C#的書籍中,我認為下面三本最為經典:
- 《C#本質論》:入門類,目前最新為《C#7.0本質論》
- 《C# in Depth》:技巧類,目前最新第四版
- 《CLR via C#》:底層原理類,目前最新第四版
之前看過《C#本質論》的第四版,最近拿到了最新的《C#7.0本質論》,近700頁,也算是一個大部頭了,因為內容比較熟悉,所以花來一兩個星期就快速地略看了一遍。不要以為我歸類為入門類就以為很簡單,書中依然有很多高級的內容可以用來進階,有經驗的開發人員依然可以從中收獲良多,並且可以作為進一步閱讀《CLR via C#》的一個橋梁。
下面我談談我最近看了這本最新版本的感受。
翻譯
閱讀中譯本的書,翻譯質量是非常重要的,最怕的就是中文字都認識,就是不知道什么意思,還不如讀原版。本書的譯者是周靖,他同時也是《CLR via C#》第二三四版的譯者,專業技能上沒有問題,通讀下來還是非常流暢,表達清晰,我覺得這就夠了。
結構
一本書的內容再好,如果組織結構和排版很差,會讓人不想去讀或讀不進去,本書在這方面我認為還是很用心的。
思維導圖
平時的工作中,思維導圖用的非常多,所以在本書的每一章開頭看到有思維導圖感覺非常親切。每章的思維導圖就是每章內容的提綱,可以讓我們快速熟悉這一章節的相關知識點,並建立自己的知識體系。看完一個章節后,再回過頭看看這個思維導圖的內容,也便於復盤知識點是否完全掌握了。
版本標示
編程語言的發展非常的迅速,每個版本中都會新增很多新的特性,很多系統講解的書,很難體現每個版本的變化,像《C# in Depth》這類講解特性的書感覺又不是很系統。本書通過在頁面的側邊加上Begin、End的標記完美地解決了這一問題,讓我們系統學習語言的同時又能很方便地了解每個版本的變化。
上圖中是C#6.0對異常處理的一個特性,有了這個標記可以快速地定位到語言特性講解的范圍。並且在合上書的時候在書的側面也能夠看出哪些地方有這些標記,方便定位和查找。
這種Begin、End的標記從2.0到7.0,因為本書是7.0本質論,所以7.0的背景顏色最深,2.0最淺。
內容
只是有好的結構和排版,內容不好,我們很容易可以讀完一本書,但收獲甚少,本書在內容上有下面一些亮點。
設計規范
學習編程語言的語法,可以讓我們寫出能運行的程序,同樣的一個功能10個程序員寫出的代碼可能都不相同,有的優雅高效,有的邏輯混亂。本書在每個章節中穿插着大量的「設計規范」,可以給我們很好的指引,避免入坑。
分類解說
考慮到閱讀本書人員的水平的不同,本書在每個章節中重點突出顯示了初學者主題和高級主題,讓不同的人員可以各取所需。
考慮到有從其他開發語言轉學C#的,書中有大量語言特性和其他語言對比的講解,涉及到Java、C++、VB.NET等。
示例代碼
- 書中的示例代碼沒有平台依賴性,也就是說Windows和Mac上都能運行,這個對我這種Mac用戶來說比較友好
- 關鍵字加粗,關鍵代碼有背景色區分,看起來比較清晰
總結
如果說想要用一本書來系統學習C#語言,那么這本《C#7.0本質論》將是首選。