我想学习编程,要从哪开始学起?
第一步:把高等数学包括离散数学,数值分析学好,数学是编程的基础,是编程算法的源泉,算法是编程的灵魂。
第二步:建议先学VB,VB是可视化的编程工具,对出学者入门很都帮助。
第三步:学习C语言,现在很多操作系统和编程语言都是C语言编写的,比如Windows,UNIX,Linex等操作系统。C++,JAVA等语言。重要的是要把C语言的指针和数组学好,如果C语言的功底已经够深了,就学C++或JAVA。
第四步:编程重要的不是编程语言,重要的是算法和思路,还得学数据结构,操作系统基础,计算机系统知识,网络知识,多媒体知识,系统开发运行知识,数据库基础等等。
我想学编程,该怎么入手
学编程之前,我们要知道编程的这些特点。
1.首先编程是什么?为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。【百度百科】
1. 编程是一门实践性很强的学科。
2. 编程它是一项技能。
知道了它的特点,我们才知道怎么去学习。
1. 编程既然是处理人与计算机之间交流的过程,那么我们就需要理解计算机处理问题的流程,然后我们才能把问题的思路/方法和手段通过计算机能认识的方式告诉计算机,这就需要我们有一定的逻辑能力,理解能力。
2. 实践很强,就说明需要我们多练习,就是需要我们多敲代码。
3. 既然编程是一项技能活,那么只要我们不是很笨,都能学会,只是每个人所花的时间不一样。
明白了以上几点,我们再来看该学什么,该怎么学。
基础学科:
1. 编程入门(如C、C++ 等)
2. 数学基础(一阶逻辑系统、集合论、图论、线性代数、微积分、概率论)
3. 数据结构与算法
4. 体系结构(数字电路、CPU设计、操作系统、编译器、网络协议)
熟悉了上面的知识之后,对计算机基础理论就有了大概的了解,也为深入学习编程技术打下一定的基础。
然后,就可以真正开始学习编程了,这时候你有两个选择,一是学前端;二是学习后端。什么是前端,后端,我一句话简述。想要知道更详细的,自行找资料学习。
前端:就是软件的前台部分,我们肉眼能看见的部分,比如淘宝的各种页面,app的各种页面等等。
后端:就是软件的后台部分,我们肉眼看不见,处理数据交互的。
前端所用的技术主要有三大技术:HTML/css/JavaScript
后端用到的技术:数据库,常见也就是MS SQL、MySQL、oracle等数据库,还需要精通至少一种语言,比如Java/.c#/PHP/Python等等。
知道了学什么之后,接下来找一份详细的学习大纲开始学习。去那里找大纲?培训机构的最好,他们研究得深入,资源也有。
有了大纲就开始学习吧。
有两种学习方式:
一是自学。适合自控能力强,自学能力比较好,时间充裕的同学。三者缺一不可。
1. 查找资料。找到你要学习的所有资料,书籍+大纲+视频。
2. 制定严格的学习计划。细化到每一个知识点,这部分可以参考培训机构的大纲。
3. 找一个老师。老师可以是你的朋友,同事等,遇到难题,自己不知所措,又问的地方。
4. 执行。上面的步骤都完成后,就开始学习吧。
我想学编程,请问该怎么入门?
我的建议是首先学习C语言和VB,这是两种不同风格的基础知识。
然后可以根据自身的兴趣和发展方向来选择各种编程语言。如C++,C#,JAVA等等。当你学习的时候你自然会发现算法和数据结构的重要性,这是必须要努力学习的方面
与此同时必须要学习一下数据库的相关知识。
学习的时候,我认为实战很重要,自学如何实战?那就是做题,多做题才能多发现问题,多发现自己的不足。
以下是我查询到的一点参考:
方案一 Basic语言 Visual Basic
优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。
Basic/Visual Basic简介
方案二 Pascal语言 Delphi
优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。
缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。
Pascal语言简介
Delphi简介
方案三 C语言 Visual C++
优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。
缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业沟靡话愕谋喑贪 谜哐 捌鹄椿嵊胁恍〉睦 选?
综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。
C语言简介
方案四 C++语言 C++ Builder
优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
缺点
由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。
C语言简介
方案五 SQL语言 Power Builder
对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。
、《计算机组成原理》(熟悉)
2、《数据结构》(掌握)
3、《操作系统》(了解-熟悉)
4、《The C language》(掌握)
5、《编译原理》(了解原理)
6、《汇编语言》(了解)
7、《计算机网络》(了解)
8、《软件工程》(了解)
9、《关系数据库》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
1、《The C Programming language》 (Keinighan Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向对象高效编程》
8、《设计模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推荐)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技术内幕》
14、《MFC 深入浅出》
15、《软件需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序员参考手册》
19、《用TCP/IP进行网际互连》
20、《COM 本质论》
如何学习编程?
编程
这是每个游戏编程FAQ里都有的问题。这个问题每星期都会在游戏开发论坛上被问上好几次。这是个很好的问题,但是,没人能给出简单的答案。在某些应用程序中,总有一些计算机语言优于其他语言。下面是几种用于编写游戏的主要编程语言的介绍及其优缺点。希望这篇文章能帮助你做出决定。
1、C语言
如果说FORTRAN和COBOL是第一代高级编译语言,那么C语言就是它们的孙子辈。C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。
C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行,而不像一个单独的集成块的代码使用GOTO语句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的“空心粉式代码”代码要简单得多。事实上,C仍然具有GOTO语句,不过它的功能被限制了,仅当结构化方案非常复杂时才建议使用。
正由于它的系统编程根源,将C和汇编语言进行结合是相当容易的。函数调用接口非常简单,而且汇编语言指令还能内嵌到C代码中,所以,不需要连接独立的汇编模块。
优点:有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。
缺点:不容易支持面向对象技术。语法有时会非常难以理解,并造成滥用。
移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。其他的东西都跟平台有关。比如说,为Windows和Mac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。
用C语言编写的游戏:非常非常多。
资料:C语言的经典著作是《The C Programming Language》,它经过多次修改,已经扩展到最初的三倍大,但它仍然是介绍C的优秀书本。一本极好的教程是《The Waite Group's C Primer Plus》。
2、C++
C++语言是具有面向对象特性的C语言的继承者。面向对象编程,或称OOP是结构化编程的下一步。OO程序由对象组成,其中的对象是数据和函数离散集合。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)。比如说,有很多的GUI和数据库的库实现为对象的集合。
C++总是辩论的主题,尤其是在游戏开发论坛里。有几项C++的功能,比如虚拟函数,为函数呼叫的决策制定增加了一个额外层次,批评家很快指出C++程序将变得比相同功能的C程序来得大和慢。C++的拥护者则认为,用C写出与虚拟函数等价的代码同样会增加开支。这将是一个还在进行,而且不可能很快得出结论的争论。
我认为,C++的额外开支只是使用更好的语言的小付出。同样的争论发生在六十年代高级程序语言如COBOL和FORTRAN开始取代汇编成为语言所选的时候。批评家正确的指出使用高级语言编写的程序天生就比手写的汇编语言来得慢,而且必然如此。而高级语言支持者认为这么点小小的性能损失是值得的,因为COBOL和FORTRAN程序更容易编写和维护。
优点:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。
缺点:非常大而复杂。与C语言一样存在语法滥用问题。比C慢。大多数编译器没有把整个语言正确的实现。
移植性:比C语言好多了,但依然不是很乐观。因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。
使用C++编写的游戏:非常非常多。大多数的商业游戏是使用C或C++编写的。
资料:最新版的《The C++ Programming Language》非常好。作为教程,有两个阵营,一个假定你知道C,另外一个假定你不知道。到目前为止,最好的C++教程是《Who's Afraid of C++》,如果你已经熟知C,那么试一下《Teach Yourself C++》。
3、我该学习C++或是该从C开始
我不喜欢这种说法,但它是继“我该使用哪门语言”之后最经常被问及的问题。很不幸,不存在标准答案。你可以自学C并使用它来写程序,从而节省一大堆的时间,不过使用这种方法有两个弊端:
你将错过那些面向对象的知识,因为它可能在你的游戏中使得数据建模更有效率的东西。
最大的商业游戏,包括第一人称射击游戏很多并没有使用C++。但是,这些程序的作者即使使用老的C的格式,他们通常坚持使用面向对象编程技术。如果你只想学C,至少要自学OO(面向对象)编程技术。OO是仿真(游戏)的完美方法,如果你不学习OO,你将不得不“辛苦”的工作。
4、汇编语言
显然,汇编是第一个计算机语言。汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。这意味着你将与处理器的底层打交道,比如寄存器和堆栈。如果你要找的是类英语且有相关的自我说明的语言,这不是你想要的。
确切的说,任何你能在其他语言里做到的事情,汇编都能做,只是不那么简单 — 这是当然,就像说你既可以开车到某个地方,也可以走路去,只是难易之分。话虽不错,但是新技术让东西变得更易于使用。
总的来说,汇编语言不会在游戏中单独应用。游戏使用汇编主要是使用它那些能提高性能的零零碎碎的部分。比如说,毁灭战士整体使用C来编写,有几段绘图程序使用汇编。这些程序每秒钟要调用数千次,因此,尽可能的简洁将有助于提高游戏的性能。而从C里调用汇编写的函数是相当简单的,因此同时使用两种语言不成问题。
特别注意:语言的名字叫“汇编”。把汇编语言翻译成真实的机器码的工具叫“汇编程序”。把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发。
优点:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的第一人,因为你能直接使用它们。
缺点:难学、语法晦涩、坚持效率,造成大量额外代码 — 不适于心脏虚弱者。
移植性:接近零。因为这门语言是为一种单独的处理器设计的,根本没移植性可言。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。
使用汇编编写的游戏:我不知道有什么商业游戏是完全用汇编开发的。不过有些游戏使用汇编完成多数对时间要求苛刻的部分。
资料:如果你正在找一门汇编语言的文档,你主要要找芯片的文档。网络上如Intel、AMD、Motorola等有一些关于它们的处理器的资料。对于书籍而言,《Assembly Language: Step-By-Step》是很值得学习的。
5、Pascal语言
Pascal语言是由Nicolas Wirth在七十年代早期设计的,因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望,“空心粉式代码”变成了规范,而当时的语言又不反对它。Pascal被设计来强行使用结构化编程。最初的Pascal被严格设计成教学之用,最终,大量的拥护者促使它闯入了商业编程中。当Borland发布IBM PC上的 Turbo Pascal时,Pascal辉煌一时。集成的编辑器,闪电般的编译器加上低廉的价格使之变得不可抵抗,Pascal编程了为MS-DOS编写小程序的首选语言。
然而时日不久,C编译器变得更快,并具有优秀的内置编辑器和调试器。Pascal在1990年Windows开始流行时走到了尽头,Borland放弃了Pascal而把目光转向了为Windows 编写程序的C++。Turbo Pascal很快被人遗忘。
最后,在1996年,Borland发布了它的“Visual Basic杀手”— Delphi。它是一种快速的带华丽用户界面的 Pascal编译器。由于不懈努力,它很快赢得了一大群爱好者。
基本上,Pascal比C简单。虽然语法类似,它缺乏很多C有的简洁操作符。这既是好事又是坏事。虽然很难写出难以理解的“聪明”代码,它同时也使得一些低级操作,如位操作变得困难起来。
优点:易学、平台相关的运行(Dephi)非常好。
缺点:“世界潮流”面向对象的Pascal继承者(Modula、Oberon)尚未成功。语言标准不被编译器开发者认同。专利权。
移植性:很差。语言的功能由于平台的转变而转变,没有移植性工具包来处理平台相关的功能。
使用Pascal编写的游戏:几个。DirectX的Delphi组件使得游戏场所变大了。
资料:查找跟Delphi有关的资料,请访问:Inprise Delphi page。
6、Visual Basic
哈,BASIC。回到八十年代的石器时代,它是程序初学者的第一个语言。最初的BASIC形式,虽然易于学习,却是可怕的无组织化,它义无返顾的使用了GOTO充斥的“空心粉式代码”。当回忆起BASIC的行号和GOSUB命令,没有几个人能止住眼角的泪水。
快速前进到九十年代早期,虽然不是苹果公司所希望的巨人,HyperCard仍然是一个在Windows下无法比拟的吸引人的小型编程环境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂贵。为了与HyperCard一决高下,微软取得了一个小巧的名为Thunder编程环境的许可权,并把它作为Visual Basci 1.0发布,其用户界面在当时非常具有新意。这门语言虽然还叫做Basic(不再是全部大写),但更加结构化了,行号也被去除。实际上,这门语言与那些内置于TRS-80、Apple II及Atari里的旧的ROM BASIC相比,更像是带Basic风格动词的Pascal。
经过六个版本,Visual Basic变得非常漂亮。用户界面发生了许多变化,但依然保留着“把代码关联到用户界面”的主旨。这使得它在与即时编译结合时变成了一个快速原型的优异环境。
优点:整洁的编辑环境。易学、即时编译导致简单、迅速的原型。大量可用的插件。虽然有第三方的DirectX插件,DirectX 7已准备提供Visual Basic的支持。
缺点:程序很大,而且运行时需要几个巨大的运行时动态连接库。虽然表单型和对话框型的程序很容易完成,要编写好的图形程序却比较难。调用Windows的API程序非常笨拙,因为VB的数据结构没能很好的映射到C中。有OO功能,但却不是完全的面向对象。专利权。
移植性:非常差。因为Visual Basic是微软的产品,你自然就被局限在他们实现它的平台上。也就是说,你能得到的选择是:Windows,Windows或Widnows。当然,有一些工具能将VB程序转变成Java。
使用Visual Basic编写的游戏:一些。有很多使用VB编写的共享游戏,还有一些是商业性的。
资料:微软的VB页面有一些信息。
7、Java
Java是由Sun最初设计用于嵌入程序的可移植性“小C++”。在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起。事实证明,Java不仅仅适于在网页上内嵌动画 — 它是一门极好的完全的软件编程的小语言。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。
虽然不是C++的正式续篇,Java从C++ 中借用了大量的语法。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。
优点:二进制码可移植到其他平台。程序可以在网页中运行。内含的类库非常标准且极其健壮。自动分配合垃圾回收避免程序中资源泄漏。网上数量巨大的代码例程。
缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留。越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢。
移植性:最好的,但仍未达到它本应达到的水平。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。
使用Java编写的游戏:网页上有大量小的Applet,但仅有一些是商业性的。有几个商业游戏使用Java作为内部脚本语言。
资料:Sun的官方Java页面有一些好的信息。IBM也有一个非常好的Java页面。JavaLobby是一个关于Java新闻的最好去处。
8、创作工具
上面所提及的编程语言涵盖了大多数的商业游戏。但是也有一个例外,这个大游戏由于它的缺席而变得突出。
“神秘岛”。没错,卖得最好的商业游戏不是使用以上任何一门语言编的,虽然有人说“神秘岛”99%是使用 3D建模工具制作的,其根本的编程逻辑是在HyperCard里完成的。
多数创作工具有点像Visual Basic,只是它们工作在更高的层次上。大多数工具使用一些拖拉式的流程图来模拟流程控制。很多内置解释的程序语言,但是这些语言都无法像上面所说的单独的语言那样健壮。
优点:快速原型 — 如果你的游戏符合工具制作的主旨,你或许能使你的游戏跑得比使用其他语言快。在很多情况下,你可以创造一个不需要任何代码的简单游戏。使用插件程序,如Shockware及IconAuthor播放器,你可以在网页上发布很多创作工具生成的程序。
缺点:专利权,至于将增加什么功能,你将受到工具制造者的支配。你必须考虑这些工具是否能满足你游戏的需要,因为有很多事情是那些创作工具无法完成的。某些工具会产生臃肿得可怕的程序。
移植性:因为创作工具是具有专利权的,你的移植性以他们提供的功能息息相关。有些系统,如Director可以在几种平台上创作和运行,有些工具则在某一平台上创作,在多种平台上运行,还有的是仅能在单一平台上创作和运行。
使用创作工具编写的游戏:“神秘岛”和其他一些同类型的探险游戏。所有的Shockwave游戏都在网络上。
资料:Director、HyperCard、SuperCard、IconAuthor、Authorware。
9、结论
你可能希望得到一个关于“我该使用哪种语言”这个问题的更标准的结论。非常不幸,没有一个对所有应用程序都最佳的解决方案。C适于快而小的程序,但不支持面向对象的编程。C++完全支持面向对象,但是非常复杂。Visual Basic与Delphi易学,但不可移植且有专利权。Java有很多简洁的功能,但是慢。创作工具可以以最快的速度产生你的程序,但是仅对某一些类型的程序起作用。最好的方法是决定你要写什么样的游戏,并选择对你的游戏支持最好的语言。“试用三十天”的做法成为工业标准是件好事情。
我想学编程,应该从什么地方开始?
从认识什么是编程开始
要学习编程,首先要了解什么是编程。
理解了编程是什么之后开始培养编程兴趣,并选择一门语言,这里比较推荐的是Java。
如果是自学拿来玩,单纯培养兴趣,陶冶情操的,还是推荐python。
然后便是要学习入门的编程知识,从零开始学习了。
我这里有一些Java和python学习的推荐,
学Java看这里:
先上一份计算机科学速成课,也不多,周末看看就看完了。不是很复杂的视频,挺生动有趣的。看到啥程度呢?个人认为只要看到不太懂的地方暂停一下思考思考就可以了。
为啥看这个呢,看题主的问题描述,推测你还没开始学习很多内容,那么先来了解了解计算机科学大概是个什么样子的,对计算机科学有一个整体认识。没准还能帮助找到你的兴趣所在。毕竟计算机科学还是挺大范围的。
编程学习随时可以开始,其实没有多少前期要求,可能无非就是耐心比较重要吧(比如不要一上来就被配置编程环境打趴下就不学了,实在不行先在线编程工具上手也行),你可能会碰到各种各样的问题,有些坑甚至网上也找不到现成的答案(不过还是强调一下,初学者大部分问题还是能搜索到的,搜索能力对于计算机学习很重要!多锻炼锻炼,搜不到大多情况下是你关键词没用好,搜索技巧不行)。
关于求助别人,可以看下经典文章《提问的智慧》,用不了多久的。其实就是搞明白如果碰到问题怎么请教别人,如何让别人会更愿意帮助你解答,以及更有效的帮助到你。
以高中生的知识水平和学习能力而言,是完全可以从主流编程语言选一门开始入坑的。可选的主要就是C,C++,Java,Python
我不认为太偏门的,或者适用面比较狭窄的语言作为编程小白的第一门语言。各种编程语言都有自己适用场景,虽然大家喜欢开玩笑PHP是最好的语言,但主流编程语言没有啥高下之分,只是长处和短处各不相同而已。
当然,有充分理由,比如确定就是要学做网页,那从JavaScript开始学习编程也是可以的。退一步说,第一门编程语言只要是主流编程语言都可以(啥叫主流编程语言,比如TIOBE排行榜上哪些,排名靠前的肯定是用的人多的)。
但是为什么建议从这四种里面选呢?
区别在于,C,C++这种语言,尤其是C(国内大学计算机类专业里,C基本是必学语言)是更接近底层和机器的语言,整个的思路很符合计算机的工作原理,从这俩入手,对理解计算机原理更有帮助。学习的过程中可能你会接触到更多计算机原理的知识比如操作系统的内存管理,汇编层面的调用约定等,有利于更好地理解计算机工作原理。另外其实有C/C++基础,学别的编程语言慢不到哪里去的,甚至像Python这样的可以一天学会基本语法。C++相对于C多出来的东西中,一个很重要的东西就是面向对象,C++, Java, Python都是支持面向对象编程的语言,面向对象是学编程迟早要了解和有必要掌握的一种编程方式。
这几门编程语言到底选哪一个其实都无所谓,你想要全部试一遍也行(反正是尝试嘛),甚至你想同时学习几门语言也是完全可以的。不过先熟练一门语言,有需求了再学别的编程语言,可以和学过的语言对比学习,会发现自己学起来还是挺快的,毕竟已经学习了一些编程的思想。
比如我之前学C++,后来一直用Python比较多,有时要写起来C++,写个for循环顺手就敲了个for i in range(100)出来(C++里面是这样写的for (int i = 0; i 100; i++)),但其实完全不必担心同时学几门语言会有啥副作用。 另外你真正开始学习编程之后其实慢慢的就会了解自己要学些什么内容了。
据我了解(自己踩坑过2333)有一些那种编程启蒙游戏,还是不要拿来学习编程了。高中生的智力程度(咳咳)正正经经上手编程就好,不用前期准备:)
还有一个小提示就是:Python真香,可以尽早开始学习,Python用起来相当方便顺手,其包管理器pip也很方便使用,第三方库十分丰富,想要实现什么功能,用pip安装对应的模块很快就能开始coding,而不是花半天时间找第三方库,安装库...... 无论是作为计算器用,还是写点脚本帮你免去某些重复劳动,又或是想要验证一些别的语言代码的思路但又想偷懒(以上都是我经常干的hahaha),Python都是极佳的选择(正道の光)!
学习编程的过程中,初学者和已经入门的人的视野是不一样的,先学起来,你才能看到更多的东西,了解计算机的各个方向。比如计算机图形学,机器学习,软件工程,当然也有硬件的,机器人呀,单片机呀,另外如果想当白帽子黑客,来学信息安全也是很不错嘛。计算机的东西很多是触类旁通的,你尽管学,慢慢的整个计算机科学的知识大楼就在你脑子里面搭起来了。
我想学习编程,但是不知道该怎么开始。
我建议最好是从基础入手,而不是一开始就进行可视化编程。虽然如今国内绝大多数pc都是使用的windows,但是毕竟这知识这个世界的冰山一角。扎实的基础自然会更有用处。编程其实重要的是程序思维,然后是算法和数据结构。这些都是超出语言的,就是说不管是学c学java学delphi还是别的什么,这一部分都是一致的。因此培养这部分的知识可以说是一本万利的事情。初学肯定是通过语言熟悉思想熟悉算法和数据结构,到一定的时候就是纯粹的思想和算法数据结构的学习,便已经脱离程序语言了。经历过这些阶段,换一种语言不过是重新了解一下描述的方式,就像你了解了中文思维,山东话和四川话的差别就不会太大;了解了拉丁语的思维,整个语系的语言都不过是简简单单的记忆工作,应用就好。入门的语言,理论上是怎么方便学哪个,看那个顺眼学哪个。当然这里面还是有不同的推荐的。一般来说我比较推荐pascal、c/c++、java。并不是因为这三个东西很通用很有前途,而是它们实在是严整而有规则(c/c++还显得稍微的宽松了一点),而严谨的语法要求和明确的概念区分是有利于编程思维的形成和算法数据结构的学习的。同样的因为这个理由我不推荐vb,而并不是因为它功能不强大(事实上vb在windows环境中是相当牛的语言)另外一个建议是,如果学c,不要一开始就用vc。ms提供的很多东西很方便,有很多很简单的实现方法,但是它们不标准。vc与ansi
c标准是有很大的差距的。首先一个不遵循标准的c/c++程序是不通用的,换个编译器说不定就不被承认了。所以我非常推崇gcc,理由之一是它完全符合
ansi
c标准,无论它的c还是c++编译器都很严整,功能上一点也不缺乏(有人说gcc不能做图形界面的程序,这一点完全错误,到处都有的qt库和gtk库都能做出很好的界面),另外一个理由便是它免费,毕竟稍微大一点的软件企业就不会屈从与微软的编译器和平台,而一个免费的c编译器无疑可以创造更多的利益;就算要转vc,标准的c程序也是几乎不要作任何改动的。当然,这一切的前提是,你真的很想很好的学编程,做一个这方面的精英。如果只不过是兴趣,或者只是想拿一个ms的工程师认证然后在国内企业找份诸如设计vf、vb程序之类的工作,那完全可以忽略我上面的话,去找个认证培训班,认认真真听听课,好好完成练习,从vb或者vc入手,考好认证是很不会太难的。毕竟现在很多很好的大学里都从来不缺乏计算机的课程,不会缺少算法或者编译原理的课程,不会没有计算机科学的研究院,而那里面出来的人一般都具备了很好的基础知识,会更加容易成为前面所说的精英。
怎么学编程啊
首先学习C语言和VB,这是两种不同风格的基础知识。然后可以根据自身的兴趣和发展方向来选择各种编程语言。如C++,C#,JAVA等等。当你学习的时候你自然会发现算法和数据结构的重要性,这是必须要努力学习的方面与此同时必须要学习一下数据库的相关知识。
学习的时候,我认为实战很重要,自学如何实战?那就是做题,多做题才能多发现问题,多发现自己的不足。
以下是一点参考:
方案一 Basic语言 Visual Basic
优点
(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单。
(4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。
缺点
(1)Visual Basic 不是真正的面向对象的开发文具。
(2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
(3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。
综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。
Basic/Visual Basic简介
方案二 Pascal语言 Delphi
优点
(1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
(2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
(3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
(4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。
缺点
Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。
综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。
Pascal语言简介
Delphi简介
方案三 C语言 Visual C++
优点
(1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
(2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
(3)VC是微软制作的产品,与操作系统的结合更加紧密。
缺点
对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业沟靡话愕谋喑贪 谜哐 捌鹄椿嵊胁恍〉睦 选?
综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。
C语言简介
方案四 C++语言 C++ Builder
优点
(1)C++语言的优点全部得以继承。
(2)完全的可是化。
(3)极强的兼容性,支持OWL、VCL和MFC三大类库。
(4)编译速度非常快。
缺点
由于推出的时间太短,关于它的各种资料还不太多。
综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。
C语言简介
方案五 SQL语言 Power Builder
对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。
、《计算机组成原理》(熟悉)
2、《数据结构》(掌握)
3、《操作系统》(了解-熟悉)
4、《The C language》(掌握)
5、《编译原理》(了解原理)
6、《汇编语言》(了解)
7、《计算机网络》(了解)
8、《软件工程》(了解)
9、《关系数据库》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
1、《The C Programming language》 (Keinighan Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向对象高效编程》
8、《设计模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推荐)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技术内幕》
14、《MFC 深入浅出》
15、《软件需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序员参考手册》
19、《用TCP/IP进行网际互连》
20、《COM 本质论》