海田1 发表于 2021-2-6 22:04

想自学一种编程语言,各种编程语言都有什么区别?

想自学一种编程语言,各种编程语言都有什么区别?

忆困血馆闻 发表于 2021-2-6 22:07

比较重要的区别是编程范式(programming paradigm):
图源 Peter Van Roy https://www.info.ucl.ac.be/~pvr/paradigms.html

我是来围观的逊 发表于 2021-2-6 22:15

把编程比作做菜吃饭的话
机器语言自己种地种麦子,自己取火,自己打猎。
汇编自己磨面,自己杀鸡,自己做面条 ,自己找锅。
C一把菜刀一口炒锅,一个很好用的灶,隔壁有个菜市场。
java碎菜器,切菜机,绞肉机,和面机,烤箱,微波炉……
php 麦当劳的后厨。在快餐方面口味和效率综合起来确实很好,但让它秀个刀功煲个汤它就很尴尬了。
python 大超市的速冻柜台,要成品有成品,要半成品有半成品,什么都有。如果你足够懒,甚至不用关心这东西怎么做的,用什么材料,只管吃就行。加工食材方便,微波炉按几个钮。它能让你快速获得一桌还能吃的饭,但是深究口味火候什么的不那么容易。
javascript 之前是一套很好用的野营炊具,可惜灶台是纸糊的,干不了大活。后来google给它换了个钢的,现在能干的事情越来越多了。
C++一套顶级厨具,光刀就十几把,切肉的切片的雕花的。。。锅有爆炒的闷烧的平底煎肉的煎蛋的炖汤的。。。 这套东西在大神手里那是相当趁手,理论上可以做出任何食物。一般人用着嫌麻烦,能改用别的就改别的了。有人试图用二十一天掌握这套工具的用法,结果往往是玩刀伤了自己,或者是炸了厨房。
易语言额,硬要形容下,你知不知道美国有个爆款中餐叫左宗棠鸡


补充:
c# 一套跟java很类似的设备,可惜打了微软的标,拿去开店要给微软加盟费。好用虽好用,但是不太受业界待见。
主流语言基本就这些了吧,函数式没怎么接触过,不敢乱说。ruby国内太小众。


至于学什么,学C好比学烹饪的基本原理,想成为专业厨子,肯定跳不过这个步骤的。数据结构和算法可以跟着一块学了。
如果想要急着解决实际问题,赶时间,python无疑是最简单的。
java是一个平衡点,比python严谨,比c和c++开发起来更有效率,而且严格的面向对象,也更加适合做大型工程。急着找工作可以先学java。

123456825 发表于 2021-2-6 22:23

如果题主仅仅想问各种编程语言有什么区别,那么下面这个图可以完美解决。
首先我先表个态,人生苦短,我推荐Python或者C++,正好这里有两套很适合的学习资料,Python的话学习进度快,能很快看到成效。C++的话更需要前期的积累,当然如果学到后面, 这门语言也很强大。
这个图的名字是:Which Programming Language Should I learn first?


这个图要按三层来看:


第一层 介绍了一共九种主要的编程语言:
Python,Java,C,PHP,C++,Javascript,C#,Ruby和Obeject-C


第二层 介绍了一个路线图
从start开始,根据自己的需要,所有的分支节点对应着一种编程语言
就拿下面这个例子来说,Start-> 想提升自己/感兴趣/就是觉得好玩->有一个idea->倾向于去学点东西(机器学习,数据分析,计算机视觉等等)
-> 最简单的方式   -Python
-> 最好的方式 - Python
hah,能看到的很多条路线的终点都是Python, 所以我在这里劝一句, 人生苦短, 用Python吧


