Mark24
记录灵感、技术、思考
实践可以先于理论:思考个人实践的思想
计算机的书籍浩如烟海,我们应该何时开始创造?
我自己包括我见到的很多人,可能考虑的问题都是尽量学习多一点,拥有了储备知识再去创造。
虽然时间变久,我觉得前期这句话是正确的,中后期这句话是不正确的。
理论和实践之间的相对关系应该是怎么样的?
我现在的个人想法是:
1)我们学习什么?
我们学习的不应该是一些符号,一些API怎么用?这些东西肤浅且易变,他们虽然是程序的载体,确是程序中最不重要的东西。
学习编程应该像张无忌学武功,我们要尽量忘记所有有形的东西,然后尝试理解无形的东西——思想。
2)理论和实践
编程里面,如果明白了一些基础理论和思想就可以干活了。
程序可能不够优雅也不够健壮但是不阻碍他可以工作。
理论指导虽然可以提供帮助,但是脱离了问题存在的程序往往没有存在的意义。
任何书本、理论仅仅是传递一种这样的信息——这个问题曾经存在过,作者把自己的思考借助书本表达了出来。
现实情况往往是,新时代有新问题,新环境有新问题……就像马克思说的问题在螺旋上升中不断地出现。
一千个人心中有一千个哈姆雷特。问题、编程理论也类似。
程序与其说是解决问题,也像一种自我表达。每个人理解不一样,对解决方案的期待也不一样。正是因为这种差异性,所以个体重造轮子也是存在正当意义的。
3)实践开始,创造理论
我们应该追求一种能力就是把握住思想,然后创造知识(框架、理论……)。
我来一个不恰当的比喻。开国领袖不必要研究完所有二十五史,才能带兵打仗。社会上的精英也有二十五六七八。
更别提创造性、开创性的工作比如牛顿的开创性理论。
实践是开创性工作的先河。应该先去开始,然后过程中不断地思考、学习、寻找支持自己的理论。然后推进整个过程。
而不是反过来。