学习知识|初学者怎样学编程,三种人学不会编程( 三 )



如果你是一位想学习编程的朋友,我经过多年的学习总结出来了一个学习的线路希望对你有所帮助 。 要学习编程是要有很大恒心和毅力的,首先你要明确自己的目标,想好自己编程是为了干什么 。 如果你学习仅仅只是一时想编出QUAKE和成为比尔盖次的冲动,那么我劝你还是应该还是不要开始学习,应为这样的目标很难支持你日后大量的学习 。 而且你的年龄不能太大(最好是中学或者大学生) 。 如果你想好目标并决定开始奋斗,那就让我们开始吧 。 如果你一开始对电脑一无所知,那么你应该先熟悉一些电脑的一些最基本的原理和操作,这个不需要特别细致的学习,只要大概知道二进制和一些基本操作就可以了 。 接下来你应该先学习BASIC语言,这个语言并不会耽误你太多的时间,学习它完全是为了入门,让你对电脑编程有一个比较初步的认识 。 这时候你应该多编一些小的程序,知道一些最基本每条语句的功能,搞清楚一些基本的数据结构(尤其是数组)对于一些其余用途的函数最好不要做任何学习,因为这样只会分散你的注意力 。 当你能够可以熟练的运用BASIC编出猴子选大王,以及电脑出题考试之类的程序时,你就可以开始后面的学习了 。 接下来如果觉得自己接受能力强的话就可以开始学C了(注意不是C++),如果感觉有困难也可以先学Pascal过度一下 。 还有很重要的一点就是千万不要一开始就学VB,DELPHI,VC之类的东西,这些东西在一开始学会对你造成很坏的影响 。 有可能会把你引入另外一个错误的学习方向而忽略了真正应该掌握的东西 。 学C主要是学过程话的程序设计,学会把自己的程序分成许多的函数(或过程),养成良好的编程习惯 。 这时可以多看一下高人的程序,不一定要懂意思,主要是学会别人程序的格式(比如变量如何起名,怎么划分函数) 。 除开掌握基本的控制流语句外,应该学习一些很简单的I/O函数和数学函数 。 C的学习主要是你舍弃原来BASIC程序那种把所有语句积成一大堆的风格,要学会使用函数,提高代码重用性 。 对于指针之类的东西如果实在看不懂可以先不去管,到后面会有办法 。 当你能够比较自如的用C编写一些小的计算程序时,你就可以开始你的数据结构的学习了(数学的学习主要是在学校,自己要多用心) 。 数据结构你可以一点一点漫漫看,并不需要专门空出一段时间来专门研究,这样的目的是让你能够很好的掌握它,要学会用数据结构的知识来规范自己的程序设计和提高程序的效率 。 学完C我认为接着最好学习汇编 。 这个或许有许多人都会反对,然而我个人认为这样是很好的 。 从最基本的DOS汇编开始,买本《IBM PC汇编程序设计》(清华黄皮)一定要一点一点吃透,实在看不懂就跳,反复的严读是一定可以看懂的 。 汇编是一定要掌握的,因为它涉及到很多最基本的知识 。 掌握了汇编和对I/O有了个很彻底的认识后,应该去学编译原理 。 这个东西并不要精通,但是一定要知道,在大脑里要有一个这样的概念,这对你对程序语言的控制能力都有很大的帮助 。 这样最基本的学习就算完成了 。 一般智力正常的人前一段东西应该都是可以掌握的 。 接着后面的学习就要看你自身的造化了 。 这个时候你应该研究一下数据结构,不要分散自己学习的注意力,要知道数据结构是异常重要的(相信我,绝对没错)如果你觉得自己已经对于树,连表,堆栈之类的东西和排序,递归之类的算法已经十分清楚,就可以开始学习C++了 。 学习前一定要有个正确的认识,那就是C和C++是两个不同的东西 。 学习C++是为了学习面向对象的程序设计,这个时候你对于指针应该也能够掌握了(有汇编的基础),主要抓住C++和C相比的一些新特性,对于多态之类的特性要注意理解掌握,如果没有搞懂就坚决不要往下学习 。 一些基本的概念掌握以后可以看一些别人设计的程序,学习别人怎么利用面向对象的方法来设计程序的 。 这个东西也是人之间拉开档次的一个环节,可以和数据结构放在同等重要的地位 。 我就见过有的人都大学毕业了还搞不懂virtual到底是怎么一回事情 。 其实我认为学到这里你已经为你成为一个优秀的程序员打下了很好的基础,你已经能够应用C++,懂得面向对象程序设计,对数据结构掌握很好,掌握汇编和编译原理 。 接下来的学习就是基于操作平台的了,一般是先学windows(Microsoft毕竟是老大),先学win32 api,搞请windows基本消息机制和原理,有汇编基础基本上不会碰到什么困难 。 其实只要会了API,其余什么MFC,VCL都是囊中之物了,都不过是对于API的封装而已 。 VC,C++Builder都可轻松拿下,这只是开发工具的问题 。 以后的OLE(ActiveX),.NET,数据库就要看自己的发展方向而定了 。 我在这里强调的是前面的基本能力的学习,后面操作平台虽然知识体系庞大,然而毕竟比较死,更好掌握 。 最后编程能力的高低主要还是有以下几点决定:1 。 编程的习惯 2 。 数学能力(包括逻辑思维,分析问题的能力) 3 。 对数据结构的认识能力 4 。 经验的多少(包括多使用语言的掌握能力)

推荐阅读