实践可以先于理论:思考个人实践的思想

计算机的书籍浩如烟海,我们应该何时开始创造?

我自己包括我见到的很多人,可能考虑的问题都是尽量学习多一点,拥有了储备知识再去创造。

虽然时间变久,我觉得前期这句话是正确的,中后期这句话是不正确的。

理论和实践之间的相对关系应该是怎么样的?

我现在的个人想法是:

1)我们学习什么?

我们学习的不应该是一些符号,一些API怎么用?这些东西肤浅且易变,他们虽然是程序的载体,确是程序中最不重要的东西。

学习编程应该像张无忌学武功,我们要尽量忘记所有有形的东西,然后尝试理解无形的东西——思想。

2)理论和实践

编程里面,如果明白了一些基础理论和思想就可以干活了。

程序可能不够优雅也不够健壮但是不阻碍他可以工作。

理论指导虽然可以提供帮助,但是脱离了问题存在的程序往往没有存在的意义。

任何书本、理论仅仅是传递一种这样的信息——这个问题曾经存在过,作者把自己的思考借助书本表达了出来。

现实情况往往是,新时代有新问题,新环境有新问题……就像马克思说的问题在螺旋上升中不断地出现。

一千个人心中有一千个哈姆雷特。问题、编程理论也类似。

程序与其说是解决问题,也像一种自我表达。每个人理解不一样,对解决方案的期待也不一样。正是因为这种差异性,所以个体重造轮子也是存在正当意义的。

3)实践开始,创造理论

我们应该追求一种能力就是把握住思想,然后创造知识(框架、理论……)。

我来一个不恰当的比喻。开国领袖不必要研究完所有二十五史,才能带兵打仗。社会上的精英也有二十五六七八。

更别提创造性、开创性的工作比如牛顿的开创性理论。

实践是开创性工作的先河。应该先去开始,然后过程中不断地思考、学习、寻找支持自己的理论。然后推进整个过程。

而不是反过来。

Mark24

Everything can Mix.