相信很多的技术朋友平时都会看很多的技术文章和技术的书籍,很少涉猎其他的相关书籍。在以前读书的时候,可能看的书涉及的方面还多一点,一旦参加工作之后,所看的书基本上就全都是与技术相关的了,看的视频、讲座也是的,为自己建立了一个“非常好”的技术氛围。

这不是坏事,但是这样下去久而久之就出现了思维能力的偏差和看问题不全面等问题。举个简单的例子,在做设计或者编程的时候,我们总是需要考虑很多的问题,如使用哪种方式实现某个功能。对于这样一个很简单的问题,很多人就出问题了:因为他们总是不会选择,总是不会分析几个不同方法之间的利弊,总是不会按照当前的情况结合现有的能力和资源来决定,总是希望有个标准答案。于是很多的人就把技术作死了,也把自己的思维给固定死了。


上面提到的问题,可能在现实的生活中,在其他的方面,不会出现这样的情况,但是一旦把需要选择的情况拿到技术领域,出问题。如果我们是在商场买几件衣服,或者其他的实物,我们确实比较几个物件之间的价格,款式,使用时间,和保修时间等,会从各个方面来权衡考虑。但是一到了技术上面需要做的时候,就晕了,总认为技术领域和其他的领域不同。其实,都是一样的,思维的方式就是雷同的。

有时候想起来,可能使我们的受应试教育事件长了,导致了思想无法改变过来(虽然说现在提的是素质教育,但是你懂的)。就好像在现在的中国人的思想中,有些东西是根深蒂固的,因为两千年来的封建统治深深的在人的思想上打下了烙印,不是那么容易改变的。同理,应试教育对人思维的影响也是根深蒂固。

这一切不能怪别人,因为之前十几年的教育,我们无法选择,或者选择的能力太小,但是之后的道路,完全是由我们自己把握,我们可以改变自己的思维方式和做事的方式。

于是不要以为社会上面有人像我们的高中老师一样,什么东西都手把手的叫你。不要成天的把自己和其他的人比,凡事要比个高低,争个名次,一个人的心怀有多大,他的成就就有多大。不要总是把自己的视野局限于当前的小圈子,其实技术就是生活的一部分,很多的道路是一通百通的。



可能有人会说,这不行啊,精力有限。确实,但是,看看其他的方面和事物,不一定是浪费时间,完全取决于你任何从这些事物中进行领悟,举两个简单例子。

古人为什么总是说:读万卷书,不如行×××路。就是因为书中所写的一方面要实践,体会,另外一方面就是从生活的其他方面,让你更书,对你的思维有一个侧面的补充和验证。

对于技术而言,也是一样的,就例如,当初自己在第一次学习.NET的时候,那时候接触到了面向对象的东西,同时也看到里面有很多的新的概念提出,例如事件,我当初就想,什么是事件?我问别人,别人就来句:例如点击按钮,这就是一个事件。这就是一句废话,简直就在用“事件就事件”“因为爱所以爱”等类似的答案在回答你。

因为很多的东西,如果总是生搬硬套的来糊弄自己,以为自己明白,但是这些你的东西在思维层面上,顶多就是处于“记忆”的程度,没有达到理解,掌握。于是,我开始从所谓的面向对象,想到我们的现实的生活,既然那么面向对象的大师们从现实中领悟到了现象对象,而.NET平台也是包含了OO的精髓,那么这个“事件”的概念,说不定可以在生活中找到原型。于是自己就开始不断的想:例如,每个按钮,就是一个人,这个人有很多的特征,例如头发是白的,升高很矮,那么这些就是所谓的属性。这个人喜欢喝酒,一旦喝高了,就喜欢打人。那么喝酒就喝高的促进因子,打人就是喝高之后产生的行为,那么这个关系就是:喝酒->喝高->打人。只有喝高才打人,不喝高,不打人(因为性情很温和),那么喝高就是一个人的某一种状态,只有处于这个状态之下,他才会去干什么样的事情。也就说,只有处于喝高的情况,才打人。一个按钮只有处于被点击的状态下,才会做一些事情。所以事件其实就是某个状况发生了,使得某个人处于某种状态。

于是,不断的思维和对比,对事件有了自己的理解。

再如,为什么我们看到的很多的武林高手都要不断的静思,去一些大山中打坐,就是因为他们知道,现在的武功修为已经到了极限,无法提升了,所有的招式和心法都已经到了头,现在如果他们想要有更多大的修为,他们必须要不断的突破自己现在的思维定势,不断的悟出新的东西。

虽然例子不是很确切,但是可以知道:这一个个看似与原本初衷无法的东西,其实都是对你最终目的的一个补充和提升。例如,可以看一些人文,了解一下文化习俗,这一点在以后的项目中接触不同地方的客户有些帮助;例如读一读管理,以后不一定要走管理,到时候你起码可以明白,你的上司为什么要这样,起码可以让你懂的如何去和人沟通,交流等。
 
甚至你在乘车,陪朋友逛街的时候,可以领悟很多的对技术有用的东西。其实这就类似:谁说编程一定要坐在电脑前面,其实在哪里都可以编程,只要你思路清晰,搞清楚了调理,最后的上机仅仅就是把你的思维呈现出来而已。
其实,就我个人而言,我开始的时候,也是非常喜欢的看技术方面的内容,对其他的东西,不怎么碰。后来我发现:学习技术,和看技术的书籍,我学到的仅仅只是一种动作上面的能力提升,例如,我知道如何实现一个东西,如何设计一个东西。强调的过多的是行动上面。当然,如何从高层的视角看问题,如何把问题抽象出来,然后在深入的分析。这一点,很难做到。

很多的时候,以为做的所谓的设计因为很正确了,后来在实现的过程中,发现总是漏洞百出,很多的地方思考的不周到。而这些,固然在技术的书中有一定的提及,倒是,终究只是别人的说法和看法,照搬的过来反而使得自己绊手绊脚。很简单的例子,很多的人一谈架构,就来三层,已建立项目就是三个。问他们为什么?因为架构就是三层,三层就是架构,三层就是所谓的UI,BLL,DAL。当然还有其他的回答。其实这就是一直思维定势。完全没有按照实际的情况来考虑是否要三层,还是N层?为什么要这样?很多的问题都回答不上来,完全没有按照自己的思考在做,而是一直照搬的形式。

大家可以试想:这样下去,能力和技术可以提升吗?思维上不去,动手能力再强,也只是一个很好用的工具而已。关羽的武艺在高强,没有诸葛亮的思维和合理的利用,关羽顶多就是个耍大刀的莽夫。

建议大家多多涉猎其他的书籍,多多从生活中的其他方面进行思考,然后在将之应用在技术上面,你会发现很多原先不一样的东西。
 
 
此文只在agilesharp,51cto,chinaunix,itpub发布,其他社区和站点严禁转载,一旦发现,必会穷追猛打,如果诚意转载,请告诉我们,原创不易,感谢您的体谅!