分类:
2009-04-11 08:30:18
学以致用,运用是学习的目的,但是,学起来容易用起来难。软件设计这东西,学起来已经不容易,要灵活运用到实际中去,就是难上加难了。
学以致用,这事情其实分两种不同的情况。第一种,学习知识,以看明白过去发生的事情。第二种,学习知识,以把握未来发生的事情。运用理论和方法,解释已经发生的事情,相对容易些;而要预测甚至控制未来发生的事情,就非常困难。这其实是学以致用的两个不同阶段,当你的目光离开书本,投向现实,先要搞清楚已有的事情,掌握当前的情况,然后再谈将来的事情会如何。这也是两个不同的境界,大多数人,只要肯努力都能够达到第一种境界--看懂过去,但最终只有少数人能够达到第二种境界--把握未来。
不止是软件设计,在所有的领域都是这种情况。
现在炒股热,大多数专家可谓学有所成(至少学历都非常高)。他们利用各种术语,把已经发生的起起落落分析的头头是道,却没有几个人能够预测未来的情况。正所谓,解释过去容易,预测将来难。所谓解释,不过是一个自圆其说的过程,是有果推因的过程,解释的对不对,就看会不会唬人了,一般情况下是无法验证的。只有达到学以致用的第二个境界,才能把握未来,赚到钱。
学习软件设计,刚开始的时候,掌握的概念和理论,能帮助你能看懂别人的设计,探测别人的思路,评判别人设计的优点和缺点。但如果让你设计,恐怕又是另外一回事情了。别人设计的好的地方,你能够认识到,可是未必自己能想到出来;别人的设计的缺陷,你能认识到,却未必能有把握避免;一旦你开始设计,虽然也能套用各种设计方法,设计模式,可是设计出来的东西,在实现后表现却很差。这是因为你已经达到了学以致用的第一个境界,解释过去,但还没有达到学以致用的第二个境界,把握未来。所谓眼高手低,看起来清楚,动起手来,等出现问题才发现自己仍是糊涂。
再厉害的炒股高手,也不可能100%的预测明天的走势,如果有,也是侥幸。再厉害的设计高手,也不可能设计出绝对完美的软件,如果有,那说明问题还没有被发现。
我们不毕竟不可能完全的把握未来,学以致用的第二个境界也许我们永远不能达到。但我们可以无限接近它。如果炒股高手预测的准确率大于80%,就非常有把握在长期操作后,会赚到钱。如果设计高手,设计出的软件结构合理,后期虽然出现问题,但也能把修改的范围控制在较小的局部,那么,他就不负高手之名。
PS: 学可以致用,用也可以促学。单纯的学习很难学得透彻,用的过程其实是学的过程的延续。学和用,其实是交织在一起的过程。