【标题】.NET开发的正确学习路线

经常有好多初学者在学习之前不知道从何入手,也有好多初学者上来就学,买一本书或几本书看了好几遍, 但是思路还是没有搞通,造成时间的浪费,其实软件开发技术学习路线对于大家来说还是非常重要的,现在我就以我个人的开发经历和教学经验跟大家简单谈谈.NET平台技术学习方法,首先我们来一个总体的学习路线:

下面我们开始分析一下初学者入门阶段的学习内容和方法:

1. 掌握.NET开发环境和C#语言的基础语法。

任何开发语言学习之前都要熟悉开发环境,并且能够自己独立的安装开发环境。在.NET平台当然就是Visual Studio了,版本的话目前建议大家使用VS2010,不要追求高版本。在开发语言上当然选择C#作为入门开发语言学习。C#语言语法简洁,是.NET平台量身定制开发语言,也是微软推荐的,这点大家就不用犹豫了。虽说.NET平台上还有VB.NETVC++.NET,但是C#是最适合初学者的,而且应用最广。

那么,关于基础语法我们应该学什么呢?具体知识点,我们将在后面的文章中给出一个技能结构图,在这里我需要告诉各位朋友的是,基础语法学习我们只需要研究变量、数据类型、运算符、逻辑控制语句,循环结构、字符串、数组,变量的类型等这些最常用的就可以了。等你使用控制台能够熟练的写出一些语句并顺利的运行成功了,才可以继续学习后面面向对象的相关内容,千万不要一下子就学类与对象这些内容。我看见过好多学员,写了很多程序还不明白类和对象是怎么回事儿,这太痛苦了。基础语法学习阶段就好比我们学自己语言那样,你要首先学会生字、词组、造句、然后试着看图说话,这些都没问题了,你才能自己看一些文章,并且自己创作文章。等你再深入的时候,可以研究文学,出作品了。编程语言也是这个道理。但是很多人就是不懂,我经常看见一些人说,我看着那些代码就头疼。但是我写了这么多年的程序,我感觉着所有的程序都是非常相似的,就那么点东西,但是却能千变万化,很神奇,很有趣味,而且值得研究。你可以这样想想,即使一个人的作品得了诺贝尔文学奖了,他的文章也是用最基本的常用词和语句组成的,你能说你看完了百分之八十的字都不认识吗?肯定不会,那我告诉你,计算机语言也是这样的。在复杂的程序都是由基本的语句组成,只是个别有难点而已。所以,多花力气放在基本的知识学习上,你就找对了方向。

2. 学习C#面向对象基础技能。

我们掌握了语法基础,那么面向对象基础又是怎么回事呢?这个问题其实很好回答,就是告诉你这时候你要学习怎么样组织程序的语句,然后以对象的方法把复杂的问题简单化,把你认为枯燥无味的程序逻辑,变成我们日常生活问题思考的方法来实现。好多学员在这个阶段都不能达到这个目标,只会照猫画虎写控制台程序,然后输出一个结果就完了。我们在讲课中,通常会给大家讲解,面向对象的方法怎么写,非面向对象的方法怎么写,你应该掌握的是面向对象方法,而不是单纯注重结果的输出,不然的话你将来写的程序都是垃圾,因为你用着非常先进的工具,却生产着非常低端的产品,就好像,你买了一辆百万的车,天天跑在泥泞的道路上,估计都没驴车跑的快,你还在那里美滋滋的呢。

那么,我们这个阶段应该掌握哪些内容呢,首先是类与对象的概念、创建与使用方法、封装、属性、方法、集合、文件操作等这些基本内容就可以了,至于说继承、多态、接口这些内容,千万不要上来就学,如果这样我保证你学的很“伤心”,因为这些内容在开发中不是不用,是用的相对少,但是很重要,不过却不适合现在就学习。好多学员说,那为什么教材好多都直接讲呢?我回答是,教材是参考,人家不限制你怎么学,如果你还不明白,那我再举例,你有没有发现你上小学的课文有好多内容不理解,等你长大了,你自然就明白了?为什么?道理很简单,因为你小时候不具备同化那些新知识的基础知识!开发技术也是这个道理,所说你可以上来就学,但是你就是学不好,自己看了那么多书,那么多视频,怎么一遍又一遍,最后发现自己还是那个水平,因为你什么都是概括的学习,没有把精力集中学习简单有用的知识,也就好比我们很多人自己英语词汇量都8千了,怎么还是哑巴英语呢?你知道英国的农民常用的英语单词有多少吗?告诉你89百!就这么点儿,就能什么都不耽误了,因为这些词他们非常熟练了,都是日常用语,那么学编程的道理你懂了吗?亲,别再拿着本书来回啃了,没啥意义!

