晚上离开实验室之前,抠了一道C语言编程题,大概属于那种入门级的吧。本想着能够很容易搞定,就按着自己的思路动手开撸。磕磕碰碰总算是敲了出来,但是对于程序的逻辑结构并没有清晰认识,一心想着运行一下也许就是正确的结果,再不济也能够反过来指示正确逻辑的方向。出乎意料的是,数次的运行效果都与期望相差甚远。看着被自己改得像坨屎一样的代码,深感无力。过了大概一个多时辰,当我静下心来,终于想到了那条关键的逻辑代码。
回顾这整个过程,它显得是那么笨拙,那么地低效,因为,我本可以用这些时间做出更多有意义的事情。
一味地独立思考(或者说,就是固执),未必是一件好事。懂得在适当的时候认怂,或许是更明智的选择。要知道,小孩子刚出生是不会说话,不会行走的,他需要的是在正确的指引下,去不断的模仿练习。同样,学习一种技能(编程)亦是如此,模仿着学习是既高效又有效的。诚然,也许你能够最终做出同样的效果,但是,它的效率可能是差强人意的,它的逻辑结构可能是扭曲的。如果这时你再看下正确的编码姿势,你会发现自己的代码真是不能直视。更不幸的是,这种经过自己固化的编程思维,总是会比正确的编程思维优先级高(因为,这是你花了大量时间抠出来的,泪呀)。
如果在编程初期,通过不断的参考模仿,向自己的大脑植入正确的编程思维,而不是一味地盲目思考,会来得更有效。
另外一点,在我们动手编写代码之前,首先想清楚,程序的关键的核心逻辑是什么?先从宏观把握,通常会比盲目的动手编写代码要更高效。因为这样,自己不容易陷入到程序某个逻辑层,无法自拔。如果这样的情况真的发生了,也要懂得适当的stop一下,静下心来想一下程序的逻辑是怎样的,也许就会有结果了。
回想自己一路走来,因为固执的思考问题,因为自己的倔强不认怂,吃了太多的亏,走了太多的弯路。其中,高考算是我吃得最大的一次亏了。
每次的理综考试,我总是做不完,这我是知道的。但每次都有很多容易解出的题目,最后没有机会做了,这肯定是有问题的。这个问题就是,我总是会死抠一道题(因为,它总是若隐若现的让我觉得自己能够搞定)。结果,在最重要的那次考试中,我还是那样做了,也尝到了它的苦果。显然,并不是我只在考试中才有这个习惯,这个肯定是我在平时的练习和日常生活中就有的,真是细思极恐。