你必须知道的.NET》 - 学习方法论

来源:互联网 发布:食品安全网络谣言 编辑:程序博客网 时间:2024/05/16 10:37

1、基础至上

    再花哨的应用,再绝妙的技巧,其实都架构在技术基础的基础上,没有对技术本质的深入理解,何来更进一步了解其他。所以必须要坚持,不放弃枯燥,从基础开始踏踏实实的学习基础,这是一个由量到质的飞跃,就.NET来说,了解CLR运行机制,深刻的认识内存管理、类型系统、异常机制,熟悉FCL基本架构,学习C#语言基础,认识MSIL、元数据、Attribute、反射、委托,面向对象和设计架构,都是必不可少的基础内容。

  • Don Box, Chris Sells, 《Essential .NET》,一本圣经,深刻而又深邃。
  • Jeffrey Richter,《Applied Microsoft .NET Framework Programming》,.NET世界的唯一经典,偶像级的Jeffrey。
  • Patrick Smacchia,《Pracical .NET2 and C#2》,.NET领域的百科全书,可以当作新华字典来读技术。
  • Richard Jones, Rafael D Lins,《Garbage Collection,Algorithms for Automatic Dynamic Memory Management》,内存管理方面,就靠它了。
  • Christian Nagel, Bill Evjen, Jay Glynn,《Professional C# 2005》,C#基础大全。
  • 《Thinking in Java》,是的,一本Java书,但是带来的不仅仅是Java。

 

2、我够OO么?

    但凡从项目和产品一路厮杀而来的高手,都理解OO的强大和神秘。所以OO也是软件技术的必要基础,也是技术修炼的基本功之一。然而,OO的修炼远没有.NET基础来得容易,苦嚼一车好书,狂写万行代码,也未必能够完全领悟其精妙。

  • EricFreeman, Elisabeth Freeman.《Head First Design Patterns》,标准的言简意赅,形象生动,难得佳作。
  • Erich Gamma, Richard Helm, Ralph Johnson, John Vlisside,《设计模式-可复用面向对象软件的基础》,开山祖师的作品。
  • Martin Fowler, Refactoring:《Improving the Design of Existing Code》,同样的经典,很拉风。
  • Robert C. Martin,《敏捷软件开发:原则、模式与实践》,对于设计原则,无出其右者。
  • 张逸,《软件设计精要与模式》,国内作品的优秀作品,园子里的经典之作。

    在读书的基础上,还要不断的学习和实践他人的智慧结晶,看经典框架,写熟练代码。“做软件的不写上千万行代码,根本就没感觉”。格物致知:

  • 面向对象的基本内容:类、对象、属性、方法、字段。
  • 面向对象的基本要素:封装、继承、多态、接口。
  • 设计原则:接口隔离、单一职责、开放封闭、依赖倒置、Liskov替换。
  • 设计模式:

Singleton

Abstract Factory

Factory Method

Composite

Adapter

Bridge

Decorator

Facade

Proxy

Command

Observer

Template Method

Strategy

Visitor

  • 分层思想:例如经典的三层架构
  • 模块化
  • AOP
  • SOA
  • ORM
  • ……

    这些OO领域的基本内容互相联系、互为补充,没有独立的分割,也没有独立的概念,了解这个必然牵出那个,故修炼起来不孤单,反而在不断的领悟中能够窃喜原来软件也可以如此精彩。

 

3、舍得,是门艺术

    .NET技术有着近乎夸张的应用范畴,从Windows GDI应用,到ASP.NET Web应用,到WCF分布式应用,到Windows Mobile嵌入式应用,到ADO.NET数据处理,到XML WebService,.NET无处不在。故,对于.NET技术的学习,应该有个起码的认识——我不可能精通.NET的整个面貌。所以必须有个选择,在如此多的技术应用中,有一个基础始终支撑着.NET技术这艘航母在稳步前行,不管是什么应用,不管是什么技术,不管是什么框架,CLR总是.NET技术的心脏。对.NET的学习一定要打好基础,从了解CLR底层机制和.NET框架类库开始,逐渐的追求我的技术选择。必须要有分辨的能力,和抵抗诱惑的心态,找准自己方向,并且坚持下来,如何取舍,全凭自己慧眼。

 

4、读几本经典的作品

    这是最初的开始,经典的作品是一个好的起点。

 

5、遵守规范,养成良好的编程习惯

    软件是一个可持续的资源,于人于己都必须遵守规则,这是一个职业道德问题。对自己而言,良好的编程习惯正是一个良好学习习惯的开始。用艺术创作的心态写出优雅的代码。

  • Krzysztof Cwalina,Brad Abrams , 《.NET 设计规范--.NET约定、惯用法与模式》

 

6、学习,讲究方法

    懂得了解自己的人才是真正的智者,挖掘自身潜力永远是摆在自己眼前的课题。自我探索,只有创新才能成功。若暂时找不到,那就苦练多看,这是最实在的方法。以无法为有法,以无道为有道。

 

7、找一个好老师

    遇上一位德高望重而又乐于奉献的师长,乃是人生之幸运,但概率小之又小。所以互联网就是一位才高德厚的大师,google、baidu、MSDN、博客园……

 

8、英文,无可避免

    师夷长技以制夷。多看多写多读。英文网站与博客,可让技术、英语同时提高:

  • http://code.msdn.microsoft.com/
  • http://codeproject.com/
  • http://www.asp.net/
  • http://codeguru.com/
  • http://www.c-sharpconer.com/
  • http://blogs.msdn.com/bclteam/
  • http://blogs.msdn.com/ricom/
  • http://samgentile.com/blog/
  • http://martinfower.com/bliki
  • http://blogs.msdn.com/kcwalina/
  • http://www.pluralsight.com/blogs/dbox/default.aspx
  • http://blogs.msdn.com/cbrumme/

 

    累并快乐着,永远是这个行业的,这群人的主旋律。在技术面前,我开怀一笑,发现自己其实很专注,这就够了。

原创粉丝点击