看高手谈谈对单片机编程的理解
扫描二维码
随时随地手机看文章
不知道您有没有误解,反正我想让你们把上面二十这个数字的单位理解成年。如果您没有误解,那么我听到会有一点点失望,如果您误解了,我觉得很抱歉,真的。好像有个人说过大概这样一句话,人生有两件痛苦的事情,一是他的欲望没被满足,另一件是他的欲望被满足了。嘿嘿,您争使我陷入这两个痛苦之一。其实,我参加工作才一年半,也就是二十个月左右,离开学校之前我基本没编写过程序,c语言,仅知道有这么一个名词。所以我还不具备能力对我下面所说的话负责——在编程上我未成年——那我为什么要撒谎呢?因为我想吸引你们过来,我想从你们那里得到下面这份资料:
实用单片机系统(McuSystem)的最新版,MS3,(如果您有,EMAIL给我,谢谢您!我的邮箱fuchilin@163.com)。我在论坛里找到了,可是没有积分,有没有热心的朋友帮我下载个?
哦,还有个问题,农民讲习所当年就留下一个pdf文件(建立通用处理程序)吗?有谁知道的,能否解答下我的疑问。谢谢
我先把正事摆在前面,不过水灌了太多了,我也不能太无良,人太无良,必有灾殃啊。下面且听我撒几句。“少儿”当心,甄吾言,再显式强调前面那句话,“在编程上我未成年”。
既然是说对编程的理解,那么,先胡乱下个定义。编程,我认为,是一个解决某个具体问题的思维过程,只不过解决这个问题的工具跟生活中普遍所提到的工具稍有不同,它是某种编程语言(嘿嘿。这句话貌似有个嵌套,倘若你认同这个观点,或者不是很反感,接着往下看) 。好,既然它是一个思维过程,那么重要的是什么——思维方法,所以你在解决问题的时候,对你来说重要的不应该是什么工具。思维方法有那些,我觉得您应该抽空了解一下。有些东西没有土生土长的,舶来也不错。哈哈。说到这边我决定快点打住,原因有二:中午没休息(我平时有午休的习惯),天冷,加班,人少,更冷,结果头很晕,怕说错太多话。二我想很多人都不喜欢“灌水”的。我如果在继续这段的说话方式,而且不加解释的话,我想我玩玩了。这边我再解释下,这段我绝无继续灌水之意,您回忆一下,你在看编程书籍的时候,有没有这种经历:您第一次看的时候,觉得某些地方作者泛泛而谈,您心里在想,奶奶的尽讲些大道理,这不灌水吗,实在的(代码)不来点。过了段时间,也许你会在编程遇到困难的时候,突然想起了跟当前问题有关联的大道理,你豁然开朗了。其实,人家在讲空话的时候,殊不知脑海里闪过多少“乌云”,说不定就有正盖在你头上的那朵。想想,有些东西确实不是很好表达,要是拿个例子来讲,万一水平不好,或者哪里疏忽了,岂不统统暴露。面子就像女人的贴身衣物,能不丢就别丢,嘿嘿。另外,倘若我灌水了,我不是有意的,那是我的水平问题了,而不是态度问题,我也用心去写了,请理解我一下,拍砖的时候轻一点,下手别太狠。
来点稍微具体的,然后结束。
一 抽象
我对抽象的理解是这样的。第一种意思,按照人脑的思维,抽出问题的几个大方面,或者步骤。然后123。。。我强调人脑,方面,步骤。为何强调人脑。首先,解决问题的是人,当然应该是人脑,我暂时认为当最初解决问题的时候,不应该被工具束缚,不应该让它的任何肢体进入您的脑海。其次,程序员都是人,便于沟通,也就是可读性的问题。第二种意思:把现实世界中的事物,用数据结构把它描述出来。建议您可以去看看unix,linux操作系统里的东东。
二 分层
分层就是把一个大的问题分解成有层次的小的问题。这个方法符合大脑的“国情”,你首先要承认,人脑是有局限的,当问题复杂到一定的程度的时候,你的大脑将疲于奔命,在复杂一点就“死机”了。分层也服务于抽象,你想,高度抽象的层次,不会处理下层琐碎的事情。而这些琐碎的事情就会被抛到别的层。分层的好处多多。我不想再在这个方面吐口水。
三 法
法,应该有效仿的意思。如果我没用错,这边就取这个意思。这一点很玄乎,是我整个人生积累下来的经验,本人认为这个原则放诸四海皆准。不信你试试!法什么呢?法自然,法硬件,法别人的软件等等,关于软件可以效仿硬件,我是这么想的,微处理器的产生有一个方面就是为了简化电路的设计,而被微处理器代替的电路逻辑都要由微处理器借助软件来实现,从这点出发,它们是相通的,法是很自然的东东了。有时候,你法下硬件,问题就解决了,而且借助硬件的分析方法,可靠性也大大提高了。法自然,嘿嘿,软件也是生命体,自己想吧,爱怎么想怎么想,天马行空的想最惬意。我们一起想吧。法别人的软件,你要提高自己的编程技巧,要经常读高手的好代码,端杯茶,像读小说一样去读它。最好还能自己去实现它,只有亲自去尝试之后,你才会发现乌云掩面的天空。很多从事自然语言写作的人,在成为高手之前,都是通过模仿别人的作品来提高自己的写作水平,这种方法我们也可以法。编程还有编程元素,编程模式,这些概念的提出也是法别的领域提出来的。可见,法的威力无穷。
在我现在的认识水平,我暂时认为,大的方面只要抓住前两点就行了。不过记得两手都要抓,两手都要硬。第三点就要看个人的造化了。小的方面技巧太多了,不是三言两语就能说清楚的。当我到了觉得不怕揭开遮羞布时候,我会结合这两个原则去实现系统的东西,然后拿出来和大家一起分享。不过这个时间估计还要很长,因为我真的还很菜很菜。。。
末了,前面两点都是老生常谈的东东了。不过,同样一个东东,你明白了它,切不一定能用好它。就像武侠小说里说的那样,高手即使出的一招普普通通的入门把式,威力跟刚入门的弟子比起来就是不同。我们明白了这些东东,就要身体力行的去实践它。我们的技艺才会有进步。还有,上面说的话未参考或者引用任何资料,完全是一家之言,贻笑大方了!不要对一些名词的定义太较真,不过欢迎拍砖!
原帖地址:工作二十,谈谈我对编程的理解