茫茫大海中,我们寻觅着,寻觅着那让我们激动不已的技术,程序员不是寻觅着女朋友,而是寻觅着能陪伴终身的技术,我们做为程序员,有时候真的为自己的职业感到可悲,没时间陪家人、没时间逛街、没时间聊天等等,我们把那些时间都用在了学习上,技术的道理上没有终点站,只有一个个的里程碑,今天的不学习,就注定明天被淘汰,其实今天我想要将自己的一些心理话说出来,让我们程序员都能勇往直前,成为各个领域的技术专家,这样才不会让我们后悔当初所付出的宝贵时间;

技术日新月异,从最早的DOS到今天微软的Windows,我们作为微软技术群体中的一员,为微软的技术感到骄傲,有人会说我在做广告,宣传微软的东西;其实不是,我是说的实话,当初上学的时候,我们从眼花缭乱的技术中,确定了微软的.NET方向,从此也逐渐的认识了微软,认识了一个在IT行业首屈一指的老大哥,在学习技术的道路上,其实初期我们都很茫然,茫然的原因各种各样,有担心自己学不好,有担心学了没用,为什么有这样的顾虑,是来自周围的环境影响,在大学校园里面总是能看见一群人,什么样的人呢,那些整天嘴里念叨这个模式那个模式、这个网络系统那个网络系统、这个语言好那个语言好、JAVA比.NET好、.NET比JAVA好,等等;这种观念本身没有错误,正是有了这种感觉才使他们走上了软件开发道路,只是万万没有想到是软件其实不是这样的,不是简单的好坏之分,而是需要大量的时间和精力去灌溉去呵护的东西,我们都知道写代码不是简单的敷衍了事,更不是实现功能就行的想法,在我们写代码的时候大量的时间在考虑,怎么写的简单、写了之后便于维护扩展、便于后期维护人员维护;本人有过一段时间一直在纠结一个问题,学什么技术,微软的东西那么多,.NET那么庞大,我们怎样立足于软件开发行业,经过两年的磨练、思考、总结,本人初步得出了作为一名微软的.NET技术人员,我们该如何定位自己的目标,怎样从大局观上把握技术,对新技术有一种很快很强的学习能力,对老技术能很清楚了解实现原理,对自己的开发平台要能清楚80%;

在刚开始我们接触计算机的时候,我们对软件并不了解,操作系统、网络等等概念都不是很清楚的情况下跨入了.NET队伍,在微软很人性化的软件开发工具上我们进行软件开发,但是又有多少人能清楚的了解计算机的工作原理,网路的工作原理,只是自己骗自己罢了;有的人连.NETWinform和.NETAsp.net软件模式都分不清,但是我不是在耻笑不会的人,我只是感概,我们真的危险,我们对自己天天都接触的东西都一无所知,想想如果没有微软的VisualStudio工具,我们就凭着基本的BCL能开发软件吗?不能,我很清楚我们不能,因为我们太依赖工具,太依赖工具为我们做好的操作顺序按部就班,但是今天我们也不需要去太关注那些复杂的技术细节,但是我们最起码能对自己的技术有个定位;我认真的总结了,.NET程序员如何做大局观的思考,如何对计算机的方方面面有个大致的了解;我将整个计算机领域抽象成一个倒立的金字塔:

1:

.NET程序员修炼之道_生活 

我为什么要画成倒立的三角形呢,其实我是将整个技术领域抽象成一个倒立的技术堆积过程,在最下面是硬件层,也就是我们应用程序员所不熟悉的,很少接触到的东西;系统层,就是我们的操作系统了,在操作系统里面包罗万象的技术应用;系统交接层,在这一层里面,是我们的应用程序框架与操作系统进行对接的过程,如我们的.NET平台,.NET平台本身也是要依附于操作系统的;托管层,就是我们开发平台.NET,这这个层面上我们衣食无忧,我们开发的东西就是应用层的东西;其实我们.NET程序员还算是幸福的,相比之下C++是多么的不容易,那些复杂的内存处理、图形绘制、硬件加速,都需要自己去处理,而我们的.NET平台为我们做好了;这幅图的意思很简单,让我们能看清楚自己处于那个位置;李世民曾经说过一句话大概意思是这样的:人是需要镜子才看能看清自己,但是这面镜子必须是非常干净靓丽的;我们就利用这幅图来看请自己的技术水平;

在计算机世界中,我们大概可以将它分为两类技术,一种是纵向的PC操作系统技术、一种是横向的NetWork网络技术,上面这幅图是说明了第一种技术,第一种技术是要我们尽量的向下走,去学习一些微软底层的技术;我们来看第二种技术网络技术:

2:

.NET程序员修炼之道_程序员修炼之道_02

我们学习操作系统的同时,更需要去关注一些网络技术,我们长用.NET开发网络系统,但是我们很少了解网络的细节;

只有具备纵向、横向的技术我们才能从总体上了解计算机网络系统的整个架构;我们最后拿.NET程序员做研究,这是本人的规划图:

3:

.NET程序员修炼之道_休闲_03

我们作为应用层程序员,选择微软的.NET和数据库作为必备武器,然后逐渐向下走,学习C、C++等之类的操作系统底层的技术,这样当我们遇到应用层大风大浪的变化时,不至于我们那么累;