编程简介
编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
编程入门先要学什么
1、如果你能够熟练的使用Windows的话,你就已经可以开始你的程序生涯了,打怪升级走起来!
2、首先从C语言开始。有的朋友可能认为C语言太难了,应该从VB开始。虽然,对于一个初学者来说,用一些控件堆砌成一个小软件会有一些成就感,但是,基础才是最重要的!C语言对于数据类型的描叙,远比VB更全面、明白,而这些正是编程中的根本!
3、学C语言,从数据类型,基本表达式,再到条件语句,循环语句,然后学习函数,再加上一些简单的数组知识,足矣。到现在为止,你只要理解结构化程序设计的思想也就够了!
4、有了以上的基础,就要开始学汇编了。汇编刚开始学的时候很难,那些各种各样的寄存器,分段的内存地址,很难理解,可是这些知识理解了以后,后面的内容就简单了,学习8086的那些指令,再加上一些伪操作,还有DOS和BIOS中断的调用,就可以看懂书上的汇编程序了。到此,你会对计算机有更深一层的理解!
5、有了汇编的基础,再来学习C语言中的精华部分——指针,可谓是如鱼得水了。现在你要对C语言全全面面的学一遍了。
6、学完以上的内容,有必要研究一下数据结构了,线性表,堆栈,队列,树,图,二叉树,等等。
7、请时刻牢记:浮躁是学习编程的大忌。
8、当然,你还应该学习一些数据库的知识,以及一些常用的算法。
9、如果以上的知识你都达到精通的程度后,就可以开始C++的课程了,找本C++上,然后找一本VC上手的书,再花一个星期的时间学习VC的界面和用法,就可以做一些简单的应用了!10、要想学好VC,没有扎实的C++知识是不行的,以下书籍是VC程序员必须翻的烂熟的:C++Primer;Effective C++;Thinking in C++;More Effective C++;深入浅出MFC。11、深刻理解C++面向对象的思想。12、编程的时候,出错是难免的,所以,MSDN一定要熟练使用;好的代码风格会使手的书,用一个星期的时间大概了解一下C++,然后找一本VC上手的书,再花一个星期的时间学习VC的界面和用法,就可以做一些简单的应用了!
10、要想学好VC,没有扎实的C++知识是不行的,以下书籍是VC程序员必须翻的烂熟的:C++Primer;Effective C++;Thinking in C++;More Effective C++;深入浅出MFC。
11、深刻理解C++面向对象的思想。
12、编程的时候,出错是难免的,所以,MSDN一定要熟练使用;好的代码风格会使调试的时候,更加简单的查错,所以,一定要养成良好的编程风格。
学编程难在哪里
1、复杂度:
规模上,软件实体可能比任何由人类创造的其他实体还要复杂,因为没有任何两个软件部分是相同的。如果有相同的情况,我们会把它们合并成共调用的子函数。
数字计算机本身就比人类建造的大多数东西要来的复杂,由于复杂度,团队成员之间的沟通非常困难,导致产品开发中会出现很多问题,使成本超支、进度跟不上;复杂度不仅带来技术上的困难,还会引发很多管理上的问题,它使全面理解问题变得很难,从而妨碍了概念上的完整性。
2、一致性:
工程师必须控制的数据很多是随心所欲的、毫无规则可言的,来自若干必须遵循的人为惯例和系统。它们随不同的接口而改变,随时间的推移而改变,而且这些变化不是必须的,仅仅由于它们是不同的人设计的结果。
某些情况下,因为是开发最新软件,所以它必须遵循各种接口。另一些情况下,软件的开发目标就是兼容性。在上述的所有情况中,很多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂性。
3、可变性:
所有成功的软件都会发生变更。当人们发现软件很有用时,会在原有的应用范围的边界,或者在超越边界的情况下实用软件。功能扩展的压力主要来自那些喜欢基本功能,又对软件提出很多新用法的用户们。
简而言之,软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等等。后者持续不断的变化着,这些变化无情的强迫着软件随之变化。
4、不可见性:
软件是不可见和无法可视化的。软件的客观存在不具有空间的形体特征。当我们试图用图形来描述软件结构时,会发现它不仅仅包含一个,而是很多相互关联的、重叠在一起的图形。
除去软件结构上的限制和简化方面的进展,软件仍然保持着无法可视化的固有特征,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重阻碍了相互之间的交流。
学习编程的书籍推荐
1、《c primer plus》
内容简介本书全面讲述了C语言编程的相关概念和知识。 全书共17章。第1、2章学习C语言编程所需的预备知识。第3到15章介绍了C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容更加适合读者的需求。第16章和第17章讨论了C预处理器和C库函数、高级数据表示(数据结构)方面的内容。附录给出了各章后面复习题、编程练习的答案和丰富的C编程参考资料。 本书适合希望系统学习C语言的读者,也适用于精通其他编程语言并希望进一步掌握和巩固C编程技术的程序员。
2、《The C Programming Language》
《The C Programming Language》译作《C程序设计语言》,是由著名的计算机科学家Brian W. Kernighan和C语言之父的Dennis M. Ritchie合著的一部计算机科学著作,是第一部介绍C语言编程方法的书籍。它是一本必读的程序设计语言方面的参考书。它在C语言的发展和普及过程中起到了非常重要的作用,被视为是C语言的业界标准规范,而且至今仍然广泛使用。它也被公认为计算机技术著作的典范,以清晰简洁的文字讲述而著称。书中用“hello world”为实例开始讲解程序设计,也已经成为程序设计语言图书的传统。[1] 本书的讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。 在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用如此广泛。
3、《C Traps and Pitfalls》
作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。 全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。 本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备书籍。
4、《The Art of Computer Programming》
本书是算法分析的经典名作(用经典不太恰当,应该是圣经或史诗),被科学美国人列为20世纪12大科学名著之一(和Dirac的量子力学,Einstein 的广义相对论,von Neumann 的博弈论的著作等齐名)。其亮点在于其超乎寻常的数学技巧,要求读者拥有极高的数学修养,只要你坚持忍耐,一旦读懂了,你的算法和程序设计水平也会达到更高的档次,你会对程序设计有一种截然不同的体会和领悟,就是“道”(Tao)。书的排版很漂亮(得益于作者的Tex系统),看起来很舒服。作者的文笔很好,写得生动活泼,读起来荡气回肠(英文版)。习题多且精华,触及算法和程序本质,书后有几乎所有习题的答案(占了整全书篇幅的1/4),书中的分析方法体现了作者严谨的风格。不过本书的程序不是用我们熟悉的高级语言描述的,而是作者设计的MIX语言。整套书原计划出七卷,现在出了三卷:基本算法,半数值算法,排序和搜索,第四卷组合算法跳票了20年,Knuth称在2008年推出。本书有中文版,不过建议读者选用英文版,因为都学到这个程度了,英语应该不会有大困难了。引用一句话“在我们的有生之年,可能会看到C++的消亡,但Knuth和他的程序设计艺术,将永远留在我们的心里。”
5、Data Structures and Algorithm Analysis in C:Second Edition》
数据结构与算法分析:C语言描述(原书第2版)》内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括。由于《数据结构与算法分析:C语言描述(原书第2版)》选材新颖,方法实用,题例丰富,取舍得当。《数据结构与算法分析:C语言描述(原书第2版)》的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序。从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C程序和伪码例程,但并不是全部。一些程序可从互联网上获得。