能看懂代码 就是自己写不出来 怎么办?
本人在学习单片机编程就曾经遇到过这种困惑,现在我通过本人学习单片机编程的经历来谈谈如何摆脱这种困境。勤于积累,理清程序架构,探寻程序内部结构我们能够看懂代码,说明我们已经掌握了编程语言的基本语句和程序的基本结构,但对于程序的内在结构却缺乏理解。或许我们能够编写一些简单的子程序,但是如何把各个子程序连成一个有机的整体我们则无法完成。说到这里我总感觉编写程序与我们写作文有很多相似之处,我们有些朋友在看别人的文章时能够看懂,甚至能够评判所写文章的优劣,即便如此,一但让我们拿起笔去写文章时,我们也会有无所适从的感觉,感觉无话可写的局面。
这种情况的的出现我认为是下面原因造成的,一是我们没有写作的素材;二是我们没有写作的技巧,对文章的架构缺乏设置的技巧;三是我们的词汇量贫乏等等,所有这一切都表现出了我们无法写出优质的文章来。再回到程序的编写上来看,我们之所以编写不出程序的原因也是有类似的原因,首先是我们没有积累一定量的功能子程序,这些功能子程序就是编写较大程序的基础,它是我们编写程序的素材,比如各种延时子程序的经典写法、定时中断子程序的写法、防按键抖动程序的写法、数码管扫描子程序的写法等等,这些都是我们需要积累的,我们不难看见在我们阅读别人的程序时,都会见到以上程序的身影。
其次是我们没有架构这些子程序之间关系的能力,主要是我们无法把这些子程序有机地组合,形成我们所控制的程序。比如我们要用按键控制一个步进电机正转和反转,我相信很多朋友都能写出来。但是要让我们用按键控制步进电机具体的转动圈数,并把转动的圈数通过数码管显示出来,对于初学者就感觉有些难度了,这时很多初学者无法完成了。如何破解能看懂代码而无法写出程序的困境如何破解这种困境呢?现在我来说说我的看法,我认为第一点就是多积累,这就像我们写文章一样,人们常常说“读万卷书,行万里路”,这里的“读书”和“行路”就是我们写作时的积累过程。
那么编程也是一样的,需要积累。我在学习单片机编程时刚开始就是从积累一些典型的小程序开始的,在这些具有模块化的子程序中其实都蕴含了很好的编程思路,比如以按键抖动处理程序来说我就积累了很多种处理的方法,比如定时中断法、反转法等,其它的典型程序都是这样的。当时我就准备了一个小本子,在阅读别人的程序时,当遇见好的典型子程序时,我就拿本子记下来,然后反复揣摩,领会编写者的思路。当这样日久天长后,我们在写程序时就会自然流露出以前所遇到类似的程序,真实有点“下笔如有神”的感觉。