1.C#语法知识
这个是语言基础,包含基本语法、关键字。这个阶段如果你有其他语言的基础,会学的很快,用不了一周就可以完成,当然不包含你对它的深入理解。这就像英文字母一样,你认识了不代表你就可以用它去表达你的思想,这只代表你可以进行下一阶段的学习了。
学习这些知识可以买一些相关的书籍(其实免费下载一些电子书籍就可以了,而且还环保),也可以直接上msdn C# 语言入门 查看相关的资料,这些东西都差不多,只要系统的学习就可以了。
2.C#编程实践
在对语法有了一些了解后,应该通过一些实例进行操作验证你的学习成果,同时也验证你的理解是否正确。这个阶段我感觉一个月就足够了,还是那句话如果你有其他任何一种语言的基础(是计算机语言,不是鸟语),这个应该更快。这个阶段就相当于你会用单个的字母去组词了。
这个阶段就是要多练习,不要从网上COPY一些东西直接去运行,最好是能够手动的敲一些代码,这样你可能会发现大量的问题,有助于你的提高,msdn上编程指南就可以了,也足够了。特别应该注意不要专门去追求一些华丽的技巧,在没有很好的基础时去理解这些技巧会浪费大量的时间,稳扎稳打,那些技巧会在以后的开发中很快就掌握的。
在完成组词后,下一步应该就是造句了,模拟几个虚拟的场景,实现几个比较完整的功能。接下来你就可以写作文了(帮老奶奶过马路、捡到钱包交给警察叔叔。。。)。
3.学习CLR
在打算学习C#.Net之前你可能已经对托管应用程序有了一定的了解,在你学习完如何写“作文”时是不是也在考虑我的“作文”是如何运行的呢!在“作文”中创建的很多对象(老奶奶、警察...)在没有进行显示管理的情况下,如何保证内存不泄露呢!如有这样的疑问,那是时候学习CLR了,CLR被作为.NET的发动机、灵魂,反正就是重中之重,学习好它就对了。在学习的时候会碰到很多新的名词,托管模块、程序集、中间语言、通用类型系统、通用类型规范。。。有些很难理解,这个阶段就要花费大量的时间了,三个月,甚至更长,还是那句话因人而异(好像都不一样啊,呵呵),还要根据你学习的深度。
在大部分的情况下我们编写的都是宿主应用程序,程序在编译完成后会在程序集所在的清单的文件中包含CLR表头信息,它指明了托管应用程序在启动时去初始化那个版本的CLR,CLR初始化后我们的程序就由它来托管运行(CLR寄宿,应用程序时宿主),它负责的东西很多,像内存的分配、垃圾的回收、运行时类型安全检查等。每个知识点都很重要,要反复的推敲,直到你感觉你可以把它讲述给其他人,其他人也能够听懂为止。
这个阶段的学习我是建议买些书看的,毕竟msdn上的片段不具有连续性,虽然知识点都能讲到,但完整性不好。讲述CLR的书也挺多,但经典中的经典那就是 CLR via C# 第三版,不过第四版的英文版也出来了(感觉挺不好意思的,第三版我才买来看,我以前看过第二版-.net Framework 框架程序设计),知识更新的太快,郁闷,没办法,谁叫ms知识更新的快呢。
4.学习FCL
在理解CLR的运行原理后,下一步自然是FCL。框架类库包含的类型有上万个,以后还会不停的扩充,要完全的了解所有的类型是不可能的,我们可以有针对性的学习,在学习前可能先问下自己要从事哪个方面的开发工作,然后针对你的目标有选择的学习。
这些类型库由不同的程序集组成,在逻辑上又进行了划分,把相关的类型放在同一个命名空间里。借助这些类型库我们可以快速的构建我们的系统,简化开发流程,也简化了测试时间(这些类型不需要在测试了)。
这个阶段的学习没有必要买书,msdn上的类库系统太好了,每个都很详细(大公司就是牛@),而且还有大量的实例,但是要学好这些东西就没有明确的时间概念了,只能实践中见真理,在做项目时,如有时间就进行整理下,好记性不如烂笔头。
CLR和FCL是dotNet的核心,也就是我们的学习重点,虽然内容很多,但是因为和语言没有关系,所以你以后变换了开发语言(依然是.net 平台),你的所学一点都不会浪费,这些都是通用的(鼓掌)。
5.设计模式
在上面的基础都打好后,现在就应该转移一下注意力到设计模式上了。这个也是和语言无关的,你要写个记叙文“作文”,就应该包括时间、地点、人物和事件,这个就是个模式,通过这个类似模板的东西我们只要在合适的时候去“填空”就好了,这些都是前辈们经验的积累,要善于利用。
这个学习的过程就是理论和实践的有机结合,书推荐 大话设计模式 看着不累,Head First 设计模式都是不错的(以前看过,不过没有实践也就忘记了)。
6.专题学习
还没想好,就到这儿吧!有空在聊,一点建议。