从计算机编程灵感中得到的启发

建霖编程序灵感来的时候想到的:
A 灵感:人之所以成为高级物种是因为懂得创造和使用工具。
1 创造工具/使用工具/干活 创造企业/管理企业/雇员
2 将几百年的科技结晶凝聚的战争工具用于战场/将先进的工具用几年的时间去研究它的原理 将所有的力气聚集于一点爆发出来/将强大的力量分成很多步缓冲手段卸掉 前者是将很长时间累积的科技能量和积蓄的身体力量在很短的时间很小的一点释放出来,后者是将很强大的能量通过时间和空间的稀释从而获得并掌握这种能力。例如火、电、原子能
3 再引申一下,我们的学习也是这样。平时是学会使用(前辈们创造的)工具的时候,考试是检验你使用工具熟练程度的时候。我们的文明进步就是对改造自然工具的不断进步。——我们的身体是最原始的工具,动物只会进化自己的身体,而这种进化是缓慢的,人懂得创造工具,而改进工具相比身体的进化,是迅速得多的。


B 灵感:计算、记忆和给出算法的学生,在信息时代哪个最有前途?
计算机的作用:解决运算能力和存储记忆能力。我们只需要写出算法告诉计算机该怎么做。得到的启发:在信息时代,最有潜力的学生既不是最善于计算的,也不是最善于博闻强记的,而是善于给出问题解决思路的(写出算法的),因为计算机已经帮我们解决了前面的两个困难。


C 灵感:以人的DNA和计算机代码类比来认识世界。
我们的身体构造是严格按照DNA来组织的。而DNA的编码正如程序的编码嵌套一样,手是由好几个部分组成的,而每个不同的部分又可以分成很多很小的部分,正如不断嵌套的函数,每个函数可以由多个不同的函数组成。就像俄罗斯嵌套瓷娃娃,也像我们世界的组成方式。实际上我们世界是由一些最基本的物质组成的,就像计算机中最原始的二进制编码,然后往上是汇编语言,高级程序语言,然后组成过程、函数,函数再形成一个个对象。这就好比基本的物理粒子组成一个复杂的人。再举一个例子,我们的知识瀚如烟海,因此我们将知识写成一本本的著作,然后给书添加章节和目录,然后再按书名添加书目,再按类别整理成一块块的种类。由此想到了:任何东西和事物都是由这种从大到小、从粗到细、从简到繁的方式组成的,我们不必从最细粒度去整理和分析,因为最细粒度都是最原始最基本的颗粒,它本身不含更有有用的、冗余的信息。信息本身蕴含的秘密集成在颗粒的组成方式上。如果我们从最细粒度出发,而没有一个框架图的话,会陷入数据的海洋。这些数据我们很难找到其中的规律。而事实上,我们最重要的就是发现这些数据的组成规律。往往是这些组成规则决定了组成后的粒子的功能和属性。是如何组合的,是如何层级嵌套的,这样我们就能站在更高的粒度去观察和分析它,发现它的本质规律。我们在化学的层面上来看物质之间的反应,就像我们将许多函数组成一个个函数或对象后再编码一样,如果从物理粒子层面解释化学反应,就如同将这些一层层函数由外而内代入,写成最细粒度的代码(对于程序员来说,可读性相差了好几个“数量级”!这也解释了为什么越细粒度的代码越难理解,为什么软件界要求提高代码复用程度,高内聚低耦合。因为这样的代码简洁、规范、易懂)。(因此,我们经常反其道而行之,即用函数和类、对象来增加代码的复用程度,这也解释了为什么复杂的化学反应例如燃烧用以物理粒子为单位太复杂而很难解释,当前用大型计算机也无法模拟)。明白这一点后,我发现,无论是在理解事物还是在着手一件工作的时候,都应该注意事物的这种构成性质,从而很好地把握事物的颗粒度。太细,一是陷入了数据的海洋而找不到正确的方向,二是太细颗粒本身不含有更多有用的信息。太粗,则无法深入了解该事物的运行原理和构造方式,如果不能很好理解就不能很好地利用。因此,我们在研究事物(对象)的时候一定要把握一个层次粒度,正如编程时候的合理封装好的接口,在这个层面上,细节既不会过于复杂,对很多具体的复杂动作进行了封装,又不会过于笼统,能让我们了解该事物深层次的规律,有什么属性和功能,能在什么时候被调用和被触发都能够一目了然。这样,我们就能很好地应对任何工作并快速上手。
另外我想到的是:我们读书时,先查书目,再查索引,最后查自己感兴趣的章节。我们工作时,从最细粒度干起,基于该粒度做一个“索引”,再在索引上按工作流程分类,进行一个类似于函数封装的过程。我们了解和接手工作的时候,就像查书一样,只要对方交接时将工作整理好了,我们不必理会大量细致而繁复的工作,我们只需要找到每“块”(封装的块)工作的“接口”,这“块”工作的作用和目的是什么。通过交接的文档,我们以“块”为单位进行查阅,从而对整个工作有一个全面的了解。以查书为例,一般这个“块”的就是每本书的“目录”。通过目录你能知道这本书大致在说明什么,然后通过书目列表你就明白了得到的这些书的涉及到的大致领域。程序代码也是这样:有了最细粒度的代码,然后有以函数为单位的数据流图(标注清楚每个函数的功能和接口),然后有以模块为单位的功能图,最后才是软件用户说明文档。这样,有了中间两个图,我们在接触软件的时候就对一堆堆代码在干什么一目了然。从这里我想到了人类基因图谱,我们的DNA就是最基本的二进制代码,我们必须将它反编译为高级程序语言,然后将后面的三个文档补齐(数据流图、以模块为单位的功能图、软件用户说明文档——粒度由细到粗),这样,我们才能声称破译了人类的DNA。否则,永远从最细粒度去看DNA,就如同永远从二进制数据层级去看一个超级大型网站的代码一样,毫无疑问,我们很容易陷入数据的海洋,哪怕你是一位很有经验的工程师,你也仅能破译出你熟悉的部分,而大部分的数据你是无法看明白的,因此,就像目前的基因工程师们干的这样:只能宣称剩下的大部分代码是冗余的、无意义的。
从我们的身体由DNA构造组成,我由此想到一个推论,我们是不可能有来世今生的。因为用计算机的语言来说,我们的DNA相当于计算机中的“类”。我们是根据“类”造出的一个个实实在在的“对象”。而我们的大脑就是这个对象的“运行环境”,当给出一个个发生的“参数”,也就是初始条件的时候,我们的“意识”就开始在“大脑”的这个世界运行了。我们的意识(计算机的对象)在大脑中运行(程序在具体环境中被调用、触发)会产生一系列的结果(思维活动)。正如对象被调用后产生的返回值,我们将其存储在变量中,这个变量对于大脑来说是“记忆”。一旦程序运行结束(大脑死亡),变量的值总是会被清空掉的(意识消失,记忆没有了)。我们唯一能够做的就是根据我们的经历继续完善我们的类(DNA)使之更加适应当前的环境,让下一代更适合在这个世界生存。这相当于程序不断地增加和修改类,类继承原来的属性并增加新的属性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值