第三层介绍了每种语言详细情况
包含了:
学习难度 - 由易到难,python最简单,object-c最难编程语言特性介绍 - 这个大家可以自己了解流行度 - 又是python夺得头筹薪资水平 - python 又一次夺冠,当然这主要基于美国的薪资情况
写到这里,我就不得不推荐下学Python了。
前两天刚好回答了这个问题,在这里我把主要内容摘抄出来,当然你也可以直接转到完整答案:
如何系统地自学 Python?另外我作为从本科到现在读博一直是计算机专业,其间也接触过很多的其他专业同学,或是想转行,或是想给自己增加一门技能,都咨询过如何学习python这个话题。通过这个问题,我也将之前的思路理一遍,同时也希望给想要自学python的同学一个完整的教程。
以下是我回答的大纲:
Python是一门怎么样的语言,为什么很多人都推荐?

步骤1:找出促使你学习Python的动机

步骤2:学习基本语法

步骤3:进行结构化项目练习

步骤4:自行探索Python发展路线

总结:Python是一种非常有趣且有益的语言,我认为只要找到合适的动机,任何人都可以熟练掌握它。



同时,如果想要学习其他语言,还有一个另外一个回答,这个项目包含了几乎所有主流语言的各种不同的项目,包含了从方法到代码的所有介绍。
https://zhuanlan.zhihu.com/p/267621138

最后:
学习了方法论之后,记得去下载一些优质的学习资料。
<a data-draft-node="block" data-draft-type="ad-link-card" data-ad-id="ZhiTask_543561567665639424">

勇敢的树袋熊1 发表于 2021-2-6 22:23

我自己在五六年前开始自学编程,那个时候就简单学了一些Python,慢慢也就就上手了,后面继续慢慢学,慢慢体验,随之也转到了计算机专业。我就来说说我对自学编程的看法吧。
这个问题下很多不错的回答,也都讲了各个语言的差异和相似的地方。我就说说,咱们自学编程应该用什么样的心态和方式吧。
至于编程语言的选择,其实是要看你将来想从事的方向,就个人看法来说,完全自学的,先把Python学明白再说吧。还有一点就是,如果你是个新手,给你讲一堆语言之间的区别,你估计也看得云里雾里的。还是先从基础打起,遇到问题,自己再多查询和深入了解。正所谓,万丈高楼平地起嘛,咱们先不慌去了解全貌。
先建立一些信心,然后再不断拓宽。要不然,一开始就学比较难的内容的话,估计坚持不了多久就放弃了。
跟着人学也更容易上手一些,这门课程有需要的小伙伴可以跟着学起来:


