如何学好编程

诶呀 整理的眼睛都疼了 但是仍是整理的有点乱  但愿可以带给大家很大的帮助哟要珍惜个人劳动成果。谢谢咯


方法(一)


编了这么久的程序,一直想找机会总结下其中的心得和方法,但回想我这段编程道路,又很难说清楚,若是按照我走过的全部路来讲,显然是不可能的!当我看完了云风的《游戏之旅--编程感悟》和梁肇新的《编程高手箴言》我忽然知道我要从何提及,我要怎么说了!
从接触编程到如今已经至少要6年,虽然时间短,但我几乎天天都在编,而编程上日新月异的仍是最近一两年,单纯编程上的进步,很简单就是经验,但你要理解才能够进步的快!这就是说,你的理论课要学好,才能学好编程,操做系统,网络原理,计算机体系结构,数据结构,编译原理,你哪一个学的很差,你根本不配成为编程高手,我见过的高手,这些学的都不错!这些都是计算机的支柱,你连它的支柱都不了解,怎么编程,即便你编写的程序好——只有一个缘由,你用的是高级语言或脚本语言,由于它们封闭大量低层语言细节,让你不用了解就能够编写,你不了解低层细节你杂成为高手!
解释什么叫编程
我以为如今不少同窗,根本不知道什么叫编程!我如今告诉你,单纯的编程,也就是就知道语法知识的编程,根本不叫编程,只会单纯的语法的编程连低级程序员都不如!
编程不只仅是你对语法的掌握,你还要把各类技术混合到里面,这样才叫编程,你编程的时候,你应该问问本身,你的程序有算法吗?你的程序写的够简单吗?速度足够快吗?占用空间足够少吗?代码写的规范吗?语句写的标准吗?你的程序之间的结构合理吗?你类定义的合适吗?方法和属性合理吗?接口合理吗?等等等,包含不少东西!这就是高级程序员为何赚这么多钱!要付出至关大的脑力劳动!
调试对你也很重要,一个程序高手,也是调试专家,其实调试不少方法,但大多数都是实践中获得的!



指正如今人对学计算机误区
如今我天天在和汇编,硬件指令 ,c和c++或一些低层API打交道,有些时候编程这个东西很难说清楚,只有你经历了,你才能感觉到,你没有经历,就永远体验不到!
我如今要更正几个如今学计算机人的误区,我想回答的是,学什么才是学计算机!
学计算机的两个方向:一个是纯搞理论的,一个是搞实践的。搞理论的无可厚非的,你们都认可是学计算机。那么实践呢?我很难给出一个定义,但我会列出那些才是真正学计算机学的:
(1)编程,这里的编程,我要抛出FLASH,PHOTOSHOP,3DMAX等,它们虽然也有语言,但都是为了给美术人员提供的!也就是几乎封闭了大量的低层细节,对于一个学计算机的人来讲,若是你努力学它们,你仍是不要学计算机了,去学美术把!网页编程能接触到至少两种类型语言,,HTML和ASP或JSP(PHP),HTML说实话,不该该是计算机人学的,你应该学的是ASP,JSP等!
按严格意义上讲(但实际没有这么严格)若是你的主要必修语言,不是c ,c++,JAVA,或者硬件指令,都不算是真正学计算机的,之因此这么说,我举个例子,好比你用JSP,它是一个脚本语言,若是你用过这个语言,你认为你用好这门语言须要了解硬件结构知识吗?显然不用,若是你纯是JSP程序员,你须要只是,JSP语法,一些简单的JAVA语言,SQL之类的数据库知识,其他的你什么都不须要,至于分析流程,那是系统分析师的事,不要和编程混为一谈,我学JSP学了3个月,现学现买就作出了功能齐全的网上书店(当时是老师布置的做业),若是再努点力,就能够投如使用!因此说,学JSP根本就不须要太多的专业知识,不是学计算机的也很容易就学会!
学c++,我都学了好几年了,用它写程序都几十万行,我也不敢说我学的精通!就是由于它太灵活了!不一样人,用的效果就是不同!
因此按严格意义上讲,若是你的主要必修语言,不是c ,c++,JAVA,或者硬件指令,都不算是真正学计算机的,也就是说,学那些对计算机专业知识不须要太多了解的语言,就不叫学计算机的!
(2)从事软件方法实践研究,这个纯是软件工程方面的,若是你没有容入一个大项目中很难体会它的重要性,想想,一个程序,几十万,几百万行代码,能这么好的实现,并运行,它的功劳不小!
(3)从事低层硬件开发,这里可能和搞电子的专业有些重叠,但事实就是这样,他们也是学计算机的!
其他的,装系统了,装电脑了,用人家编好的软件实现些图片音乐等功能的,那都是计算机的门外汉,不要和真正学计算机的混为一谈!
我常常被问到:
你会盗qq不?我晕,学计算机的就要会盗qq?
你会装电脑不?虽然我会,但不会并不可耻
你会装系统不?虽然我会,但不会并不可耻
'''''''''''''''''''''''
'''''''''''''
等等把,有好多,经过我上面解释,你应该理解学计算机的应该会什么,不会什么也是应该的!


正式入题,怎么学好编程!

, 世面上好象只有这两本是中国人写的关于编程心得的书,中国编程好的人不少,但写出方法很难!第一本《游戏之旅--编程感悟》前面几章写的是云风的编程经历,后面几章写的是编程经验!总的来讲本书很容易读懂!《编程高手箴言》书很难,尤为写操做系统那章!正如做者所说,真正写一门编程方法学的书很难!本书前几张归纳了当前中国软件面临的形式,我强烈建议看一下,写的很经典!之前我不知道程序和软件的区别是什么,如今我知道了!后面几张写的都是编程方法和编程要具有的知识!

总结他们两人所说的,我准备按照下面提纲来写编程方法!

1。若是你感兴趣,学计算机是一种光荣,若是你不感兴趣,那么它是地狱!
2。理论对你很重要,尤为是你一名搞技术的程序工程师!
3。学会自学,学会思考,学会合做与交流!
4。要想成为高手,必定要从底层学起,底层是什么?CPU,汇编等硬件指令!
5。编程须要经验积累,学会调试对你尤为重要!
6。全局把握整个工程,具体到每一个类的属性和方法以及各个类的关系!必定确保你设计的类和类模式和类间关系可以有效,利于修改和升级!归纳说就是软件工程

下面我就分别说一下
一。若是你感兴趣,学计算机是一种光荣,若是你不感兴趣,那么它是地狱!

我常常听不少同窗说,开始他对计算机很感兴趣,但随着大学里的学习,愈来愈感受无聊甚至厌烦!你之因此这么想,其实一点也不怪你!从高中的应试教育到大学里的自由学习方式上的转变,咱们几乎都不适应,一到大学,忽然有一种解放的感受,没有老师的强硬指示学习,本身根本不知道怎么学,学什么!因此说,教育对咱们很不负责任!
若是你在大学之前已经知道编程怎么回事,那到没什么事情!但好象不多有人象云风这样从小就接触了编程教育!因此咱们在没有上大学前几乎是零起步!
其实,按个人理解,刚上大学开始学编程有些晚了,之因此这么说,不是由于单纯的编程很难,若是你很努力,几年彻底能够搞定,其余的你去公司的经验能够弥补!我这里想说的是,一个真正的程序员不仅仅要有强硬的编程实力,还要有强大的理论后盾!你只会编程,没有强大的理论作后盾,你也就不会把理论转化成实际的代码,你也不会作出高效,高技能的程序!在计算机理论中,图论,人工智能等等都是很难的理论,但若是你能把它们有效的用在计算机领域,功德无量!国人能作这点的不多,原本厉害的程序员就不多,有高尖端理论技术并把它应用的更是百里挑一!
(这里能够推荐你们一本书《游戏编程中的人工智能技术》,这本书抛开了传统的自动机,产生式,各类规则的传统的人工智能理论,而是讲的更前沿的计算智能——生物遗传算法,人工神经网络!这本书,不单纯讲理论,还用c++语言结合理论实现各类游戏程序!有时抽象的理论都是基于数学基础之上,若是没有必定数学基础是很难看懂的,但正由于它有数学证实是正确的,因此它是可行的!能把它用语言实现更是可观!)
因此,若是你热爱计算机,在大学之前,就应该成为一个程序高手,而大学之后,主要专研各类技术的实现,和各类技术的学习,若是你把他留在工做里,可能很难,个人同窗在参加工做后,不多有继续看技术书籍,由于技术书籍很难,不是一下两下就看懂的,有几个还有这样的耐力和精力去搞!这些怎么在编程上实现,都在等着老外,我们COPY,这样咱们的软件技术能强大吗?
但是在大学之前成为一个编程高手几乎不可能,咱们没有良好的学习编程的环境,并且面对着中考,高考的各类压力,几乎没有机会去学习编程!其实,小学,初中,高学,那些课程没有必要象咱们这样反复的复习,反复的做题,浪费了大量时间,咱们要学会什么?学会一种技能,可以应付各类变化的技能,就是自学,学会思考,学会本身解决问题,学会团结合做!初等教育,打的口号很好,实际上,彻底压制了这种学习方式!
因此咱们应该以最快的速度,在大学里容入一个热爱计算机的氛围!说到这又很难,当代大学生迷茫呀!不知道做什么,有些知道本身该好好编程,但光说不作!有些人,写了几段代码,出现了问题,不会调试,就放弃了!你们都这样,因此以寝室为单位没有人编程,逐渐以整个计算机学院为单位逐渐编程!确实咱们的计算机老师,会编程的不多,咱们应该知道,中国计算机引进并发展才短短20年,正是这样老一辈的,把这些计算机理论上确立,他们不会编程理所固然,大学的老师主要研究理论,国外的也是,由于理论太难了!
因此大学里学习编程要彻底考本身,你要有信心,有意志把它学好才能够,并且这个过程是按部就班的!以最快方式,找到你编程的爱好和兴趣!
我介绍几个方法,学习方式,但愿你能找到兴趣,起码我是这样作的,记住若是跌倒了,你要站起来

1。必定要和喜欢编程的,或编程厉害的,或常常编程的人,在一块儿,常常探讨问题!初学编程会有不少问题出现,你本身很 难解决
2。我建议VB和c一块儿学习,这个只是个人建议!我为何这样说呢?若是你开始只学c,你会厌烦成天在DOS下,没有图象的 程序!若是你直接学WINDOW编程会很难,因此我建议学VB,VB这是个语法简单,很快能够见到你编写程序的画面,这样你就会逐渐喜 欢编程,没有画面很枯燥的,你不这样认为吗?反正我是这样认为的,你编写的好坏,没有画面也很难用眼睛直接看出来!VB是最简 单的语言了!不存在c的复杂语法结构,程序出错几率相对c 来讲不多,由于VB封状的很好,帮你解决了复杂的过程!其实象JAVA,MFC, c#彻底能够做到VB效果,但上手相对困难!
c是咱们必定要学的,它是一种很接近底层的语言!若是你要成为高手,应该学这个!C是个纯面向过程的语言,它的语法不 是很难,你用它大约一年半多左右,就彻底能够掌握它,记住这须要你的实践,多作程序,主要是算法程序,最好把你教科书的后的 的习题都作了。你们几乎学的都是潭浩强的书,这本书我开始认为很 好,但我看了不少国外的书,和不少国外人所打的代码后, 和国内高级程序员所说的话,我只能说这本书,只能是你的开端,但不能 让你更深层次了解语言。但你要问我初学者用什么 书,我还会介绍这本书。C的精髓在于指针,你能灵活运用指针就几乎等于你掌握了 C语言,这是一种高效的语法支持,快的让 你没法想象,我颇有感触,在VB下要慢的多。
那么咱们学VB究竟作什么,很简单,作WINDOWS程序,控件的使用,数据库的使用等等,还有一个很重要的是,你能够练习你 学的数据结构,各类计算机算法,很快就能够用图形的方式显现出来!你如今知道这些就能够,等你之后学了真正WINDOWS编 程,你会对你之前所实现的东西有很深的理解,究竟什么是API,什么是动态链接库,什么是控件,象VB,MFC这样的东西,究竟封状 了什么让咱们用起来这么简单!
3若是你能做到,以上两点,(加上你学的专业,若是你很努力,课大约1年)我想你会对计算机感兴趣的!你逐渐容入爱学 计算机的氛围!接下来有两个方向你要去作,一个是努力学好其余计算机专业课,二是在巩固c 语言的基础上,你能够选择学习c++ 或者WINDWOS编程!这两个先学哪一个都无所谓。记住你大学时学的10大专业课,数学,离散数学,数据结构,编译原理,汇编,数据库 ,计算机体系结构,操做系统,计算机网络,软件工程,你要尽力把它们学好,这个是整个计算机系统的精髓,这些都是相互贯穿的 ,相互联系的,你可能学某科没学懂,但学了别的后,可能会懂的!切记,在你学好编程的同时,必定要学好这些理论,之后你会受 益匪浅的。
4。在你觉的c或者VB学的没什么问题,或者你学会WINDOWS编程,记住必定要本身有个想法,作个小的可视化程序,小游戏也 好,小应用软件也好,均可以,这个步骤,你必定要作,你会学到不少东西!在这期间,你还会遇到不少问题,你要本身多想,多问 别人,多去网上查资料!但你作的程序,最好不要COPY别人的,若是都是你本身作的,本身想的,你收获最大,哪怕你是模仿别人的 程序,你用你本身的想法实现了,也是厉害的!其次,你能够COPY部分代码,做为本身的。在你对你的想法,知道怎么实现后,写代 码只是浪费时间的时候,并且你写的效率没有现成的代码效率高,你就能够彻底COPY,但若是你是初学者,你千万不要这么作!不然 你会对它产生依赖,有一天真正让你本身去写,你会无从下手!因此开始时,你能够试着COPY,逐渐摆脱对它们的依赖,之后摆脱了 ,这个时候,你才能够总依赖它们。
5。大学期间,有不少程序的实验课,你要认真作,作出来收获是本身的,也能够做为本身的一个小项目!大学期间加上实验 课,基本上自主编程或者团队自主编写的总小软件数目应该很多于7,8个,若是你作的程序很大,能够少些!
以上,我把若是学习计算机入门 和提起 你兴趣的方法告诉你了!我相信你按照个人去作,应该没有问题的!对于每一个细节,我会在接下来详细为大家写出的!

二。理论对你很重要,尤为是你一名搞技术的程序工程师!

大学里全部课程几乎都是针对理论的!大学里是你学习理论的最好机会,由于咱们不明白能够问老师,老师会帮助咱们解决的!固然有些老师很垃圾,那就要你本身解决了!我上面提到的10大专业课程,是你之后学习其余理论的基础。你不可能一生有老师帮助,之后学习其余理论就要靠本身,因此,在你学习10大专业课程的同时,要学会本身和思考问题!若是你上大学就为了之后作网页,那你没有必要学这写东西,同时,你永远成不了高手!
数学:
数学咱们从小就学,它实在过重要,几乎全部的科学都创建在它的基础之上。让咱们每一个人都成为数学大师是不可能的,咱们没有时间也没有精力去搞这么抽象的东西,咱们要作的就是,之后遇到和数学相关的东西,能看懂就能够了!
虽然我很长时间没有看大学课本,但我还很清楚的知道学了什么?极限,导数,微分,积分,空间向量几何,多重微分,多重积分!傅立叶变换,等等把!其实这些很大程度随着物理学的发展而发展的,如今的仿真技术这么厉害,都创建在物理学上!我但愿你们,在能理解这些真正含义,不要单单会作题!题海战术既浪费时间,也浪费精力!极限:说白了,就是自变量要趋进某个值时的值,咱们能够说0.999999,当9趋进无限时,它的极限为1,不然说0.999999就是1,是不对的,若是没有条件9趋进于无限,也是不对的!极限是有条件的!因此说不管学什么,你必定要把概念搞清楚,你要学的东西,都是创建在概念上的,若是这些概念你都没有弄懂,之后你是没有办法学的!
这里我毕竟不是讲数学的,我所要说的就是,你学的东西要扎实,地基要牢,对概念要理解透彻,死记硬背是不行的!若是你不了解它的现实和自己的意义是什么,你根本不知道你在学什么!
离散数学:
这个实际是最难的理论课程,估计能把它讲好的老师也寥寥无几!
集合,命题逻辑,谓词逻辑,数论,图,群,环,域!前几部分很简单,图论日后简直难的要命!我在这里不作多说,由于我没有学明白,太难了,群,环,域,我连它们的现实基础都找不到!它们之因此难,是咱们很难容入到那种神秘的思考方式,容入思考方式太难了,只有靠咱们的感悟,由于这些真正很强的人真的寥寥无几,能指导咱们的更是不多,我本人始终没法理解群的真正含义,我也没有去查什么相关资料,但我知道,再抽象的数学理论,都不是凭空想象的,它必定有它的现实基础,它的出现是有来历的。
数据结构:
数据结构是十分重要的学科,它彻底是创建在实践的基础上,也就是说,你要多打代码。它在必定程度是依赖语言的。我很清楚的知道,第一遍学习数据结构,也就是几乎不多有实践的,大脑几乎一片空白,也是只有在考试前,反复的复习才知道在讲什么,只能手工的模拟执行过程,把算法转化成程序始终是个迷。但我认为这已经足够了,由于任何理论只有在理解它,你才能凌驾于它,因此接下来一个质的飞跃就靠本身,靠本身把那些算法变成代码,在本身有想法时,可以把这个想法用适当的数据结构实现,这须要在电脑旁的硬功夫,绝对是。一个高级的程序员,绝对是个硬功夫。这种把本身的想法变成代码,也是你独立思考的开始,记住思考很重要,他是你在捕捉你的灵感,善于思考的人,灵感来的很快,并且你的灵感会告诉你,对于它,你能把它作出来,这一切都是思考的结果,我不是个思想家,但我知道,我天天对世界万物的沉思,在指引着我发现那些太多的为何的答案,这个世界为何这个样子,它后面究竟隐藏着什么,让咱们大胆的假设吧!!多作程序的人,程序会改变你的思惟,这绝对错不了。
编译原理:
其实编译原理和汇编,操做系统,语言都是紧密相关的,编译器是在操做系统之上,语言之下。在讲编译器时,除了讲编译源程序成目标程序外,还介绍了不少地方都用到的自动机理论,这个也很重要。在人工智能,不少分析语法,文字类的东西都很重要。编译原理和语言是相辅相成的,只学语言不学编译,没法真正的了解语言,而编译器是在语言基础上的,没有语言的了解更学不了编译,如今大多数高校的编译原理讲的语言都是基于面向过程的,但我认为足够了,你真正的理解了编译所讲的东西,本身在深刻学习面向对象的语言,你必定会很好的把握面向对象的编译过程,很好的掌握面向对象语言,在语义分析事后的中间代码生成和动态存储空间分配,和汇编有很大的联系,我在学习汇编时,老是先把要求的题目写成C语言,在转化成汇编语言,这就是不知不觉的一种中间代码生成,虽然不彻底同样,但让你掌握中间代码生成已经足够了。动态存储空间分配,主要基于指针所指向的动态空间。由于非指针的变量在编译时就已经有内存分配了,这也是编译要作的事。
汇编:
大多数学的都是8086,编译器我推荐用TD,很好的开发环境。做程序调试是最主要的,没有做过程序的人是想不到调试是多么难 ,好的开发环境有助于有效的开发程序。我的认为,学习汇编要和计算机组成联系起来,主要是指令系统,讲CPU时的知识。汇编是最低级的,最快的语言了,有时为了运行速度不得不用汇编来实现想要的功能,我认为对汇编的掌握程度,只要你能作出个递归函数就能够了,你了解了不少指令用法,寄存器的使用,计算机存储数据和代码的方式,函数调用的方式,栈是怎么实现函数的,你会有很深入的发展,相信我没错的,必定要上机实现一个递归函数,再加上你对C语言的了解,和一些编程知识,你就能够摆平几乎全部的汇编程序了。
数据库
我在大学里没有接触过太大的项目,并且日常编程对数据库深刻很少,只是达到了作网上书店所要求的基本知识,首先是ER图,各类范式,还有数据流图,怎么用语言插入数据,删除,查找等等,实际上,你要不是搞理论的,深到数据的具体存储效率的级别,我想这些对于编程就足够了,但对于高级的数据库程序员这些是不够的。
计算机组成
对于学习汇编和C语言这个其实很重要,由于这些语言尚未屏蔽这些硬件细节,VB就几乎彻底屏蔽了硬件细节,你不须要了解太多的硬件知识。但学习汇编和C语言并非要你了解到能做出CPU和链接存储器,咱们只要知道他们的运行机理,但有一点你不要怀疑,那就是电信号他就是那样有趣,有趣到你没法想象它的速度和高低电平的传递,可是事实就是这样,你不须要怀疑,认可它就行了,由于咱们还不能解释规律,只能运用它同样。原理对软件程序员就应该足够了,它会使你更加容易了解操做系统和硬件的工做。
操做系统
你们每一个人对操做系统都不陌生,全部的计算机的课程几乎都是息息相关的,他们都有太多的联系,有些你可能迷茫,当全部的学完之后,你应该有个豁然开朗的感受,那就是计算机的一切不该该是个迷。操做系统和硬件的接口,就是那些硬件提供的指令,经过这些指令来操做硬件,就象操做系统定义同样,他是管理系统资源的,管理硬件的使用,你在学习操做系统时,把它当作一个管理者就能够了,它是一个有着本身管理方法的管理者,管理这些硬件给每一个进程使用,进程说白了就是一个应用程序在内存中或在外存中,有着运行权利的程序。如今的操做系统是多任务的,能够运行多个程序,并发是指单个CPU而言,每一个进程在CPU中轮流执行,由于它太快了,你根本感受不到他们的交替性,就象在同时运行,大多数教材讲并发比较多,咱们大多数计算机都是单CPU的,具体怎么交替运行,那就是操做系统管理进程使用硬件的方法,不一样的操做系统方法不一样,但你的方法不要让其中的一个进程老是得不到想要的硬件使用(活锁或饥饿),但想出个好办法还不发生死锁(这里不说什么是死锁了,我毕竟不是再讲操做系统)也很难,总之,你要学的就是这些方法,这里说的是管理CPU,还有管理内存,外设等等。我在给出进程定义时,还说了外存,其实一般就指硬盘,由于你的内存过小,运行的程序又多,我要为了让其余的程序运行,只能先把它放在外存,也叫挂起。总之,你学的就是管理硬件的方法,怎么管理才能有效率,方便用户使用。若是能够,你也能够设计一套管理方法,那你就做出了一个新的操做系统。
计算机网络
全部和硬件有关的最后一个,说实话计算机网络很杂,你学第一遍后,把网络7层全部管理方法说出个查很少,很难,大多数学生都是晕头转向,网络是个很庞大的系统,它从硬件到软件,被规定了很正规的完总体系,这样你们都遵守这个规则才能,使每一个人开发出的软件和硬件均可以用。记住计算机的交互就象人与人的交互,它经过0和1来代替人的语言,表情或全部能够能够传达信息的东西,也能够说是计算机通讯的暗号,只有双方都知道了这个暗号的含义,双方才能通讯,你和另外一我的怎么通讯,那么计算机和另外一个计算机就怎么通讯。例如:我想给你一个礼物(计算机当作我要给你发送数据,A发给B),我要先通知你,看你能不能收(这符合人的交往)(A发给B一个0和1组成的编码,事先两台计算机已经规定好了,好比说10010011表明看对方是否能接受),若是这个请求不丢失的话(丢失有不少处理方法,你本身也能够想一个处理方法,好比隔一端时间你没有收到对方是否赞成接受,你就重发信息,总之,只要你肯想象,任何都是可能的),(1)对方发送一个能够接受的消息(好比说10010012),你收到了,你就能够发送,发送途中又有不少状况,好比说,你怎么发送,做车,仍是徒步,若是交通堵了怎么办,是把礼物一块儿送过去,仍是分开送过去,等等,具体到网络里是快速发送,分开发送,咱们学的就是这些方法。(2)对方发送个不能接受的信息,你是还要当即发送,仍是不发,仍是等一会在发,这些方法很活,你要学的就是这些方法,若是你能够处理网络中出现的任何问题,你不学它也能够。我要告诉你的是,你要学的就是就是通讯协议(就是实现规定好的暗号),通讯方法,出现问题怎么处理等,你有好的方法,你能够不学了,很简单,方法就是人发现的,你比它的好,学它的干什么,就用你的。
软件工程
软件工程是从实践中总结的经验,对于不多作过项目的大学生来讲,确实很难理解,只要你做过一些项目,好比网上书店之类的系统,你就会有些了解,它说的很对,我很清楚的记得软件工程分这几个过程:(1)可行性研究,也就是你要作的这个系统可行不,是否值得去作,作了能得多大效益。(2)整体分析,这个就是从总体来规划你要做的系统,只是个概况,并无详细的阶段,把系统大致分红几个模块。(3)详细分析,这个阶段就是来详细每一个模块,把全部的细节都要写好。(4)程序编码(5)测试(6)售后服务。
每一个过程有分不少规范,由于一个项目不少人作,不少公司作,没有个很好的规范会乱套的,因此最后很容易合在一块儿。


linux

如何学好编程 编程数据结构语言c++c++

方法(三)


如何学好编程 
1、为什么要学编程? 
每一个人的动机不同。大体有: 

1、为了找个好工做;或为了有更好的机会和更好的发展。 

2、看到别人超厉害,因此也想学。 

3、实际工做中不少场合须要。 

4、从小就立志作个程序员,作软件工程师。 

5、振兴中国的软件事业。 

。。。。。。 


================================================ 

2、如何学编程? 

1、多看好书。 

差书误人子弟,不但浪费时间和精力,并且打击人的信心,差书令人好久都不会,让会让人怀疑自已 

的学习能力。 

如今的书不少,但好书不多,特别是被你们公认颇有价值的好书,更是少之又少。历经多年时间考验 

和市场风雨不残酷洗礼而仅存的巨著,更是极其稀少。中国历史上文学小说类书本多如牛毛,但仅存的巨 

著,也只不过<<红楼梦>>等四本名著而已。 

编程方面也是如此。 

2、多动手。 

这一点很重要。并且特别重要。 

纸上得来终觉浅,绝知此事要躬行。陆游的千古名句说的就是这个道理,而且一样适合于编程方 

面。 

================================================ 

3、用什么语言最好? 

这主要取决于应用领域,每种语言都有自已的长处和不足。 

1、汇编语言和C语言在单片机及工控领域用较多。另外C语言也是一种通用语言,是学C++/c#的起点。 

2C++系统编程等多个方面,最经常使用的编译器是VC 

3C#/Java网络编程方面新兴的。 

4VB通用。 

5、还有Delphi等。。。。。。 


我的建议:从未编过程的,就从学vb开始。有基础的可直接学c++/VC 

=================================================== 

4、有什么好书  


几年前,台湾著名技术做家侯捷先生曾经写过一篇影响很大的书评文章,叫作《MFC四大天王》。文章的 

意思是说在MFC的浩瀚书海中,只要认真研读和学习其中四本,就能够五岳归来不看山。侯先生虽以 

MFC为例,可是这个道理却一样适合于MFC以外的不少具体技术领域,这不能不说是一个有趣的统计现象。 

一般在某一个具体细分的技术领域,会天然而然地出现35本顶级著做,它们彼此互相配合,造成一个完 

整的体系。对于学习者来讲,只须要认真研读这几本书,就足以升堂入室。我乐于将这种现称为四书五 

经现象。对于读者来讲,若是可以找到该领域中的四书五经,则不管在时间上仍是金钱上都是最经 

济的选择。好书几本,赛过烂书几捆,这个体会想必你们都有。在此,帮助你们遴选各个技术领域里的“ 

四书五经 

编程的书可谓汗牛充栋,其中经典也是不泛其数,但绝大多数的过来人,都一致认为,要想很快的入 

门并尽快的投入到编程实践中,只要其中的四到五本也就够了,即只看经典中的经典,圣经级的书就能够 

了。 


所谓活到老学到老,程序员是个终身学习的职业,要不断的看书,直到放弃编程的那一天。因此, 

您要读的好书也绝非如下推荐的这些书哟,呵呵。 


一句话,因为咱们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。 
[/equote] 
[equote] 
经典好书分类热销榜 

================================================================ 


1Java 

Java编程语言(第三版)---Java四大名著----James Gosling(Java之父

Java编程思想(第2)----Java四大名著----Bruce Eckel 

Java编程思想(第3)----Java四大名著----------------Bruce Eckel 

JAVA 2核心技术 I:基础知识(原书第7版)---Java四大名著-----Cay Horstmann 

JAVA 2核心技术 II:高级特性(原书第7)----Java四大名著-----Cay Horstmann 

Effective Java中文版------Java四大名著--------Joshua Bloch 

精通Struts:基于MVCJava Web设计与开发---孙卫琴 

精通HibernateJava对象持久化技术详解---孙卫琴 

TomcatJava Web开发技术详解------------孙卫琴 

Java与模式------------------------------阎宏 


2c# 

C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言倚天屠龙双剑” 

C# Primer中文版--------Stanley B.Lippman---C#语言倚天屠龙双剑” 

.NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---.NET平台四大天王 

c#Windows程序设计----------Charles Petzold“windows编程泰山北斗”------.NET平台四大天王 

.NET程序设计技术内幕-------------Jeff Prosise---.NET平台四大天王 

.NET本质论--1卷:公共语言运行库(中文版)--------Chris Sells---.NET平台四大天王 

3C++ 

C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父” 

C++ Primer (3)中文版----c++八大金刚---Stanley B.Lippman 

C++ Primer (4)中文版----c++八大金刚---Stanley B.Lippman 

C++标准程序库自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis 

C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父” 

深度探索C++对象模型---c++八大金刚----Stanley B.Lippman 

Essential C++中文版---c++八大金刚---Stanley B.Lippman 

Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers 

More Effective C++中文版----c++八大金刚------Scott Meyers 

C++编程思想(第2版) 1卷:标准C++导引--------Bruce Eckel 

C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel 


C++程序设计--------------------------谭浩强 

C++ 程序设计教程(2)--------------钱能 

C++ Primer Plus(第五版)中文版---Stephen Prata 

广博如四库全书The c++ programming languagec++ Primer 
深奥如山重水复Inside the c++ object model 
程序库大全The c++ standard libray 
工程经验之积累Effective c++More Effective c++Exceptional c++ 

c++八大金刚: 
1Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者 

2The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书表明, 

圣经。 
3c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书表明。 
4Inside the c++ object model-----lippman----揭示c++底层,很是好,很是难。 
5Effective c++-----经过50个编程实例,展现专家经验,行文有趣,深处浅出。 

做者: 热布克 2006-7-11 16:18 回复此发言 

-------------------------------------------------------------------------------- 

3 C++原创,超经典:为什么要学编程?如何学编程?用什么语言最好?有 
6More Effective c++----经过35个编程实例,展现专家经验,行文有趣,深处浅出。 
7The c++ standard libray---c++标准库的百科全书。 
8、设计模式:可复用面向对象软件的基础------good! 


4

C程序设计语言(第2·新版)---C语言倚天屠龙双剑”---Brian W.Kernighan“C语言之父” 

C Primer Plus中文版(第五版)--------C语言倚天屠龙双剑”---Stephen Prata 

C程序设计(第三版)---------------------------谭浩强 

C语言大全(第四版)---------------------------HERBERT SCHILDT 

C语言接口与实现:建立可重用软件的技术-------------DAVID R.HANSON 

C语言参考手册(原书第5)--------------------------Samuel P.Harbison 

C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel 

C陷阱与缺陷-----------------------------------Andrew Koenig 


5VB 

Visual Basic .NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师” 

Windows程序设计-Visual Basic.NET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山 

北斗”--- 

.NET框架程序设计:Visual Basic.NET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北 

”---Francesco Balena“vb首席大师” 

Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师” 

Visual Basic.NET 从入门到精通-------------------------Petroutsos,E. 

高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND 


6Delphi 

Inside VCL(深刻核心——VCL架构剖析)----------李维 

Delphi 7高效数据库程序设计--------------李维 

面向对象开发实践之路(Delphi版)----------李维 


7VC 

Windows 程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”--- 

Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”--- 

Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”--- 

深刻浅出MFC(第二版)-----“MFC四大天王”-------侯捷 

MFC Windows程序设计(第2)---MFC四大天王”---------Jeff Prosise 

Visual C++ 技术内幕(第4)--MFC四大天王”--------David Kruglinski 

深刻解析MFC-------------MFC四大天王”-----------George Shepherd 

Visual C++.NET 技术内幕(第6)-MFC四大天王”------------David Kruglinski 


8vf 

Visual Foxpro程序设计参考手册-------------------张洪举 

专家门诊——Visual FoxPro开发答疑160-------------------张洪举 

Visual FoxPro 6.0/9.0解决方案与范例大全-------------------张洪举 

Visual FoxPro软件开发模式与应用案例-------------------张洪举 

9、黑客 

应用密码学(协议算法与C源程序-----------Bruce Schneier 

网络信息安全的真相-----------Bruce Schneier 

黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE 

软件加密技术内幕------------看雪学院 

加密与解密——软件保护技术与彻底解决方案------------看雪学院 

加密与解密(第二版)--------段钢 


10、汇编 

Intel微处理器结构、编程与接口(第六版)---------Barry B. Brey 

80*86、奔腾机汇编语言程序设计---------Barry B. Brey 

Windows环境下32位汇编语言程序设计(第2)-----------罗云彬 

IBM-PC汇编语言程序设计(第2版) 本书是国内优秀教材--------沈美明 温冬婵 

IBM PC汇编语言程序设计(第五版) 这本书籍是国外优秀教材-------PETER ABEL,沈美明 温冬蝉译 


11、驱动开发 

做者: 热布克 2006-7-11 16:18 回复此发言 

-------------------------------------------------------------------------------- 

4 C++原创,超经典:为什么要学编程?如何学编程?用什么语言最好?有 

Windows WDM设备驱动程序开发指南------------------------------------ Chris Cant 

Windows 2000/XP WDM设备驱动程序开发(2)--------------------------武安河 

WINDOWS 2000/XP WDM设备驱动程序开发-------------------------------- 武安河 


12、网络 

计算机网络第四版中文版----网络编程三剑客--------------Andrew S.Tanenbaum 


TCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客 

UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客 

TCP/IP进行网际互联-----------Douglas E. Comer 

高级TCP/IP编程-------------------Jon C. Snader 

C++网络编程-----------------------Douglas Schmidt 

UNIX环境高级编程(第2)--------------------Richard Stevens 

13、算法 

计算机程序设计艺术-------Donald.E.Knuth----------算法倚天屠龙双剑 

算法导论-----------------Thomas H. Cormen--------算法倚天屠龙双剑 

离散数学及其应用----------Kenneth H.Rosen 

具体数学计算机科学基础--------Donald.E.Knuth 

14、图形编程 
Windows 图形编程----------------FENG YUAN --图形编程界的Charles Petzold之书 


15、数据结构 

数据结构 C++语言描述》58.00(Data Structures C++) William Ford,William Topp 刘卫东 沈官林 

数据结构算法与应用-C++语言描述》49.00Sartej Sahni 汪诗林 孙晓东等机械工业出版社 

16、软件工程 

设计模式--可复用面向对象软件的基础 

重构改善既有代码的设计 


17、操做系统 

深刻理解计算机系统(修订版)-------RANDAL E.BRYANT 

18Unix 


UNIX 网络编程 套接字联网API(英文版 第三版 
UNIX 编程艺术 
UNIX环境高级编程(英文影印第2-----UNIX编程圣经 
UNIX环境高级编程(英文影印版)(第2版) 
99-UNIX环境高级编程(第2版) 
UNIX环境高级编程(第2)---UNIX编程圣经 
UNIX网络编程 1卷:套接口API(第3版) 
UNIX网络编程卷2:进程间通讯(第2版)(英文影印版) 
UNIX 网络编程(第二版)第2卷:进程间通讯 
UNIX编程环境 
UNIX 网络编程 套接字联网API(英文版 第三版 
UNIX系统编程 
UNIX环境高级编程 
UNIX环境高级编程(英文影印版 
88-LINUX内核分析及编程 
UNIX 网络编程 套接字联网API(英文版 第三版) 
UNIX网络编程 1卷:套接口API(第3版) 
UNIX 网络编程(第二版)第2卷:进程间通讯 
UNIX网络编程卷2:进程间通讯(第2版)(英文影印版) 
UNIX 网络编程(第2版)第1卷:套接口APIX/Open 传输接口API 
UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版) 
UNIX环境高级编程 
UNIX 环境高级编程(英文版) 
UNIX环境高级编程(第2版) 
Unix技术手册 

19Linux 


Linux内核设计与实现 
Linux内核彻底注释 
LINUX内核分析及编程 
GNU/Linux 编程指南(第二版) 
Linux设备驱动程序(第三版) 
嵌入式设计及Linux驱动开发指南——基于ARM 9处理器 
Linux设备驱动程序 第三版(英文影印版) 
Linux内核设计与实现(第2版) 
Linux内核设计与实现(英文影印版)(第2版) 
linux技术手册 
程序员

20、游戏编程 

Windows游戏编程大师技巧(第二版 
游戏之旅--个人编程感悟 
OpenGL超级宝典:第三版 
OpenGL编程指南(第四版) 
Java 游戏高级编程 
J2ME手机游戏编程入门 
游戏之旅——个人编程感悟 
游戏开发中的人工智能(英文影印版) 
3D游戏:卷动画与高级实时渲染技术 
面向对象的游戏开发 
Java 游戏高级编程 
3D游戏编程大师技巧 
游戏编程精粹 
面向对象的游戏开发 
3D游戏 1:实时渲染与软件技术 
3D游戏:卷动画与高级实时渲染技… 
J2ME手机游戏编程入门 
Direct3D游戏编程入门教程(第二版… 

21、移动开发 

Windows Mobile手机应用开发 
SYMBIAN OS C++手机应用开发 
68-Windows Mobile手机应用开发--傅曦 齐宇 徐骏 
48-SYMBIAN OS C++手机应用开发 (第2卷)------------------RICHARD HARRISON,周良忠 王伯欣译 
68-SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON,周良忠译 
Windows CE.net内核定制及应用程序开发---------周毓林 宁杨 陆贵强 付林林 
嵌入式系统Windows CE 开发技巧与实例--傅曦 
Palm OS编程实践---绝版 

22、单片机 

单片机轻松入门----------------------------------周坚(平凡老师

单片机典型模块设计实例导航-----------------------求是科技 

例说8051----------------------------------------张义和 陈敌北 

KEIL CX51 V7.0单片机高级语言编程与ΜVISION2应用实践-----徐爱钧 

单片机应用程序设计技术(修订版)--------------------周航慈 

8051单片机实践与应用-------------------------------吴金戎 

MCS-51系列单片机实用接口技术---------------------李华 


23、串并口通信 

Visual C++/Turbo C串口通讯编程实践------------------龚建伟 

VISUAL BASICRS-232串行通讯控制(最新版)----------范逸之 

24、电子 

无线电识图与电路故障分析轻松入门(第二版) -------------------胡斌 

无线电元器件检测与修理技术轻松入门(第二版) -------------------胡斌 

图表细说电子技术识图-------------------胡斌 

图表细说电子元器件-------------------胡斌 

图表细说元器件及实用电路-------------------胡斌 
[/equote] 

[equote]怎样成为一名程序员[/equote] 

[equote] 


经过如下4个阶段的训练没有任何编程基础人就能够成为一名普通的程序员。 

第一阶段:掌握一种编程语言 

学习内容:学习任意一种主流的编程语言。例如C++语言。 

学习目标:熟练掌握一种语言的语法和基本的编程技巧。 

学习时间:3个月左右 

注意事项:编程语言和编程工具是两回事情,编程语言是指C++BasicObject Pascal 
程序设计语言,它们是像汉语、英语同样的抽象的语法规则,编程工具是指 
Visual C++ 6.0Visual Basic 6.0Delphi 7.0等包括了源代码编辑器、程序编译器 
在内的集成化、可视化的软件开发工具。C++源程序能够在Visual C++ 6.0里编写,也能够在 
记事本里编写,而同一个C++源程序能够用Visual C++ 6.0编译、执行,也能够用C++ Builder 5.0 
编译、执行,因此: C++ 不等于 Visual C++ 6.0 

第二阶段:掌握一种编程工具 

学习内容:学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语言一致,例如你学习的 
编程语言是C++,那么编程工具要选Visual C++ 6.0或者C++ Builder 5.0 

学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。 

学习时间:3个月左右 

注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各类基本的Windows程序。 

第三阶段:掌握算法与数据结构这门课程 

学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。 

学习目标:熟练掌握各类经常使用的算法与数据结构 

学习时间:4个月左右 

注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫作《数据结构+算法=程序》, 
这说明了数据结构和算法的重要性。它能帮咱们创建良好的程序分析与设计能力。 

第四阶段:实现一个模拟的小型软件项目 

学习内容:软件项目的开发过程 

学习目标:掌握软件项目的基本开发过程和方法 

学习时间:4个月左右 

注意事项:本身完成一个模拟的小型软件项目,强烈推荐作一个MIS(管理信息系统)软件,参考用书推荐 
中小型信息管理系统开发实例系列丛书,人民邮电出版社,它的例子详实有效, 
以它为基础再加以扩展,就能够作出实用的MIS软件来。 
此丛书包括多种开发工具,你们能够选择适合本身的:《VISUAL FOXPRO6.0 数据库系统开发实例导航》 
JAVA数据库系统开发实例导航》 VISUAL BASIC数据库系统开发实例导航》 
VISUAL C++6.0数据库系统开发实例导航》 ASP.NET数据库管理系统开发实例导航》 
DELPHI数据库系统开发实例导航》 POWERBUILDER 8.0数据库系统开发实例导航》。 
最后将完成的模拟软件刻成光盘,做为本身的做品去面试,以此踏上本身光辉的职业程序员之路!
面试

方法(二)

首先我要强调一下,若是能数控编程各类语言,那么你在社会人才竞争中就很是有优点。目前在国内制造业对数控加工高速增加的需求形势下,数控编程技术人才出现了严重短缺,数控编程技术已成为就业市场上的需求热点。1、学好数控编程技术须要具有如下几个基本条件:(1)具备基本的学习资质,即学员具有必定的学习能力和预备知识。(2)有条件接受良好的培训,包括选择好的培训机构和培训教材。(3)在实践中积累经验。2、学习数控编程技术,要求学员首先掌握必定的预备知识和技能,包括:(1)基本的几何知识(高中以上便可)和机械制图基础。(2)基础英语(高中以上便可)。(3)机械加工常识。(4)基本的三维造型技能。3、选择培训教材应考虑的因素包括:(1)教材的内容应适合于实际编程应用的要求,以目前普遍采用的基于CAD/CAM软件的交互式图形编程技术为主要内容。在讲授软件操做、编程方法等实用技术的同时也应包含必定的基础知识,使读者知其然更知其因此然。(2)教材的结构。数控编程技术的学习是一个分阶段不断提升的过程,所以教材的内容应按不一样的学习阶段进行合理的分配。同时,从应用角度对内容进行系统的概括和分类,便于读者从总体上理解和记忆。4、数控编程的学习内容和学习过程基本能够概括为3个阶段:第1阶段:基础知识的学习,包括数控加工原理、数控程序、数控加工工艺等方面的基础知识。第2阶段:数控编程技术的学习,在初步了解手工编程的基础上,重点学习基于CAD/CAM软件的交互式图形编程技术。第3阶段:数控编程与加工练习,包括必定数量的实际产品的数控编程练习和实际加工练习。5、学习方法与技巧同其余知识和技能的学习同样,掌握正确的学习方法对提升数控编程技术的学习效率和质量起着十分重要的做用。下面是几点建议:(1)集中精力打歼灭战,在一个较短的时间内集中完成一个学习目标,并及时加以应用,避免进行马拉松式的学习。(2)对软件功能进行合理的分类,这样不只可提升记忆效率,并且有助于从总体上把握软件功能的应用。(3)从一开始就注重培养规范的操做习惯,培养严谨、细致的工做做风,这一点每每比单纯学习技术更为重要。(4)将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提升的过程。6、如何学习CAM交互式图形编程技术的学习(也就是咱们常说的CAM编程的要点)可分三个方面:1、是学习CAD/CAM软件应重点把握核心功能的学习,由于CAD/CAM软件的应用也符合所谓的“20/80原则,即80%的应用仅须要使用其20%的功能。2、是培养标准化、规范化的工做习惯。对于经常使用的加工工艺过程应进行标准化的参数设置,并造成标准的参数模板,在各类产品的数控编程中尽量直接使用这些标准的参数模板,以减小操做复杂度,提升可靠性。3、是重视加工工艺的经验积累,熟悉所使用的数控机床、刀具、加工材料的特性,以便使工艺参数设置更为合理。  须要特别指出的是,实践经验是数控编程技术的重要组成部分,只能经过实际加工得到,这是任何一本数控加工培训教材都不可能替代的。虽然本书充分强调与实践相结合,但应该说在不一样的加工环境下所产生的工艺因素变化是很难用书面形式来表述完整的。最后,如同窗习其余技术同样,要作到在战略上藐视敌人,在战术上重视敌人,既要对完成学习目标树立坚决的信心,同时又脚踏实地地对待每个学习环节。因此,只要你对数控编程感兴趣,本人严重支持你去学它,前途无量啊。


方法(三)


1、明确学习目的
学习编程对大多数IT业人员来讲都是很是有用的。学编程,作一名编程人员,从我的角度讲,能够解决在软件使用中所遇到的问题,改进现有软件,能够为本身找到一份理想的工做添加剧要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,能够为中国的软件产业作出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思惟,使咱们的逻辑思惟更加严密;可以不断享受到创新的乐趣,将一直有机会走在高科技的前沿,由于程序设计自己是一种创造性的工做。知识经济时代给咱们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所做为,具备必定的编程能力是一个基本条件和要求。

2、打好基础
学编程要具有必定的基础,总结之有如下几方面:
1、数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最先的计算机也是为数值计算而设计的。所以,要学好计算机就要有必定的数学基础,出学者有高中水平就差很少了。
2、逻辑思惟能力的培养学程序设计要有必定的逻辑思惟能力,逻思力的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要作到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。所以在学习编程过程当中,咱们没必要等到什么都彻底明白了才去动手实践,只要明白了大概,就要勇于本身动手去体验。谁都有第一次。有些问题只有经过实践后才能明白,也只有实践才能把老师和书上的知识变成本身的,高手都是这样成材的。

3、注意理解一些重要概念
一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,须要深刻理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针这些语法、结构的应用例子,作到触类旁通,举一反三。


4、掌握编程思想
学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。关键是学一种思想,有了思想,那么咱们就能够举一反三。

5、多实践、多交流
掌握编程思想必须在编程实际工做中去实践和体会。编程起步阶段要常常本身动手设计程序,具体设计时不要拘泥于固定的思惟方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思惟方式不一样、角度各异,各有高招,经过交流可不断吸取别人的长处,丰富编程实践,帮助本身提升水平。亲自动手进行程序设计是创造性思惟应用的体现,也是培养逻辑思惟的好方法。

6、养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来讲较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格能够使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。

7、上网学编程
在网上能够学到不少不一样的编程思想、方法、经验和技巧,有大量的工具和做品及相关的辅导材料供下载。

8、增强计算机理论知识的再学习
学编程是符合理论实践再理论再实践的一个认识过程。一开始要具备必定的计算机理论基础知识,包括编程所需的数学基础知识,具有了入门的条件,就能够开始编程的实践,从实践中能够发现问题须要增强计算机理论知识的再学习。程序人人皆可编,但当你发现编到必定程度很难再提升的时候,就要回头来学习一些计算机科学和数学基础理论。学过以后,不少之前遇到的问题都会迎刃而解,令人有豁然开朗之感。所以在学习编程的过程当中要不断地针对应用中的困惑和问题深刻学习数据结构、算法、计算机原理、编译原理、操做系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样通过不断的学习,再努力地实践,编程水平必定会不断提升到一个新高度。
算法

相关文章
相关标签/搜索