15 May 2014
遇到问题为什么应该自己动手 (下)
我们在遇到困难的时候会试图去寻找捷径,心里的想法大概是:既然我自己解决可能需要耗费极大的精力,甚至连最终能否解决都无法判断,那么为什么要冒风险花费大量的时间去尝试呢?还不如想想其他法子。比如绕过问题,或者将问题外包给别人。
这很聪明,很经济:用最小的代价解决手头的问题。看上去是一个寻求经济上最优解的法子。
不过到底是局部最优还是全局最优呢?
“用最小的代价解决手头的问题”——这里的问题在于,难道我们计算收益的时候仅仅考虑是否解决了手头的问题吗?如果解决的过程中得到了其他的收益呢?
为了解决一个技术问题,你踏遍互联网,翻了若干教程、网站、书籍,最终解决了这个问题的同时还知道了以后遇到类似的问题该到哪儿最快最有效地找到参考,你还知道了哪些网站是寻找这个领域最有价值信息的地方,你还知道了哪些书是领域内最经典的书,说不定你在到处乱撞的过程中还会遇到其他若干意想不到的收益。
为了解决一个内存泄漏的bug,你学习了一堆底层知识、了解了一堆调试工具、学习了若干wikipedia页面,表面上看来,仅仅为了解决这一个小bug你的时间花销未免太大了点,然而关键就在于,它的收益远远不止于解决了这一个小bug,下次你遇到任何类似的bug的时候就能够哐当两下就解决之了。
生活或工作中,很大程度上你遇到的每个问题都不是孤立的,既然你遇到了某问题,那么很大的可能性你以后还会遇到类似的问题。当然,这个说法的另一面是,也有一些问题是一锤子买卖,即以后不会遇到类似的问题,因此只求速解决。不过按照我的经验这样的问题实在太少了,此外,你觉得你真的能够分辨你面对的问题是否属于这类问题吗?底线是,就算是这样的问题,你自己动手解决也能培养学习能力和思考能力。如果你判断它是一锤子问题,外包给别人解决,那么你就永远没机会发现这个问题背后蕴藏着哪些知识,这就成了一个自我实现的预言。
如果选择总是问别人的话,下次你还得继续问别人,每次直接问到问题的答案的同时意味着你永远都要靠别人的大脑来获得答案。
困难的路越走越容易,容易的路越走越难。
Til next time,
Xujiajun
at 07:33