自学编程需要注意什么呢?
我觉得最重要的就是建立一套获取信息的能力,然后将信息去伪存真,抽象成代码的能力。并有长期坚持学习的动力。
这个其实和自学不自学没关系,科班的也得掌握这门一套体系,才能在不同的场景下,都能找到最关键的东西,从而将项目推动下去。
对于自学的人来说,最难的肯定是入门,不知道学哪些东西,不知道哪些东西最重要,也不知道怎么去进一步提高自己的能力。
很多时候,就在入门打转,没法深入。我感觉我就一直处于入门,就没啥大的进步。
首先,我觉得最需要注意的就是,别去一味地区分科班还是自学了。
我们想通过自学编程,目的肯定是想找到一份工作,从而能将所学的计算机知识具体实践到项目中去。没有哪一个项目会去区分这个是自学的人写出来的项目,这个是科班的人的项目。项目就是项目,会用同一套标准去要求写代码的人。不管你背景如何,大家都应该写风格相近,通俗易懂,质量高的代码。
所以自学的人,就需要不断去缩小和科班的人的差距,多和优秀的人学习,学习他们解决问题的方式。从开源代码中学习好的实现方法。
其次,自学编程,要把学过的东西不断整合。
计算机的东西其实都是一个整体,只是我们学的时候一股脑学不完。时空的trade off在各个系统里面都会用到。虽然我们把课程划分成数据结构,算法,操作系统,计算机网络等等。但如果我们需要写代码去实现这些课程的项目,他们的底层的逻辑都是相通的。写代码的时候,不会因为你换了一个场景,之前的经验就不奏效了。还是同样的思考方式,只是场景不同了而已。
所以掌握好一套核心的计算机基础知识,并把这些知识用到不同的场景下是很重要的。
第三,自学有了一定基础之后,一定要多学习好的网络课程,包括多看书。
我觉得2010年之后,对于那些有志于自学计算机的人来说,不要太幸福了。各种网课我们都可以找到,来自世界名校的上千门课程供你选择。足不出户就可以享受到别人花好几万刀才能听到的课程。
我们自学的话,和科班的区别就是知识零散,不成体系。但如果我们能找一份必须完善的课程大纲,跟着学完,从这些nb的老师身上学会正确的计算机思考方式,抽丝剥茧似的去真正学习计算机课程的话,对我们的思维来说是一种洗礼。也能让我们少走弯路,加快对系统知识的掌握。
第四,编程的目的就是要去实践,写项目。
所以,多把想法转换成代码吧。写多了,就知道好的代码和差的代码的区别了。而且,所以的写代码的坑你都踩过了,那你debug的能力也就随之提高了。nb的人有时候nb就在于你遇到的错误,他都遇到过。他更能快速定位,迅速解决问题。经验这个东西,是要靠累积的。
最后,多和优秀的人交流。
听君一席话,甚读十年书。这个其实在编程里面也是适用的。nb的人总是有他们独到之处,多从优秀的人身上学习总没错。其实这一点和多听网课是一个道理。很多网课的老师对他们所教的课程的理解和布道,能让我们更清晰地学习那些知识。
最最后,学任何东西都不是一蹴而就的,一定要坚持。
不花个三五年,其实是很难有成效的,这个不管是学啥技艺都如此。如果你身边有很多编程大牛,人家代码写得飞起,各种知识掌握得很扎实,那可能是因为人家从中学甚至小学就开始学习计算机知识了。
Again,针对自学的小伙伴来说,先别学难的。咱们先学一些简单的,看看是不是合适学习计算机,别好高骛远。
<a data-draft-node="block" data-draft-type="ad-link-card" data-ad-id="ZhiTask_516896711126495232">

我自己学习计算机的摸索过程,分享给大家:
一个不是很了解CS(计算机科学)的人,该从哪里开始自学CS?

luly靓 发表于 2021-2-6 22:24

编程语言的选择主要是取决于所在的行业,我本硕机械毕业自学编程找工作了解到,机器人、自动驾驶、工业软件等与自动化相关的行业几乎都是用C++,那我就果断选择C++开始自学,最后找到机器人C++软件工程师的工作,C++的特点就是擅长开发高性能软件和算法,但缺点也很突出就是难学。如果是人工智能行业,侧重点就与一般的软件开发不同,机器学习、深度学习、大数据等对数学的要求非常高,编程只是实现Idea的工具,很多情况下就是编程搭建原型系统验证一下而已,这就要求编程要简单简洁,Python就是这样一种受科学家、算法工程师、数据分析工程师等专注于模型的领域小伙伴儿的热捧,Python是面向初学者的编程语言,也号称胶水语言,不像C/C++修改一次都要编译debug好久,Python几行代码就可以解决复杂的问题。
学习编程首先需要找个风向标,了解一下软件工程师做的非常酷的事情,看一下SpaceX的龙飞船开发过程中主流的编程语言都是怎么配合发挥各自作用的,可以很明显的看出来,编程语言没有好坏之分,只是应用场景不同罢了。纠结与选择何种编程语言是非常没有必要的事情。
SpaceX的龙飞船相关的软件开发
Java和JavaScript是互联网领域应用非常广的两个编程语言,Java主要是应用在企业软件开发的后端,而JavaScript主要应用就是前端开发。企业软件最关键的是可靠性和开发效率,这两者的比较容易实现的方法就是基于成熟的框架做开发,程序员只需要关注业务逻辑即可。前端主流的开发框架有JQuery、Angular、Vue、React等等。后端基于Java的主流框架就是Spring Boot。
主流的编程语言
1、 C/C++,可以简单的认为C++是C的超集