3. 学习数据库开发技术。

曾经有学员问,学数据库干什么?那我回答你:你上学学习数学干什么?道理是一样的,计算机软件就是用来处理数据的,我们学习开发语言是写程序,程序工作就要处理数据,哪怕就是一个简单的Excel电子表格也是一个小型的数据库。 所以数据库的学习是非常重要的。而数据库就是程序的数据仓库,我想这个大家都应该明白不多说。

作为C#学习者,我们要学习的数据库肯定就是SQLServer数据库了。当前的主流版本有SQLServer2005/2008,或者更高,对于学习者而言,版本之间几乎差别很小。在这个阶段我要提醒大家的也是不要盲目学,只要你学会使用T-SQL脚本建库、建表、建约束、常用增删改、以及常用查询方法、基本的函数,以及一般的数据库设计方法和简单管理就足够了,你就可以胜任很多项目的数据开发了,初学阶段OK了。真的不要马上就学逻辑控制语句、存储过程、视图、事务、索引、触发器、游标等等这些内容,不然你又要陷入前面学习C#面向对象时的误区了,白白浪费时间,结果是:你看别人的视频都明白,看书也可以,但是自己一动手就跟手不是自己的一样,脑袋也乱,因为你学的太杂乱了。你上学背政治的时候,老师怎么不告诉你,背主要问题点,然后自己扩展,难道学编程你就忘了吗?

4. 与数据库的交互技术ADO.NET

一开始我们学习了C#基础编程,然后又学习了数据库知识,那问题就出来了,数据库怎么和程序交互呢?这就是ADO.NET技术,专门完成这个桥梁作用,是后面我们开发数据库应用程序最重要的一个技术点,如果你学的是java这个阶段的技能点就是JDBC。不同语言,但是方法都是一样的。

我们掌握了数据库访问技术,就可以开始正式编写数据库应用程序了,说白了就是能够自己写点东西,实现一些数据的管理了。那么我们知道用户和数据库交互必须要有界面,没有界面一般用户是不知道怎么写数据操作语句的。这点自从windows操作系统出来后,发生了革命性的的变革,我们的软件必须给用户提供交互界面,这就是我们下面要学的WinForm开发技术。

5. 学习WinForm开发技术。

也就是我们所说的桌面应用程序,对于初学者而言winform开发学习效率很高,可以通过这门技术的学习迅速掌握面向对象开发思想和程序编写方法。我见过很多学员,从来没学过winform,上来学做网站,还想做大平台,我说我是没有办法教会你,你以为写程序是炒菜吗?我告诉你炒土豆怎么做,你学会了,然后你马上就说怎么当个大厨师,你说能吗?程序开发也是一样,在最早没有互联网时代WinForm是一统天下的,到现在也没过时,只不过很多web项目可以替代,但是关键的大型项目有时候根本没法替代的,你比如火车站的售票系统,医院的HIS,以及大型企业的ERP系统等等。不要相信那些人鼓吹现在是web和移动互联网的天下,学那个没用,但是你真学好了winform,后面学习web、移动开发技术都是非常容易的!它可以帮你很好的理解面向对象开发思想,让你脱离枯燥、码农的世界,有很多人觉得开发太累,天天写代码,是因为他没有真正的掌握编程思想,就像流水线上的工人那样,天天重复,没有创意,肯定枯燥。而我们的开发技术你学好了,不仅要写代码,关键是要有创造,有思考,有思想,能给别人提供相同问题更好的解决方案!那时候你才是“自由编程”,不然你就……,哎,自己想吧,此处省略1万字

6. 开始小型项目实践。

我们经常说学以致用,理论联系实践,但是有几个能做到随时的实践呢?还是那句话,把教程看了好几遍,买了好几本书,为什么还是“束手无策”?因为缺少实践!这个阶段其实就是对您前面学习技术进行充分的巩固和提高,最起码,我们也得做两个比较完整的项目才能把所学技能巩固好。如果能做到这一点,恭喜你已经入门了,而且后面的内容你会越学越轻松。

好了,前面讲了很多,那么后面我们怎么学习,这里就不多说了,本文文章只是给初学者看的,有了前面的技能,后面的技术点,大家可以参考我写的关于.NET知识结构的文章,而且您也有能力看明白怎么学。您在入门阶段有什么问题,也欢迎您跟我们联系。