首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

[你必須知道的.NET]第二十回:學習方法論

     編輯:關於.NET

說在開篇之前

  • 本文源自我回覆剛畢業朋友關於 .NET 學習疑惑的郵件。
  • 原計劃放在《你必須知道的.NET》後記,因故未能如願,算是補上遺憾。
  • 作為系列第 20 回,預示新征程,可視為「2.0 版」開始。
  • 非技術篇章,回答:.NET 應學什麼?如何學?學習方法?
  • 不適合所有人。

正文開始

關於學習問題,一千個人有一千個答案。我無法保證想法適合所有人,但這是我真實體會與經歷,希望提供參考。我也嚴正聲明:我也是學習者,持續追求中,這裡只是交流,非說教。

第一條:心態準備——堅持與興趣

恭喜進入「艱難困苦與其樂無窮並存」的行業。想速成、發財是難以實現的夢想。Bill Gates、李彥宏難以複製。做好長期艱苦準備是必須的。身邊朋友包括我自己都經歷過這過程,累並快樂著。如此辛苦、無立竿見影「錢」途,唯有堅持與興趣能支撐發展。這是最重要的一條。

第二條:基礎至上

兩年前我同樣陷入追求技巧、應用、抄襲的自我陶醉。當將精力投入基礎與本質研究,發現別樣天地。再花哨的應用、絕妙技巧,都架構在技術基礎上。沒有對本質的深刻理解,談何進一步。

堅持、不放棄枯燥,從基礎踏實學習,必有突破。 這突破有量變質飛躍。以 .NET 為例,必備基礎包括:

  • CLR 運行機制
  • 記憶體管理
  • 類型系統
  • 異常機制
  • FCL 基本架構
  • C# 語言基礎
  • MSIL、元資料、Attribute、反射、委派等
  • 面向物件與設計架構

可從《你必須知道的.NET》目錄大致了解。推薦基礎書籍:

  1. Don Box, Chris Sells - Essential .NET(聖經級)
  2. Jeffrey Richter - Applied Microsoft .NET Framework Programming(.NET 唯一經典)
  3. Patrick Smacchia - Practical .NET 2 and C# 2(百科全書)
  4. Richard Jones, Rafael D Lins - Garbage Collection(記憶體管理權威)
  5. Christian Nagel 等 - Professional C# 2005(C# 基礎大全)
  6. Thinking in Java(雖是 Java 書,但寫作高度不可不謂牛叉)
  7. Anytao - 你必須知道的.NET(自信推薦,有別於大師經典的特別之處)

書不在多,有仙則靈。以上幾本足打好基礎。

第三條:你夠 OO 嗎?

不管業界如何詬病 OO,大牛如何不屑,那是他們的事。但凡從專案、產品厮殺出來的高手,都理解 OO 的強大。OO 也是軟體技術必要基礎、修煉基本功。但 OO 修煉遠比 .NET 基礎難,像悟道一樣。很少有人能完全在 OO 面前說徹悟,但因重要,必須找東西摩拳擦掌——始終如一的修煉,打好持久戰。

推薦經典:

  • Head First Design Patterns(言簡意賅、形象生動)
  • GoF - 設計模式(開山祖師作,不獨白不讀)
  • Martin Fowler - Refactoring(同樣經典)
  • Robert C. Martin - 敏捷軟體開發(設計原則無出其右)
  • 張逸 - 軟體設計精要與模式(國內優秀作品)

有好書仍不夠,要繼續走王陽明「格物」老路:看經典框架、寫熟練代碼。偶像曾語重心長說:做軟體不寫上千萬行代碼,根本沒感覺。按此標準,我還只是小學生。廢話少說,去格物吧。

OO 世界的「物」大致包括:類別、物件、屬性、方法、欄位;封裝、繼承、多態、介面;設計原則(單一職責、開放封閉、依賴倒置、里氏替換、介面隔離);23 種設計模式;分層思想、模組化、AOP、SOA、ORM…… 這些互相關聯、互為補充,修煉並不孤單。

第四條:捨得,是門藝術

.NET 技術應用範疇誇張(GDI、ASP.NET、WCF、Mobile、ADO.NET、XML WebService…)。不可能了解全部,因此必須選擇與捨得——選擇有方向,捨得有興趣。CLR 永遠是 .NET 技術的心臟。透過表面傾聽心臟聲音,順著血管脈絡了解框架,才能明白機制玄機。別只盯著蛋糕掉了禮物。打好基礎,從 CLR 底層機制與 FCL 開始,逐漸追求技術選擇。善於分辨,不盲從。找準方向並堅持,難能可貴。眼光是關鍵。

第五條:讀幾本經典作品

不多說,推薦的值得花功夫。經典是好起點。我會在部落格持續推薦更好專著。

第六條:遵守規範,養成良好編程習慣

看似無足輕重,但軟體是可持續資源。對己對人遵守規則,有職業道德。良好編程習慣是良好學習習慣開始。看著自己的代碼像藝術般優雅,怎一個「爽」字了得。推薦:Krzysztof Cwalina, Brad Abrams - .NET 設計規範。

第七條:學習講究方法

具體方法因人而異,我不主張學習他人方法,因為人性難以複製。可模仿技藝,但無法刻畫靈魂。懂得了解自己的人是真正智者,挖掘自身潛力永遠是課題。尋找行之有效方法很重要,但不要模仿,只有創新才能成功。沒有方法就是好方法,苦練多看,永不過時。

第八條:找一個好老師

有幸遇德高望重、樂於奉獻的師長是人生幸運,但概率極小。答案是互聯網:Google、Baidu、MSDN、博客園、《.NET 禪意花園》。

第九條:英文,無可避免

好東西多被老外佔據。中文社群師夷長技以制夷,但英文是必經攔路虎。務實下手,推薦技術英文網站與大牛部落格,一箭雙雕:

  • gotdotnet.com, codeproject.com, asp.net, codeguru.com, c-sharpconer.com
  • blogs.msdn.com/bclteam/, ricom/, samgentile.com/blog/, martinfowler.com/bliki
  • blogs.msdn.com/kcwalina/, pluralsight.com/blogs/dbox/, cbrumme/

結語

上述 1+7 條,是一些並非經驗的經驗,誰都知道,但不是誰都能做到。累並快樂著,永遠是這行業、這群人的主旋律。在技術面前,我嫣然一笑,發現自己其實很專注,這就夠了。希望更多人少走我曾經曲折彎路,那條路上實在是幸福與心酸一股腦兒毀了一段青春。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved