




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
诶呀 整理的眼睛都疼了 可是还是整理的有点乱 希望能够带给你们很大的帮助哟要珍惜我 的劳动成果。谢谢咯 方法(一) 编了这么久的程序,一直想找机会总结下其中的心得和方法,但回想我这段编程道路,又 很难说清楚,如果按照我走过的所有路来说,显然是不可能的!当我看完了云风的游戏 之旅-编程感悟和梁肇新的编程高手箴言我突然知道我要从何说起,我要怎么说了! 从接触编程到现在已经至少要 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)售后服务。 每个过程有分很多规范,因为一个项目很多人做,很多公司做,没有个很好的规范会乱套 的,所以最后很容易合在一起。 如何学好编程 编程数据结构语言 c+ 方法(三) 如何学好编程 一、为何要学编程? 每个人的动机不一样。大致有: 1、为了找个好工作;或为了有更好的机会和更好的发展。 2、看到别人超厉害,所以也想学。 3、实际工作中很多场合需要。 4、从小就立志做个程序员,做软件工程师。 5、振兴中国的软件事业。 。 = 二、如何学编程? 1、多看好书。 差书误人子弟,不但浪费时间和精力,而且打击人的信心,差书使人很久都不会,让会让 人怀疑自已 的学习能力。 现在的书很多,但好书很少,特别是被大家公认很有价值的好书,更是少之又少。历经多 年时间考验 和市场风雨不残酷洗礼而仅存的巨著,更是极其稀少。中国历史上文学小说类书本多如牛 毛,但仅存的巨 著,也只不过等四本名著而已。 编程方面也是如此。 2、多动手。 这一点很重要。而且特别重要。 “纸上得来终觉浅,绝知此事要躬行。”陆游的千古名句说的就是这个道理,并且同样适合 于编程方 面。 = 三、用什么语言最好? 这主要取决于应用领域,每种语言都有自已的长处和不足。 1、汇编语言和 C 语言在单片机及工控领域用较多。另外 C 语言也是一种通用语言,是学 C+/c#的起点。 2、C+系统编程等多个方面,最常用的编译器是 VC。 3、C#/Java 网络编程方面新兴的。 4、VB 通用。 5、还有 Delphi 等。 个人建议:从未编过程的,就从学 vb 开始。有基础的可直接学 c+/VC。 = 四、有什么好书 ? 几年前,台湾著名技术作家侯捷先生曾经写过一篇影响很大的书评文章,叫做MFC 四大 天王。文章的 意思是说在 MFC 的浩瀚书海中,只要认真研读和学习其中四本,就可以“五岳归来不看山”。 侯先生虽以 MFC 为例,但是这个道理却同样适合于 MFC 之外的很多具体技术领域,这不能不说是一 个有趣的统计现象。 通常在某一个具体细分的技术领域,会自然而然地出现 35 本顶级著作,它们彼此互相 配合,形成一个完 整的体系。对于学习者来说,只需要认真研读这几本书,就足以升堂入室。我乐于将这种 现称为“四书五 经现象”。对于读者来说,如果能够找到该领域中的“四书五经”,则无论在时间上还是金钱 上都是最经 济的选择。好书几本,胜过烂书几捆,这个体会想必大家都有。在此,帮助大家遴选各个 技术领域里的“ 四书五经”。 编程的书可谓汗牛充栋,其中经典也是不泛其数,但绝大多数的过来人,都一致认为,要 想很快的入 门并尽快的投入到编程实践中,只要其中的四到五本也就够了,即只看经典中的经典,圣 经级的书就可以 了。 所谓活到老学到老,程序员是个终身学习的职业,要不断的看书,直到放弃编程的那一天。 所以, 您要读的好书也绝非以下推荐的这些书哟,呵呵。 一句话,由于我们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。 /equote equote 经典好书分类热销榜 = 1、Java 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:基于 MVC 的 Java Web 设计与开发-孙卫琴 精通 Hibernate:Java 对象持久化技术详解-孙卫琴 Tomcat 与 Java Web 开发技术详解-孙卫琴 Java 与模式-阎宏 2、c# 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 平台四大天王 3、C+ 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 language、c+ Primer 深奥如山重水复 Inside the c+ object model 程序库大全 The c+ standard libray 工程经验之积累 Effective c+、More Effective c+、Exceptional c+ c+八大金刚: 1、Essentital c+-lippman-C+之父,旁枝暂略,主攻核心,轻薄短小,初学者 2、The c+ programming language-C+之父,技术权威,用词深峻,思想深远,c+ 百科全书代表, 圣经。 3、c+ Primer-lippman-纵横书市十数年,c+最佳教本,c+百科全书代表。 4、Inside the c+ object model-lippman-揭示 c+底层,非常好,非常难。 5、Effective c+-通过 50 个编程实例,展示专家经验,行文有趣,深处浅出。 作者: 热布克 2006-7-11 16:18 回复此发言 - 3 C+原创,超经典:为何要学编程?如何学编程?用什么语言最好?有 6、More Effective c+通过 35 个编程实例,展示专家经验,行文有趣,深处浅出。 7、The c+ standard librayc+标准库的百科全书。 8、设计模式:可复用面向对象软件的基础good! 4、c 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 5、VB 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 6、Delphi Inside VCL(深入核心VCL 架构剖析)-李维 Delphi 7 高效数据库程序设计-李维 面向对象开发实践之路(Delphi 版)-李维 7、VC 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 8、vf 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 18、Unix UNIX 网络编程 卷 I 套接字联网 API(英文版 第三版 UNIX 编程艺术 UNIX 环境高级编程(英文影印第 2 版-UNIX 编程“圣经 UNIX 环境高级编程(英文影印版)(第 2 版) 99-UNIX 环境高级编程(第 2 版) UNIX 环境高级编程(第 2 版)-UNIX 编程“圣经 UNIX 网络编程 第 1 卷:套接口 API(第 3 版) UNIX 网络编程卷 2:进程间通信(第 2 版)(英文影印版) UNIX 网络编程(第二版)第 2 卷:进程间通信 UNIX 编程环境 UNIX 网络编程 卷 I 套接字联网 API(英文版 第三版 UNIX 系统编程 UNIX 环境高级编程 UNIX 环境高级编程(英文影印版 88-LINUX 内核分析及编程 UNIX 网络编程 卷 I 套接字联网 API(英文版 第三版) UNIX 网络编程 第 1 卷:套接口 API(第 3 版) UNIX 网络编程(第二版)第 2 卷:进程间通信 UNIX 网络编程卷 2:进程间通信(第 2 版)(英文影印版) UNIX 网络编程(第 2 版)第 1 卷:套接口 API 和 X/Open 传输接口 API UNIX 网络编程(卷 1):连网的 APLS:套接字与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程技术服务劳动协议年
- 项目管理中的能力提升试题及答案
- 工程项目管理人才发展试题及答案
- 网络游戏开发测试与上线合同
- 工程项目风险控制的方法试题及答案
- 小学生生命安全教育
- 提升企业核心竞争力的总结计划
- 通过社交反馈增强品牌价值计划
- 2025年工程项目管理核心能力试题及答案
- 工程经济学的应用实例分析试题与答案
- 联合办公协议书范本
- 利妥昔单抗用药注意事项课件
- 管理能力测试题大全
- 2023年公需科目:《“十四五”数字经济发展规划》解读等考试题
- 湖北十堰燃气爆炸事故案例
- 12SS508《混凝土模块式室外给水管道附属构筑物》
- 工业企业档案分类试行规则
- 23J916-1:住宅排气道(一)
- 人机料法环测检查表
- 2022小学劳动课程标准电子版
- 物料采购结算单
评论
0/150
提交评论