虽然我没做过什么大的项目, 但是还是觉得可以写一些东西。当然,如果你看了之后,觉得这是显而易见的,暂且将这片文章当做作者对自己的鞭策吧。
感受1:在做项目的过程中,要分清主次,抓住主要矛盾。
感受2:不要将简单的问题复杂化,很多事情完全没有我们想想的那么复杂(说起来容易,做起来难呀!)
感受3:一个问题是否复杂,不是靠想出来的,而是通过实践发现的。
我是一个喜欢把遇到的事情弄得一清二楚的人。遇到一个问题,总是要刨根问底。有时候这是好事情。但是有时候它又是坏事情,尤其是在工程中,当自己遇到一个新的问题时,往往不会起到好的作用。因为当自己把遇到的问题的领域熟悉之后,发现会把原来遇到的问题变得更加复杂,因为考虑的方面更多了,当然这些都是错误的考虑方向。(对我这样的菜鸟是这样的,也许对大神会更加清楚)。
以下我将以我自己的亲身经历讲起。
在大四做毕业设计的时候,需要用到一个工具:unravel,主要是开源的c语言代码,对c语言程序进行静态切割。这个工具是带界面版的,并且运行在linux系统下。当然这只是我们项目中的一个小的环节。我对c语言做界面不是很熟悉。如何运行该软件我都不清楚。看了一下unravel的安装文件,说:
The unravel interface was developed under X Window Sys tem X11R5 using the Xt toolkit and the MIT Athena widgets. Unravel should compile and run under X11R6; it also compiles and runs under X11R4
看了上面的介绍,X window System X11R5 Xt toolkit MIT Athena Widgets, X11R6这些词汇自己感觉好陌生。本来对界面就不是很熟悉,linux下的界面更不熟悉。怎么办呢?为了能够运行该程序,我就去网上搜索X window System等上面的词汇,然后大量阅读它们代表什么意思。试图找到解决该问题的方法。一天又一天,总是在网上浏览大量关于这些的资料。没有采取任何行动。到最后,还是没有看明白它们之间的关系。了解了皮毛,但是对解决问题丝毫没有帮助。这根本就不是我们项目的核心部分,就想去了解它(真是该死!)。
后来,我从网上down了一个中文的安装说明。不管它什么X window, X11R5 MIT Athena Widgets,等,我使用linux系统,那文档让我下载什么我就下载什么,让我怎么办,我就怎么办。最后我成功了。当该软件以界面的形式运行时,我感到十分兴奋。就算我花更过的时间,把上面的这些概念都弄明白了,最后也成功了,也不过是我这样成功时感到的兴奋。我的目的是运行软件,不要在其它方面花费更多的时间。我浪费不起这样的时间。因此,我们做一件事情的过程,可以看做一棵树。主干一定不能偏。也许在这个过程中,遇到了一些问题,需要涉及其它方面的知识,可以涉及,但是不要在那个上面花费太多的时间和精力,只要能够解决我们遇到的问题就行了。
接下来我们来讨论一个问题:
我们在刚开始认识一个事物的时候,往往不会很复杂。我们应该从不同的角度来认识事物。例如我们在看到一个理论很复杂时,我们就认为这个太难了,我们做不出来。其实,我想说,在刚开始认识一个事物的时候,大家都不会认识的太深(神童除外),也完全没有必要认识很深。因为该开始认识一个问题越深,解决问题的方法越狭窄,同时也不容易做出成果。 也许我们被课本中那些高深的理论给忽悠了,看到一个理论,一大堆方程,证明什么的,就吓到了。其实,我想说,我们生活中的大部分问题并没有课本知识那样的深奥,但是我们要有宽阔的眼界。搜索引擎中的很多技术就是证明。它们都很简单,但是非常有效。例如Larry Page的PageRank算法等等。
对于课本的知识,我们看到的是成熟后的知识。它的前期,对它的认识也是较浅的,但大方向是对的,然后不断的细化,最后形成成熟版本。现在假设由两个人A(大神)和B(屌丝),当他们遇到一个问题时,A若有想法,告诉B,B可以轻而易举的明白。然后A在自己的想法上不断改进,优化,考虑其它情况,当把最后的结果呈示给B时,B是理解不了的。我们就是B,理论的创造者就是A,我们看到他们最后的问题解决方案,所以感觉难。 其实,正确的方法是,我们应该学习A在遇到这个问题时的思维过程。而不仅仅是他成熟的理论。很不幸作为B的我们,应该培养A认识问题的思维。
当我遇到一个问题的时候,总是一下子就认识的“很深”,往往忽略简而有效的方法。当然,大部分是我的问题,但是我觉得我们的教育*也有一定的关系(不多讲)。放宽我们的视野,你会发现新的蓝天。退一步海阔天空就是指这个意思吧。
我之所以强调这个,是因为,如果我们认为问题很难,它会打击我们攻克它的自信心,从而影响我们工作的效率。如果我们认为问题比较简单,精神上,有足够的信心,做起事来效率也高。也许,我们没有解决,但是通过前面的一些尝试,相信一定能够帮助我们找到解决问题的正确的方向。
工程中遇到的问题,并不是我们想象的那样复杂。对解决问题要有信息。同时在开始认识问题时,不要认识的“太深”。
元芳,对于这个问题你怎么看?大人,这个问题很简单
当然,实际生活中,同样存在复杂的问题。但是我想说,一个问题是否复杂,不是靠想能想出来的。而是要通过做,通过实践来发现该问题的复杂程度。所以遇到一个问题,一定要做。做->想->做->想->....