有这么几个问题:
.NET应该学习什么?
.NET应该如何学习?
.NET的学习方法?
关于这些问题,我想我们大家在刚刚开始学习的时候都想知道这些,每个人的看法和观点都是不一样的。
作为同行,首先恭喜大家进入了一个艰难困苦和其乐无穷并存的行业,这就是软件的现状,也是软件的未来。如果你想迅速成功,或者发家致富,显然是个难以实现的
梦想。
马云和李彦宏在这个行业是难以复制的,所以做好长期艰苦卓越的准备是必须的。至少,我身边的朋友,包括我自己都是经历了这个过程,而且依然在这个过程中,
累并快乐着。
所以,如此辛苦,又没有立竿见影的“钱”途,想要在这个领域有所发展,只能靠“坚持”和“兴趣”了。二者缺一不可,对于刚刚毕业的的你或者刚进入这个行业的
你来说,这个准备是必须有的。这是我的一个体会,可能比较虚,但是我认为是最重要的一条。
除了思想上准备之外,还要从以下几个方面入手:
1、基础至上
很多人都追求技术技巧,技术应用和技术抄袭,其实一切都是在架构在技术的基础的基础上,一切都是源于根本的本质东西。所有的东西再怎么变化,其根本的基础还
是不会变的,万变不离其宗。所以,如果能够坚持,不放弃枯燥,从基础开始踏踏实实的学习基础,我想你一定会有所突破。而这个突破,其实也有着由量到质的飞跃。对于学习C#的基础,包括面对对象和设计架构,都是必不可少的基础。
2、你够OO吗?
不管业界对OO如何诟病,不管大牛对OO如何不解,那是他们折腾的事业。而我们的事业却无法远离这片看似神秘的王国,因为但凡从项目和产品一路厮杀而来的高手,
都理解OO的强大和神秘。
站在高高的塔尖来看软件,玩来玩去就是这些了。所以,在我看来OO其实也是软件的必要的基础,也是技术修炼的基本功之一。
然而,实话实说,OO的修炼却远没有.NET基础来得那么容易,苦嚼一本好书,狂写万行代码,也未必能够完全领悟OO精妙。说的有点玄乎,其实很少有人能够完全在OO
面前说彻悟,所以我们大家也不例外。如果我们要始终如一的修炼,打好持久战。
OO世界:
(1)面向对象的基本内容:类、对象、属性、方法、字段
(2)面向对象的基本要素:继承、封装、多态,此外还有接口
(3)设计原则:接口隔离、单一职责、开放封闭、依赖倒置、Liskov替换
(4)设计模式:
创建型模式——Singleton(单例模式)、Abstract Factory(抽象工厂)、Factory Method(工厂方法模式)、Builder(建造者模式)、Protype(原型模式)
结构型模式——Composite(组合模式)、Adapter(适配器模式)、Bridge(桥接模式)、Decorator (装饰模式)、Facade(外观模式)、Flyweight(享元模式)、
Proxy(代理模式)
行为型模式——Command(命令模式)、Observer(观察者模式)、Template Method(模板方法模式)、Iterator(迭代模式)、Mediator(中介者模式)、Memento(备忘录模式)、
Interpreter(解释器模式)、State(状态模式)、Strategy(策略模式)、Visitor(访问者模式)、Chain of Responsibility(职责链模式)
(5)分层思想:典型的三层架构(UI层,BLL业务逻辑层、DAL数据访问层)
3、舍得,是门艺术
我们不能全部都学会所有的东西,可以说世界上永远有学不完的东西,真的是活到老学到老。很多人数学习c#,还要学习Java,还要其他的语言,其实所有的语言都
是相通的,思想都是一样的。使用Java可以做的东西,同样使用C#也是可以实现的,我们不一定学习的多,但是一定要精通一种语言。
我们不可能了解所有,因此你必须选择和舍得,选择有方向,舍得有兴趣。善于分辨,不能盲从。每天从cnblogs、CSDN和其他定义技术文章,是我的习惯。
但是如果每篇都要读,每篇都要看,那就基本没有其他时间了,所以你必须有分辨的能力,和抵抗诱惑的心态。找准自己的方向,并且坚持下来,是难能可贵的。
4、读几本经典的作品
如果英语不错的,还是看原著,实在是有困难看英文的就看那些翻译不错的,但是建议大家还是试着去读英文的,也算是提高一下英语了。
每个行业都有经典的著作,网上有很多电子版的,但是个人感觉纸质版的还是看着有感觉,可能是因为花钱的东西想多去看一下了。
5、遵守规范,养成良好的编程习惯
其实这个看似无足轻重的小事儿,我经常看到自以为天下无敌的高手,胡乱的在编辑器中挥洒天赋,一阵高歌猛进,但是最后自己都不知道自己当初的本意是什么。
软件是一个可持续的资源,于人于己都遵守点规则,出来混的是要有点职业道德。对自己而言,良好的编程习惯正是一个良好学习习惯的开始。看看自己的代码,
感觉像艺术一般优雅,大致也就是周杰伦听到东风破时候的感觉吧,怎一个爽字了得。
6、学习,讲究方法
具体的学习方法,实在是因人而异,我从来不主张学习他人的方法,因为人性是难以复制的东西。自己的只有自己最清楚,所以你可以模仿他人的技艺,但是用于无
法刻画其灵魂。但是即便如此,丝毫不减弱学习方法的重要性,懂得了解自己的人是真正的智者,所以挖掘自身潜力永远是摆在自己眼前的课题、寻找一套行之有效
的学习方法,非常重要,但是不要学着模仿,要创新才能成功。如果实在是没有自己的方法,就要多看,多练习,熟能生巧,经验都是练出来的。
7、找一个好老师
如果有幸能有一位德高望重而又乐于奉献的师长知道,那的确是人生之幸运,但是这种概率实在是太小了。没有找到好老师,我们就要利用身边好的资源,向那些技术
大牛们请教,不乏你要和他们处好关系,做一个有心的人,要学会问问题,并且不能让大家感觉烦人,但是你也要付出一点代价的。平时没事请大家吃饭娱乐一下,
俗话说吃人手短,学会办事,学会学习。除了身边的资源,现在是互联网时代,Google和百度是不可少的,你所遇到的问题,网上早就有人遇到了,要学会自己解决
问题,从网上寻找答案。MSDN和博客园这些都是可以帮助到你的,这里有无线的资源,此外还有github,资源多的你都不知道从哪里获取了。
8、英文,无可避免
要不断修炼和格物,要学习好的作品,认识好的框架,很不幸的是,这些好事全被老外占了,因为本来就是从他们那里开始的。所以我们要试图去克服英语的障碍,
多看多读多写,也就能应付了。
以上这些,谁都知道,但不是谁都能做到。累并快乐着,永远是这个行业,这群人的主旋律。选择了这一行,你就要做好准备的,困难时有的,但是解决的办法也是
有的,每每有所突破,有所收获,你也会收获很多喜悦和快乐。喜欢自己选择的,选择自己喜欢的,技术这东西就是这样,有时候你觉得枯燥,有时候你觉得很有挑
战,世界就是这么奇妙的。我也是一个学习者,也是在一步步的学习成长中,也是看了很多大牛前辈们的文章,总结了这些的,希望能对大家有所帮助。