想學習 C#,案頭有兩本書(CLR via C# 和 C# in Depth),不知學習順序是怎麼樣的?
CLR via C# (CLR via C# (豆瓣))
C# in Depth (深入理解C#(第2版) (豆瓣))不知道學習順序是怎麼樣的?我之前是做iOS開發的,C和C++的程度是熟練,iOS上面的技術、框架、語言比C和C++要更好,但是不敢說精通。
對於面向對象變成理解比較透徹。之前也零零散散看過一些C#的文章,大概50小時。我現在想學習C#,想請問這2本書的閱讀順序應該是怎麼樣的?另外,我想問問web app用C#來做的項目,有什麼開源的實例么?
只看過第一本,是jeffrey richter寫的,這是一個寫多線程/分散式的大牛。C#的語法很容易的,你先搞搞,熟悉一下類庫,然後看CLR via C#(同時還有Windows via C++系列)
一起看唄,看你連這種問題都問,我保證兩本書看得都不順利,所以哪本卡了就換另一本吧……
謝謝邀請。
大概瀏覽了一下兩本書的試讀。我個人建議可以考慮直接從 CLR via C# 開始。考慮到提問者並不是沒有開發經驗的初學者,而 C# in Depth 更接近是給編程初學者看的書,側重語言特性,缺少對發布、調試等環境級別的內容的介紹。CLR via C# 似乎更加適合有經驗的開發者使用。
另外,這兩本書我都沒看過。我的工作性質不允許我們使用 C# 作為主要開發語言。我用 C# 的全部經驗只來自幫一群熊孩子調試他們代碼里各種莫名其妙的 bug。所以回答也許不權威。見諒。
我原來學習C++的時候把市面上所有的C++經典全買了(BS的兩本、Essential系列、Effective系列、Exceptional系列、Ruminations、Primer、Object Model、Thinking in、侯捷系列等),然後輪流讀、反覆讀
不過C++水平有了質變倒是去負責維護一個C/C++商業編譯器的標準庫才有的。自從動手寫過實現後,就會發現講「怎麼用」的書都很淺了,根本都用不著花那麼多時間看。@vczh的策略(造輪子)是最好的學習策略看過第二本,講C#語言層面,不涉及CLR和類庫(WPF/WCF等等)
按照C#從1到4.5的發展脈絡,從語言設計者的角度,解釋了如下問題:- 為什麼要在某個版本中加入某個語言特性(語法糖)?解決了上個版本的什麼不足?或者是為了構建新的大框架(例如LINQ)?
- C# 2: 泛型、可空類型、匿名委託、迭代器
- C# 3: 很多個革新性的語法糖,都是為了構建LINQ這個大的圖景:自動實現的屬性、隱式類型、對象集合初始化、匿名類型、Lambda表達式、擴展方法
最後是介紹LINQ
- C# 4: 可選參數、實名參數、動態類型,主要是為了COM互操作。另外有代碼契約
- C# 4.5: async和await
以上是我認為使用C#大幅度提高開發效率最重要的武器庫。
對一些複雜的概念,如協變性和逆變性,書中也做了詳盡的解釋——和Java等其他語言的區別,以及設計者做了哪些權衡。
英文已經有第3版,中文只翻譯到第2版,差了4.5的部分,影響不大。書的網站有每章的示例代碼。開始的時候一本也不看,大量的時間用在寫代碼,參考msdn就行,等你開始項目幾個月後,再看別的書,而且要優先學框架,語言放後
clr那本大埠頭不適合新手上來直接讀,適合在.net技術上有一定經驗的人做深入學習了解用,因為內容確實比較堅澀:),上來就讀無益。個人愚見。
我感覺還是項目驅動的比較好,找幾個簡單的開源項目看看就行
不用專門看,既然熟悉cpp直接寫就可以了,去msdn弄些sample看看半天就可以開始動手了。
讀過clr,感覺不錯,結合項目一起來效果更好。裡面的點比較細,需要多讀幾遍!
CLR via C# 吧
都會ios了 不知道你為什麼還要去學c#
推薦閱讀: