多语言展示
当前在线:1143今日阅读:26今日分享:39

如何成为编程高手-编程新手(5)

如何成为编程高手对理论的掌握并不代表对知识的真正理解。对于一些所谓高深的理论都可以自己编写程序来检验对其理解的程度。我的经验是:只有你把程序流畅地写出来,才是真正意义上对知识理解通透了。比如,我在大三学电力系统分析的时候,就自己用Matlab语言编写了牛—拉法求潮流的程序,计算暂态稳定的简单程序,计算发电机短路电流的程序等。自然地这些专业课程都学得不错。 Matlab是一门优秀的编程语言,在欧美非常普及。选择一门顺手的编程语言可以让你在学习和工作中事倍功半。Matlab是一种语言因为它可以用作编程,也是一种软件因为它自带的工具箱具有类似软件前台的GUI界面以及能够轻松实现人机通信功能。如何成为电脑高手要掌握的知识包括:  电脑基础----对计算机硬件、体系结构不了解是不行的。另外像二进制、十六进制、补码、位运算(与、或、非、移位)  编程语言----有人你说C/C++,有人说Java,还有人说别的。还是要看将来会用什么。数据类型、顺序控制、子程序、函数等概念,多数编程语言(高级语言)都类似的,精通一门后可以触类旁通。  网络知识----现在的电脑没有独立运行的了,信息孤岛时代已经过去了。很多软件都是在网络上运行的。其中对TCP/IP协议一定要熟悉。如果你将来专门做网络编程,那就根据需要进一步学习了。  数据库----数据库应用是软件中非常重要的部分。就算你不搞数据库应用开发,也要对数据库要了解。  数据结构----光会程序语言是不够的,“算法”就像程序的灵魂,会解决问题才能写出好的程序来。  UML、软件工程等----做“编程高手”,不是光靠自己聪明的脑瓜来写程序的,现在是信息爆炸的时代,做软件经常是很大的项目,需要很多人来做。开始就算你做写代码的最底层的程序员,也要根据设计人员的文档来写;等你层次提高了,设计的任务归你了,你就要能写出各种文档来:需求分析、模块设计、详细设计、测试用例....  数学----“算法”是哪里来的?最终归结为数学模型!  英语----少不了要看一些英语资料。虽说现在多数软件工具都汉化了,但最简单你要认识“if”“else”“for”“do”“while”“case”“this”“text”“list”等等吧。电脑编程的基础知识1:如果你能够熟练的使用Windows的话,你就可以开始你的程序生涯了!  2:首先从C语言开始。有的朋友可能认为C语言太难了,应该从VB开始。虽然,对于一个初学者来说,用一些控件堆砌成一个小软件,是有一些成就感,但是,基础才是最重要的!C语言对于数据类型的描叙,远比VB里面说的更为全面,清楚,明白,而这些却是编程中的根本!  3:学C语言,从数据类型,基本表达式,再到条件语句,循环语句,然后学习函数,再加上一些简单的数组知识,就可以了!一句话,到现在为止,你只要理解结构化程序设计的思想也就够了!  4:有了以上的基础,就要开始学汇编了。汇编开始的时候是很难,那些各种各样的寄存器,分段的内存地址,是很难理解,可是这些知识理解了以后,后面的内容就简单了,学习8086的那些指令,再加上一些伪操作,还有DOS和BIOS中断的调用,就可以看懂书上的汇编程序了。(着重是理解算法,对于后面的那些汇编的应用有兴趣的可以看一下!)到此,你应该会对计算机的理解更深一层!  5:有了汇编的基础,再来学习C语言中的精华部分----指针,可谓如鱼得水了。现在你要对C语言全全面面的学一遍了,谭版的教材要从头到尾认认真真的看两遍以上。  6:学完以上的内容,有必要研究一下数据结构了,线性表,堆栈,队列,树,图,二叉树,等等,都要滚瓜烂熟!(最好是清华严蔚敏老师的那本教材)  7:请时刻记住:浮躁是学习编程的大忌!  8:现在,你应该学习一些数据库的知识,还有一些常用的算法了!  9:如果以上的知识你都学精通的话,就可以开始C++的课程了,找本C++上手的书,用一个星期的时间大概了解一下C++,然后找一本VC上手的书,再花一个星期的时间学习VC的界面和用法,就可以做一些简单的应用了!  10:要想学好VC,没有扎实的C++知识是不行的,以下书籍是VC程序员必须翻的烂熟的:C++Primer,Effective C++,Thinking in C++,More Effective C++  深入浅出MFC。  11:深刻理解C++面向对象的思想!  12:编程的时候,出错是难免的,所以,MSDN一定要熟练使用;好的代码风格会使调试的时候,更加简单的查错,所以,一定要养成良好的编程风格!  13:如果你严格的走好了以上的每一步,你才踏上了编程的门槛,可以混口饭吃了!  至于在以后,编译原理,操作系统,还有软件工程等等基础知识,是必不可少的!  14:如果现在再来学习JAVA,C#等别的语言的话,应该是触类旁通,拿来就用了,  到此,你才可以称得上是一个高手!如何培养自己成为Matlab编程高手 1. 扎实的基础。精通一门编程语言(C#或Java等),深入理解其编程思想。之后,适当学习数据结构、离散数学、编译原理等知识。(如果你有足够多的时间可以深入学习这些知识,它们真的非常重要,但是如果没有时间或暂时学不会,放一放以后再看,也不失为一种好方法)  2. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。  3. 韧性和毅力。这也许是\'高手\'和一般程序员最大的区别。A good programming is 99% sweat and 1% coffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。  4. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。  5. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。  6. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。  7. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径。 8.最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。Matlab编程过程(1) 数据处理 能对数据进行计算、分析和挖掘,数据处理函数功能强大,命令简洁;(2) 软件工具箱 各式各样的工具箱,包括神经网络工具箱、Simulink工具箱(虽然Simulink从底层开发出来的,但是我们认为也是工具箱的一种)、模糊工具箱、数字图像处理工具箱和金融工具箱等;(3) 精致绘图 Matlab通过“set”命令重设图形的句柄属性,可绘制精准而美观的图形;(4) 动画实现 Matlab可以进行实时动画、电影动画和AVI视频制作,并能在动画中添加*.WAVE格式的音频;(5) 与软硬件通信 Matlab接口函数可以实现与软件(比如C)和硬件(比如电子示波器)通信;(6) 平面设计 与全球最顶尖的平面设计软件之一Adobe Photoshop联袂使用,传达震撼的视觉设计效果;(7) 游戏开发 利用Matlab语言可以开发一整套的游戏,比如开发32关的推箱子游戏。 根据我对Matlab将近7年的学习经验,学习Matlab编程就像读一本书,刚开始读时感觉这本书很薄,内容浅显,容易上手,似乎感觉Matlab语言是最容易学会最简单的一门编程语言;继续读下去感觉这本书其实很厚。初学Matlab编程过程中经常会遇到五大困惑: 其一,函数指令掌握太少,写不出简洁的程序甚至正确有效的代码也写不出;初学者阅读一个Matlab编程高手写出的一个相对复杂的程序,会发现不但整篇程序的思路难以理解,而且会碰见很多陌生的命令,就像一篇英文阅读理解有很多单词都不认识。自己动手写程序想表达的意思表达不出来,力不从心。 其二,不能掌握Matlab函数复杂的语法格式;相比VB和C而言,Matlab语法格式比较复杂。语法格式不正确程序就不能运行,同一个命令有很多种语法格式。格式不同,程序输出的结果就大相迳庭。比如使用“streamribbon”命令创建三维流带图,其语法格式为streamribbon(x,y,z,u,v,w,sx,sy,szhttp://www.esunfu.com/);那么向量x,y,z,u,v,w,sx,sy,sz分别代表什么意义,各向量之间满足什么样的长度关系都必须真真切切地理解,否则因为不能键入正确的向量而不能画出三维流带图。 其三,能套用别人程序自己却丝毫没有程序开发能力;比如在神经网络工具箱中,各种创建、学习和训练网络的函数命令众多,语法格式复杂,套用别人已经编好的神经网络程序比较简单,但是如果自己对照各个函数的用法书写完整的神经网络程序却不是简单的事,因为你没有从本质上理解这些命令。这就是说,你只能模仿别人的程序,却不能触类旁通自己开发程序。 其四,不能准确全面地理解指令实现的功能;比如在Matlab中实现排序功能的命令是“sort”,而在C语言中如果想实现排序,那就必须依据“冒泡法”原理编写一小段的程序实现排序;虽然Matlab命令用起来比C简便,但是如果对“sort”命令原理不了解,就不能知晓“sort”是实现升序排列还是降序排列,对于矩阵是按行排序还是按列排序。所以当我们使用将繁琐的原理封装在Matlab里的命令时,如果不熟悉该命令的原理,那么使用时至少要在命令窗口中键入该命令以便试探它的用法。 其五,函数的参数不知道如何调整。比如使用命令“imadjust”对轮廓不明晰的数字图像进行处理时,处理过的图像也许轮廓分明,但是很多都是伪轮廓,已经改变了原始图像的品质,所以在使用该命令时一定要注意拿捏好校正因子的大小。又如在编写BP网络源程序过程中,网络始终无法收敛且找不出原因,很多人都会怀疑是不是网络的拓扑结构设计有问题,其实很多情况下症结都是出在网络学习速率参数的大小上,只要将参数调小一点,网络也许就会立即收敛。当你不知道参数的具体取值时,不妨多调试几次。 最后通过长时间扎实的学习,对Matlab主程序命令和常用的一二个工具箱已经基本掌握,写起程序来才会思路涌涌而至,得心应手,轻车熟路,感觉这本书其实还是比较薄。由于MATLAB函数命令丰富,完全掌握没有必要也很难,只要掌握经常用到的命令就可以了。科学研究表明,只要掌握知识的60%就可以运用了。对于碰见的一些生僻的函数用法时,可以查询Matlab help命令寻求帮助或者身边备用一本Matlab函数词典。
推荐信息