先弄些优秀代码回来,自己先实现功能 再看人家的程序,对比自己的程序,改掉不良习惯 改掉效率不高的算法,用优秀的算法替换掉自己的落后的算法, 慢慢积累,没有一步登天的道理。
编程基本是数学玩意,多看看数学书,做做习题,保持 大脑解题思维的灵活性。 多玩玩IQ题,锻炼思维。
注重基础,磨刀不误砍柴工,没事的时候多找些C的书籍看看 不懂的要搞懂,已经懂的要多练习,尽量达到熟练。
当然了,还是建议去搞搞GNU编译链,GCC的N多选项,博大精深, 会引导你更加深入的认识编译器的动作,有助于写更加好的程序。
程序的效率高不高,很大程度上是取决于是否吃透了编译器,是否 吃透了硬件平台。
综合起来,不断努力,肯定会有不小的进步。反正编程是一门不小的 学问,得慢慢学,啃几年也成不了高手,那很正常,但是你**个 十来年,那至少有点牛气了 :)
不过,现实就是,人比较浮躁,学会一点C,会驱动51的几个小东西 就以为很牛了 -v- ,整天跑出来说这个程序不好,那个程序不好 这个编译器不好,那个编译器不好,遇到问题,不是自己努力的差错 而是立刻就出来说“MD,这编译有BUG”,谁知,我见过的这类人, 99% 的是自己的程序逻辑有错,有些是没有调整好编译器参数,其实 编译器说明里面都有说,只是英文文档,还有几百页,基本上只有 1% 的人会去看这原版著作。无视了人家说明的需要注意的问题,而出来喊 “编译器有bug”,是有点可悲。
另外,针对单片机,ARM等嵌入式系统,编程思想有点不同,更加注重的 是硬件的调试工作,我喜欢叫捉虫(debug)一个人编程水平的高低,从 错误定位的速度可以看到点,这个也就是工作经验的体验。
再另外,针对单片机等,需要在抗干扰上面做点小**,虽然软件能做的 抗干扰措施其实很微弱,但是总好过没有,这个倒是需要结合硬件一同 学习。 编程需要的是综合能力。各个方面都兼顾到,而且做的不错,那么,你可以 算是一个高手了。
个人的一点愚见,欢迎拍砖。 |