C/C++的特点和难点C/C++之所以长盛不衰就是这两者在高性能软件开发方面有绝对的优势,游戏引擎、矩阵计算、数据库管理软件等等对性能有极致追求的场景下都有C/C++的身影。C语言是面向过程的,而C++是面向对象的,可以简单的理解为面向过程的方式抽象程度低于面向对象,因此面向过程的开发效率也低于面向对象的开发,因为面向对象的程序设计支持继承、多态等特性可以复用大量的code,而且代码容易组织。C和C++最大的难点就在于指针,C/C++是有程序员管理内存,也就是内存的申请和释放都需要写代码的时候注意到,给你自由过了火就容易造成内存泄露问题。C/C++的程序调试过程中由于空指针等问题容易产生段错误造成程序崩溃,C++为了更好的解决内存管理问题引入了智能指针的工具,智能指针就是对原生指针的一个封装。
C/C++的开发环境常用的开发环境有Visual studio、CodeBlocks、Dev c++、CentOS、Ubuntu。在windows平台下主要是用各种IDE,而Linux本身就是一个开发环境,服务器一般是用Linux发行版之一CentOS,机器人等嵌入式程序开发经常用Linux另一个比较热门的发行版Ubuntu。Linux平台下编译和调试非常简单,编译C++程序一个g++命令就可以搞定。如果有兴趣向机器人、人工智能、服务器程序开发等方向发展的话,在Linux平台下学习C/C++程序开发是非常有前景的。推荐一个快速了解学习C++的资料,ACM亚洲区金牌得主C++服务器端程序开发大佬,带你快速get到C++的学习路线,还有一些Linux、算法、面试等技巧等着你哦。
编程学习都是想进大厂的,毕竟大厂旱涝保收而且待遇确实高,正在困惑如何自学C++进大厂的小伙伴儿推荐看一下:
大厂接触项目多,成长快,一般也有人愿意带你,培训也比较全面,日常工作流程规范。
分析一下计算机的发展历程是非常有意思的,刚开始计算机非常庞大很多人共用一台计算机,随着集成电路的发展计算机体积越来越小价格越来越低,几乎每个人都有一台电脑,人手一台电脑又会带来新的问题,办公室如果每个人都用同一个软件那每一台都要安装那个软件,这就带来很多维护的问题。随着云计算的发展,现在开始出现SAAS(软件即服务),如果需要使用一个软件直接通过浏览器访问云端资源即可,相当于即插即用。服务器运行的基本都是CentOS,因此学C/C++在Linux平台下的开发前景是不用担心的。
云计算SAAS/软件即服务模式
基于C/C++在开发的主流程序游戏开发引擎Unity基于C++开发,Unity只是其中非常有代表性的一个基于C++开发的有效引擎,Google搜索一下可以找到至少100个基于C/C++开发的游戏引擎,这就是C/C++性能强悍的明证。
计算机图形学OpenGL基于C开发,OpenGL有哪些应用呢,像PhotoShop,AutoCAD等等。
开源数据库管理软件MySQL基于C/C++开发。
C/C++的招聘面试题C/C++主要是开发高性能算法或软件,高性能算法和软件就需要非常扎实的数据结构与算法功底,大厂招聘C/C++工程师必考数据结构与算法能力。下面就是腾讯和快手的部分算法面试题,从这些面试题中很容易理解,编程远远不止编程语言,编程语言仅仅是冰山上的10%,再复杂的数据结构与算法面前编程语言那些技巧几乎发挥不了作用。
C/C++如何自学呢?学什么呢?学到什么程度才能找到工作呢?大家学习编程首先纠结的就是选择什么编程语言,这是非常没有必要的事情。通过以上的分析发现编程语言仅仅是冰山上的10%,冰山下的90%都是与编程语言没有关系的数据库、计算机网络、计算机体系结构与组成原理、数据结构与算法、编译原理等等。但分析大厂的面试题发现,重点考察的是数据结构与算法、数据库等实践性要求高的科目。以这样的思路推理出来的编程自学思路就是,选择一个自己擅长的编程语言即可,比如工科一般开设C语言课程,那直接用C语言把数据结构与算法基础补起来就可以了。数据结构与算法是背不会的,牛客和Leetcode等算法刷题网站上都有上万道算法题,而且每年面试官都会研究新的算法题,想通过面试只能提升能力,靠运气是不太可信。
算法题这么多,怎么刷呢?刷题最终目标是找工作,那就从热门的面试题开始刷即可。牛客和Leecode都列的有高频算法面试题,算法题和数学题一样也经常有一题多解的情况,简单点的算法题面试官可能会重点考察时间复杂度和空间复杂度,如何设计一个时间和空间复杂度都最优的算法也是需要非常强的基础才行。


牛客高频算法面试题
Leetcode高频算法面试题
编程的学习纠结过多是没有任何实质性意义的,Linux大神Linus Torvalds的一句名言就是"Talk is cheap, Show me the code.",编程只能coding才能提升能力,看书只能帮助你理解一些基本的概念,比如堆、栈、多线程等等。
2、Python

特点Python的特点就是易学易用,成熟的库非常多,Python主要就是作为一个数据处理、算法快速验证的工具,比如科研测试的数据一般存在txt或者Excell文件中,如果借助于一般的软件手动操作非常繁琐,而且实验重复一边,数据的处理依然是要消耗大量的时间,这时python就是绝佳的选择,实验重复数据类型变化不大,这就是适合用程序处理。下面这段代码展示python如何读写txt文件,几行代码非常简洁,没有C/C++、Java等语言的严格要求。
Python读写txt文件
Python不仅读写txt方便,处理Excel数据也是易如反掌。
Python读取Excel。
Python有哪些应用领域呢?Python之所以火就是借助于深度学习、机器学习等人工智能,机器学习领域常用的开发框架TensorFlow主流的开发语言就是Python。下面是基于TensorFlow框架的一个demo,可以非常直观的感受到Python就是类似作业本上的数学公式,编程简单了就有大量的精力可以专注于研究前沿文献,提出新的改进策略等等,而不是像C/C++一样每天处理大量的bug,这就是编程语言的分工,抽象层次不同就决定了其应用场景。不管是在校的小伙伴儿,还是已经工作的同学,现在的职场竞争越来越激烈,很多时候都是一个人干几个人的活儿,如果你掌握了高效的办公工具那就是你的核心竞争力。想学习简单的编程解决重复性工作,提升工作效率,或者想掌握一门技能,提升职场竞争力,也有小伙伴儿想跟上 AI 时代发展,不被社会淘汰,现在小学生都开始学习Python编程了,还有很多基于Scratch的图形化编程,在机器人教育领域应用比较广泛,编程也许可以助力你突破职业发展瓶颈,发现更多职业可能性。
推荐一个适合Python入门的资料:
<a data-draft-node="block" data-draft-type="ad-link-card" data-ad-id="ZhiTask_520211754219958272">大家了解python很多都是从人工智能开始的,实际上python也可以做界面应用程序、web开发等等。
python如何学呢?Python编程语言简单,那学习的难点就不再是编程语言,而是项目经验和理论基础。比如基于深度学习、机器学习、视觉等算法搭建一个demo,实现前沿paper的算法。如果能在别人paper的基础上创新做出一篇paper找工作的时候也是加分项。
python常用的开发环境。Eclipse+PyDev插件,Komodo Edit、Vim、Sublime Text、Pycharm等等,如果是在Linux平台下做开发Vim是比较好的选择。
3、Java

Java的特点Java和Python类似,都是解释运行,而C/C++是编译后运行,所以C/C++是静态语言而Java、Python是动态语言,动态语言的缺点就是效率比静态语言低,但Java突出的优势就是跨平台,Java是运行在虚拟机上而不是在操作系统中直接可以运行。
Java的招聘要求现在互联网的发展已经进入了下半场,快速地争夺市场依然是互联网的主基调,那反应到Java软件工程师的要求上就是写代码的速度要快,怎么快呢?自己造轮子肯定不行,当然是依托成熟的框架,比如Spring Boot等等。
Java对项目经验要求比较高,一般企业招Java就要求直接上手做项目的,毕竟企业软件很多是业务逻辑不需要复杂的数据结构与算法,缺少Java实战经验的小伙伴儿推荐看一下:
Java学习要求短平快,Java基础掌握以后快速地学习Spring Boot等主流框架积累项目经验才是找工作的王道。
Java开发框架到底是什么呢?简而言之,开发框架就是一堆内置的code,只需要添加一点自己的业务逻辑就可以快速生成自己的应用程序。
为什么大量应用框架呢?有了框架各种奇怪的bug就少很多,容易开发出健壮性强的系统,对于复杂的系统优势更加突出,技术方面难度降下来了,就可以重点关注业务逻辑是否科学合理。
Spring框架的应用不仅仅局限于服务端程序开发,从简单性、可测试性和松耦合性角度而言,Spring框架可以让很多Java应用变得更高效。
Hibernate呢,就是一个开源的对象关系映射框架,解决了JDBC不能支持对象层次关系的问题,它可以自动生成SQL语句,自动执行,这样Java程序员就可以非常方便地使用面对象编程思维来访问数据库。
Java怎么学呢?先搭建Java开发环境,常用的开发环境有IntelliJ IDEA、Eclipse、NetBeans、Android Studio等等。找到下面这个的Java工程师所需要的技能树,以Java编程语言为突破口逐步向外围知识拓展就可以了,看到下图就容易理解为什么互联网行业那么辛苦,Java开发就牵涉到spring等很多框架,技术大牛们时刻都在想着创造新的工具提升开发效率降低开发难度,现在已经在提无代码编程。找工作的学习必须具备时代性,盯着课本学习远远不够,需要搞清楚市场的主流技术框架有哪些。
Java常用容器直接的关系。
Java常用的容器
Java后端开发的学习的路线大致是下图样式的。
后端开发学习路线
Java运行在Java虚拟机上/JVM,JVM是Java学习的灵魂,面试几乎必考JVM,下面是一些Java的高频面试题,学习的时候就可以带着这些问题去学Java,单纯的学习是很难坚持的,编程就是一个工具就是为了解决问题。Java面试题也是分层次的,有Java基础题,也有Spring、Hibernate等框架相关的题,难度比较大的还有异常处理和多线程。
Java在JVM上的运行过程是这样的。JVM的架构是这样的。
Java原生方法接口可以实现对C/C++程序的调用,通过动态链接库直接可以调用C/C++程序,这是非常方便的。这就是前面SpaceX用到非常多主流编程语言的原因,每个编程语言都有其擅长的地方,C/C++擅长与硬件接口和高性能程序开发,通过Java调用C/C++开发的功能模块即可。
4、JavaScript

前端工程师的学习路线图。前端开发学习路线
前端学习和面试需要注意的一些关键点。前端的学习也是需要了解一些基本的数据结构原理,比如Map、Set等等。
前端工程师常见的招聘要求。前端主流开发框架。主流的前端开发框架
看了这么多、想了这么多、纠结了这么多不要忘了编程学习所有的技巧汇聚成一句话:Just keep coding.

落败的青春阳落s 发表于 2021-2-6 22:25

门外汉搬运工

普通人物怨 发表于 2021-2-6 22:30

这是一个典型的 XY problem,从题目描述来看,题主是想知道作为初学者(这里按照题目描述假设题主没有任何计算机相关基础)应该怎么选择编程语言。 然而问题的标题却是在让大家对各种语言做对比。

诚然知乎上有很多聚聚能给你做一番对比,像 @Milo Yip 给的图就很有意思,但仅对有一定基础的同学而言有意思,对初学者来说可能就是 "这些都是什么 " 的一脸懵逼。

事实上根据我的经验,第一门编程语言的选择没有想象中那么重要,在你做这个选择的时候,更明智的方向是,分析自己手头有哪些资源能对你学什么语言最有帮助,而不是去对比这些语言本身。 比如你认识某位愿意花时间指导你的大牛,那你就跟他学好了,这比挑一门对比出来自认为 "最优秀" 的语言然后自己啃要好。

相比于纠结于第一门语言,更重要的是一个开放的不断学习的心态。

十二音阶囤 发表于 2021-2-6 22:31



嗯嗯,以上娱乐为主啦。
其实目前比较热门,然后入门相对快一点的就是Python啦。当然,如果是时间比较宽裕,可以先学习Java或者C语言之类,这样以后基础相对更加牢固。
关于这些语言呢,我们这边都有免费的入门教程,是在线的Linux环境,不用你配置了,可以点开网页就跟着指引操作学习。你可以多体验几种不同的语言,亲身去感受一下。
C 语言入门教程
Python3 入门教程
C++11/14 高速上手教程
Java编程语言入门
PHP 编程入门
Javascript基础入门
Go语言编程入门
Ruby基础入门


其实最主要的,还是要看你网哪个方向走,未来想要做什么样的工作,然后再去选择语言。
当然,还有一种情况就是,自己也不知道应该做什么样的工作,适合做哪个方向。这种情况的话,那就只好去尝试了,但是永远不要忘记,尝试是有很大成本的,所以一旦打算尝试,就要尽全力,说是试试,千万不能抱着试试的态度去学习。怎么试?以下面为例:
尽全力学完这个课:12周从0基础到Python工程师,评估一下自己的感觉,不错的话,可以去找初级的工作了,然后再慢慢积累。
还有比如周期更短的:6周成为机器学习初级工程师,都可以去试试看。


因为你没有具体说明自己当前的状态,以及学习语言的具体目的。所以不好再进一步做出建议。以上,希望对你有所帮助。

永远就三年疗 发表于 2021-2-6 22:34

这个怎么说呢?
首先,当前主流编程语言分为11个大类,分别为:
解释型(PHP,Perl,Python,Ruby,Tcl,Lua,JavaScript,Io)
操作系统自动化型(POSIX Shell,AppleScript,PowerShell)
C++风格(C++,Objective C,Java,C#)
Pascal风格(Pascal,Ada,PostgreSQL)
Lisp类(Common Lisp,Scheme,Clojure,Emacs Lisp)
类型推理类(Standard ML,OCaml,Scala,Haskell)
声明型(Prolog,Erlang,Oz)
Concatenative语言(Forth,PostScript,Factor)
数据转换(SQL,Awk,Pig,XSLT)
计算机代数(Maxima,Mathematica,Sage)
数字分析类(Fortran,MATLAB,R)
好了,说完了。至于区别嘛,我觉得这个没有必要深究。总的来说:
C语言是计算机界的常青藤,而且执行效率高,用于写底层的驱动那是再适合不过;
C++是很强大的,只要你是个高手,你几乎可以利用C++完成任何事情;
Java取消了指针,这是应该喜还是忧?喜的是,没有C或者C++那种对内存繁琐的操作,而且也降低了很多致命性的错误发生的概率。忧的是,效率大打折扣,采用虚拟机的方式使得Java有跨平台的特性,必然会使得效率降低。
另外一方面,你借别人的东西使用(内存),是不是应该还回去呢?从这一方面考虑,C或者C++的设计思想更有意义。
根据世界编程语言排行榜,Java长期排名第一。
而Python,则是编程小白入门的不二之选。优点如下:
1.简单,python主张的是极简主义,学python就像在学英语一样。
2.易学,学习python并不难,入门很快很简单,比c++,java容易多了。
3.开源,python是免费开源产品,你可以自由地发布python这个软件,不用担心盗版和侵权。
4.自动内存管理,内存溢出一直以来都是很头疼的事情,而python则是自己自动管理内存的。
5.可以移植 ,python无论在windows和linux上都可以直接运行。
6.可扩展,python还可以嵌入其他的语言,比如java和c++等。
因为你是小白,所以建议还是选择Python。对了,可以看看经典python教程入门到精通 400全集:应该对你有帮助,我也在学习中,可以说是录制得很用心了~加油啦。祝你入门顺利~
哈哈,最后这张图才是重点。所以,你懂的。
页: [1] 2 3
查看完整版本: 想自学一种编程语言,各种编程语言都有什么区别?