这几天的最大的收获并不是去了全球各地, 领略了风土人情的感慨, 也不是思考人生, 想通了自己要去哪里, 相反由于这一周一半时间与程序在打交道.
由于曾经很长一段时间喜欢一个人独处, 然后思考人生思考很多问题给我带来了很多真正的好处. 但是同样也有坏处, 那就是太关注自己的感受以后, 很容易被自己的感受操纵, 比如很喜欢比较, 很容易自卑, 这些负面情绪其实每个人都会有, 但是如果把自己的注意力关注在这个上面, 那么很可能就会被自己的情绪说操纵.
但是面对程序, 和面对世界的真人真事的时候, 情况就不是这样了. 这个时候事实是什么就要远比自己的感受来的重要. 一个小车, 一个很简单的动作, 它就是要由好几个传感器协作, 完成, 前进一步, 检查是否左轮胎比右轮胎块, 如果快了, 那么停止左轮胎, 有轮胎同时做出同样的操作, 完成后再次读取指南针的数据, 如果现在是朝向南方, 那么就调整成正南方向, 像这样, 不断的运行, 然而这每一个子问题, 都需要完整无误, 才可以让整个项目正常的运行, 而遇到连续出现错误的时候, 永远不是想着怎么那么苦难, 你要解决它的唯一方式就是寻找出那个你忽略的事实, 其实生活不也是这样的嘛? 有问题就去解决, 可为什么到了生活中的时候, 遇到问题往往第一时间想到的不是面对事实而是退到自怜的状态? 退到防御的状态?
我想很重要的原因也许是因为生活中我们很容易忽略是因为生活太复杂, 而程序的世界, 那个单片机, 那台电脑的硬件其实是世界的全部, 它的功能就是这点, 出现问题找到问题的范围也永远只限于那小小的芯片, 因此当我们在芯片世界上遇到问题的时候, 我们很容易的就会选择去寻找事实是什么, 因为“就指甲盖那点大的芯片能有什么难度? “. 可真实世界要远比芯片大的多, 复杂的多, 真实的世界本事就是事实, 而芯片只是真实世界的一部分. 在芯片的世界, 逃避现实, 或者故意不去观察现实, 最终的结果必然是无法解决问题, 或者需要更长的时间解决问题, 在真实世界中, 这也是同样成立的, 但是大多数人, 当看到真实世界的时候, 往往选择不去理解, 逃避理解, 还没等放弃, 就已经不曾想过, 还没开始就已经结束.
敲代码,没有此类经验的人想不到的现象: 由于 一个极其微小的错误都会导致最终程序无法运行, 而即使有人把程序一开始就学习的滚瓜烂熟, 然后按照他所学的, 把一个项目的程序全部完成, 其实等到运行的那一刻就会发现, 总有你想象不到的错误发生, 这种错误小到, 可能一个字母的大小写错了, 或者出现了中文标点, 而这些错误就是自己脑中的世界, 和真实世界的差距. 对于一个小小的单片机我们在一开始通过书本, 或者即使通过老师教授, 也不可能做到完完全全的理解事实的每一个细节, 更不用说真实世界. 因此接受我们不可能完美的知道每一个方面这一点就成了一个很重要的生存方式了. 因为失败本身其实一直围绕着我们. 同时也要知道, 自己很多地方如果做的不好, 大多数是因为我们想象中的现实, 和真正的现实之间存在的差距, 而这种差距只有可能无限接近, 而不可能完全消除. 是这种差距导致的失败. 而唯一能够改变这一切的只有一件事——缩小差距.