6 O% C4 Z9 r, Z; r r/ _9 v6开动脑筋,运用多种方法,不断优化自己的程序。 6 F O, `$ Z2 T) K' @* X想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。: Z/ P' W# k& s" ]! `% {! z9 M
0 {" ?+ h* R+ H9 C% e2 P7看别人的代码,学习人家的思路。& w, t5 t8 v* n( s, J
这个在学习初期是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高,同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的代码,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。 8 R4 b8 J7 ]) L/ ]0 D' x8 _5 h% \4 y; B" P& ]/ _& B
8尝试编写一下综合应用的程序。" T6 i/ o' P2 m
从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序啥也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。 3 G. y3 D% x- W( k: K C/ F0 t3 d9 u3 @6 I, Q0 y
9着重于培养解决问题的能力,而不是具体看自己编写了多少代码或者做过什么。" ], k2 n/ d& ?! E
“学单片机重点在于学习解决问题的思路,而不是局限于具体的芯片类型和语言”这一直是我的座右铭,是我学单片机多年来感悟出来的。经常看到有人说“你会驱动XX芯片,真牛啊”“你搞过XX项目,真厉害”之类的话,其实这是非常片面的,搞过XX芯片,搞过XX项目,只能说明你做过这一项目,它只是你的业绩,并不是代表能力就一定高。真正的能力应该是:“遇到没有解决过的问题或器件,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。 0 P% x! [% m% l. G8 p$ b! h$ R, ?+ t# V% i& v$ c ^1 ^9 t
10如果有可能,多学习计算机专业的知识,比如数据结构等。7 a5 ~* X3 k" J9 X2 T$ Y
这些是你解决问题的基础知识,你把这些知识应用得越好,就会发现越容易找到解决问题的方法,这就是为什么一个学计算机专业的人编的程序和一个非计算机专业的人编的程序有差异的原因。也是一个菜鸟进军到高手所要配备的知识。如果我们把编程分为宏观编程和微观编程,那么微观编程就是写具体的代码,比如控制某某器件的语句;而宏观编程就是如何对整个程序进行布局、安排,使功能模块以你想要的方式去运行,得出你想要的结果。 $ H6 J' f' b# z+ ]" I9 G0 a- q9 L* c& q5 i# A6 q/ L
11面对一个新项目时,多自己开动脑筋,不要急于找别人的程序。 0 t% i; |" G# @3 }" O3 t1 r3 x3 i有不少人面对一个新项目时,第一步想到的就是网上找别人写过的代码,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个新项目时,应该先自己构思一下整个程序的架构,想想如何来完成,有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教别人,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路,如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。8 R7 U! j( X4 c3 p. @
3 |) f* N7 V& F7 O
12多利用网络的搜索,学会提问题。/ C5 F( _' P9 j1 M
一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。9 \* l4 Z7 N# ]- F3 a 作者: xuzwg 时间: 2016-4-25 13:57
心得分享!鼓励、点赞~~~!作者: chan-cjl 时间: 2016-7-15 17:13
顶!d=====( ̄▽ ̄*)b,SHOWT