C C++ Python哪个更适合新手?
程序员文章站
2024-01-29 11:39:22
...
题主准高二了。以后想上软件类的专业。
对于一个将要以编程为生的人先学Python合适吗?还是说最好从C ,C++ 入手呢?
学了Python之后再来学c会有影响吗?
请各路大神结合题主的实际情况解答。
首先c语法简单,但是因为接近底层,所以你会对编程的好多本质有所了解,比如内存的本质,程序运行的本质,指针强准的本质,关键是这些都不难,多用一用就能理解。但是c也只适合入门了,因为他开发效率偏低,解决问题时,花费时间长,也就是开发效率低(当然执行效率高)。
因为c的运行效率高,经常会被用作开发操作系统,而且操作系统也不需要c++那样花哨的语言特性。当然,一般人不会接触到操作系统的开发……
python就是一个瑞士军刀,好像什么都能做。但是你要拧螺丝的话,是瑞士军刀的好还是独立螺丝刀好?肯定是独立螺丝刀好用!但是有了瑞士军刀,拧螺丝这个事又不是很急,何必非买独立螺丝刀呢?而且瑞士军刀用起来可能有些不方便,但是肯定比出门买个独立螺丝刀要方便啊!这就是python的最大优势,他有非常齐全的库,官方的也好第三方也好,经过十几年的积累,这是一个庞大的集群。因为python语法简单,甚至接近伪代码,所以python对我来说是解决问题一用的,达成目的即可,其他的?shut up!
c++是最不适合作为编程入门的,因为他的规则太复杂了,对于新人来说,当学习时这些东西扑面而来很容易把人吓蒙的!什么是显式构造、什么是拷贝构造、析构函数为什么要virtual、虚函数是什么、虚基类是为了什么存在的、运算符重载的规则是什么、指针和引用的区别、模板有那些黑魔法、标准库究竟会干些什么…… 不得不说它的很多特性,让编程变为像魔法一般的存在,当使用者念咒语施放魔法时会产生非常强的成就感。但当你对咒语一知半解时,一旦犯错你需要翻经阅典花费大量的时候来搞明白。
所以我建议先从C开始,了解基础语法之后尝试更深入地了解本质,这对你接下来学python有好处。然后学学python,并用python尝试去做一些事情,你会发现python的强大。最后学C++,虽然上面说了C++的语言魔法太复杂,但在当前市场下,C++程序员的需求量还是很大的,因为C++得益于他比C更快的开发效率以及python等脚本语言所无法比你的运行效率,使其成为市场的一个刚需。 可以从c入手,这个语言比较简洁,基本的概念你都能学到,比如内存管理。而且学完了这个,你对Python 里面的很多东西都有更加深刻的认识,比如迭代器,生成器等等…不然恐怕总是格了一层什么东西,看不透这个语言。
最主要的,你还很年轻…世间很多,从基础开始吧。
C++太庞大了,里面涉及了太多东西,一上来就学,可能感觉有点蒙 题主你是把java给忘了? 还是推荐楼主先学C语言吧!
对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。也许你将来的工作或学习不会使用C语言,但是它能让你了解编程相关的概念,带你走进编程的大门,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话。
C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。
正是由于C语言的简单,对初学者来说,学习成本小,时间短,结合本教程,能够快速掌握编程技术。
对于初学者,学习C语言还可以顺便了解很多计算机的运行原理,为后面的学习夯实基础。
C语言不但运行效率高(比C++、Java都高),而且应用广泛,可以用来开发桌面软件、硬件驱动、操作系统、单片机等,从微波炉到手机,从汽车到智能电视,都有C语言的影子。
在世界编程语言排行榜中,C语言大部分情况下排名第一(偶尔会被Java夺得宝座)。
所以说,学习一门年龄比自己还大的语言很有必要(C语言诞生于20世纪70年代初)。
当然,C语言也不是没有缺点,毕竟是70后老人,有点落后时代。
最近几年,有一门新的语言异军突起,夺得了大家的眼球,它就是Python。
在我们开始学编程的时候,Python并不是那么“甚嚣尘上”,中文资料也不多,绝大部分人还是从C学起,大学的课程也是这样安排的,先学C、再学汇编、C++、Java等,把C作为一门基础语言。
现在情况不同了,有一部分初学者放弃了C,从Python开始学起,认为Python简单,容易学习,不像C那么晦涩。
其实,Python 的“简单”主要是指代码格式清晰,语法没有那么严格,例如,在屏幕上显示“C语言中文网”: print "C语言中文网" 对比C语言的代码: puts("C语言中文网"); 你看,Python不需要括号,也不需要最后的分号。
但是,不要被误导了,Python涉及到的编程概念和编程思想并不简单,比C语言要多要复杂。以我的实际感受,Python的学习成本并不比Java、C++小。
任何编程语言都一样,不管是你的学长学姐告诉你简单,还是你自己认为简单,其实都是错误的观念,不要被这些观念误导。
你可以认为X语言比Y语言在软件开发方面更加优秀,或者M语言比N语言在数据挖掘方面更加方便,但是绝不能认为哪一种语言更加简单。每一种编程语言都有自己的应用领域,要学习合适的语言,而不是“简单”的语言。
总之,我不认为学习Python的成本比C小。
值得一提的是,Python也是用C来开发的,如果你希望更好的学习Python,那么肯定也要学。 有个词叫,类c语言,
一定程度上承托了c语言的地位,,, 个人觉得都不如汇编啊 专心高考,考完了再开始学习。
首先,C/C++/Python学哪个都无所谓,但他们都不是基础,基础是数据结构,微机原理,信息论,也就是数学
语言层面上,建议你先学Python,兴趣很重要,能快速做出东西,有成就感,建议参考Python教程 - 廖雪峰的官方网站。
一个合格的软件开发人员,至少掌握>3门语言,学完Python,可以继续学C,Java,JavaScript,Lisp等等。 纠结毛线,哪本便宜买哪本。 先把C最基本的东西学会,然后Python就极容易上手了——用Python做过一些练习之后再上手C++就容易多了 大二狗,程序猿,搞过ACM,做过小项目。
首先对于题主在高二就想学习大学的内容表示鼓励,同时也希望题主能够先优先照顾好自己的高中学业,毕竟高考胜利了,你才能进到好的学校并*选择你喜欢的专业。
以下是正题:
首先反对初学者学Python,Python(以下简称P,手机打字太辛苦)是一门非常好的编程语言,我目前也有所涉猎,其中完善的语言结构,简洁的代码规范,都让P有了更容易上手的特性,对于任何一个初学者来说,P都是相对于C++或者Java更容易理解的。
但是!对于一个要当程序猿的初学者说先学P,绝对是耍流氓,用P可以快速建立起项目,做出程序,这种满满的成就感适合于用来培养学习兴趣,但绝对不利于培养完善的编程思想,这对一个程序猿是不利的。
C++和P是高级语言中的高级语言(相对于C而言,事实上C++和P并不对等),其中很多数据处理的实现已经被高度封装,比如排序,大数处理,一个类方法就可以实现,一个函数就可以实现,学的时候看不到底层实现,光记住函数名字和参数就可以使用,但还是那句话,这对一个要当程序猿的初学者来说是不利的,因为他没有办法了解数据在程序内部是如何实现的,没有办法了解程序是如何组织数据的,没有办法在多个不同的排序中找到合适的,没有办法学会如何对数据进行组织,尤其是P,在初学阶段,P的变量并不需要明确定义,对于变量的使用不需要声明,是一种动态类型绑定的形式,初学者甚至没有办法通过P了解各个基本数据类型之间的区别,这种问题在现在来说,都是致命的。
我相信在以后的发展趋势都是高度封装和弱类型,但对于程序猿,一上来就学*的语言,无疑是不可取的,业余时间玩一下培养兴趣的人另说(那样的话我觉得VB或者易语言更好)
我的建议是学C没有之一,C是目前用得最广泛的面向过程语言,所有的高级语言的语法结构都有C语言的影子,C是所有学习高级语言的基础,C语言没有方便的函数封装,没有高效的垃圾自动回收,所有的实现都必须自己一个代码一个代码敲,但正是如此,你可以通过C语言学习到基本数据类型之间的区别,学会如何操作内存(指针),学会自己实现各种数据结构,比如链表,树和图,学会自己实现排序,从冒泡到快排到堆排序,简单来说就是从最最基本的走路开始学起,培养起完善的编程思想,包括对变量的精打细算,对时间复杂度的精打细算,对代码的一种强烈的语感。
是的,当你学完了一轮C和数据结构之后,再去接触类似C++,P,Java之类的语言,你就会发现,很多主流的语言都用了类似的编程思想,差不多的实现方式,数据组织方式也大同小异,上手的便捷程度不是一般可以想象的,就好像Java和C++,对于一个没有学C的人来说,就是两门不相干的语言(这个观点来自我一个都技校的同学,他是直接学C++),当对我来说就是同一种东西换了不同的说法,这种语感对于以后要学习大量新语言的程序猿来说无异于是葵花宝典。
所以结论就是,先学走再学跑,跑虽然快,但是没有走这个基础,不仅不能举一反三地体会如何能跑得更快,万一摔倒了怎么办,你能爬起来接着走吗?
-----------------------------------------------------分割线-----------------------------------------------------------------------------
补充:首先,学什么语言来入门都可以,只要是一门成熟的高级语言,但我的核心思想是:算法很重要!炒鸡重要!!编程=算法+数据结构,这个应该是没有什么争议的,什么语言都一样,所以初学者如果已经坚定了自己的信念和兴趣,已经脱离了培养兴趣的阶段,那么我想,从初学就开始接触算法实现和数据结构实现一定是个不错的选择,是的,C++和Java和Python都已经给了非常成熟的函数和方法给你们直接用了,这是否有利于算法的学习呢?算法实现实际上就是一个过程的模拟,很好,C语言就是个面向过程强调过程的语言,如果你抛弃了C++,P的函数和工具包来学习数据结构和算法,当然就什么语言都OK 啦,但那不等于是C语言嘛,再加上现在C语言仍然牢牢占据排行榜第一,学习价值非常高,又何必不从C语言学起呢?
然后就是,评论区我都是就着别人的问题来讨论的,所以有时候有很多不太严谨的说法,可能会带给一部分人误会,实属无意,只是因为你没有在那个思路上,换位思考一下应该能懂我想表达的核心思想的,细枝末节的字眼就不要太纠结了,如果有定义错误或者原则上的错误,请一定指出,毕竟我也是一名求学者,没有办法做到事事精通,还请各路大神体谅。
回复内容:
个人觉得是先学c,再python,最后c++首先c语法简单,但是因为接近底层,所以你会对编程的好多本质有所了解,比如内存的本质,程序运行的本质,指针强准的本质,关键是这些都不难,多用一用就能理解。但是c也只适合入门了,因为他开发效率偏低,解决问题时,花费时间长,也就是开发效率低(当然执行效率高)。
因为c的运行效率高,经常会被用作开发操作系统,而且操作系统也不需要c++那样花哨的语言特性。当然,一般人不会接触到操作系统的开发……
python就是一个瑞士军刀,好像什么都能做。但是你要拧螺丝的话,是瑞士军刀的好还是独立螺丝刀好?肯定是独立螺丝刀好用!但是有了瑞士军刀,拧螺丝这个事又不是很急,何必非买独立螺丝刀呢?而且瑞士军刀用起来可能有些不方便,但是肯定比出门买个独立螺丝刀要方便啊!这就是python的最大优势,他有非常齐全的库,官方的也好第三方也好,经过十几年的积累,这是一个庞大的集群。因为python语法简单,甚至接近伪代码,所以python对我来说是解决问题一用的,达成目的即可,其他的?shut up!
c++是最不适合作为编程入门的,因为他的规则太复杂了,对于新人来说,当学习时这些东西扑面而来很容易把人吓蒙的!什么是显式构造、什么是拷贝构造、析构函数为什么要virtual、虚函数是什么、虚基类是为了什么存在的、运算符重载的规则是什么、指针和引用的区别、模板有那些黑魔法、标准库究竟会干些什么…… 不得不说它的很多特性,让编程变为像魔法一般的存在,当使用者念咒语施放魔法时会产生非常强的成就感。但当你对咒语一知半解时,一旦犯错你需要翻经阅典花费大量的时候来搞明白。
所以我建议先从C开始,了解基础语法之后尝试更深入地了解本质,这对你接下来学python有好处。然后学学python,并用python尝试去做一些事情,你会发现python的强大。最后学C++,虽然上面说了C++的语言魔法太复杂,但在当前市场下,C++程序员的需求量还是很大的,因为C++得益于他比C更快的开发效率以及python等脚本语言所无法比你的运行效率,使其成为市场的一个刚需。 可以从c入手,这个语言比较简洁,基本的概念你都能学到,比如内存管理。而且学完了这个,你对Python 里面的很多东西都有更加深刻的认识,比如迭代器,生成器等等…不然恐怕总是格了一层什么东西,看不透这个语言。
最主要的,你还很年轻…世间很多,从基础开始吧。
C++太庞大了,里面涉及了太多东西,一上来就学,可能感觉有点蒙 题主你是把java给忘了? 还是推荐楼主先学C语言吧!
对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。也许你将来的工作或学习不会使用C语言,但是它能让你了解编程相关的概念,带你走进编程的大门,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话。
C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。
正是由于C语言的简单,对初学者来说,学习成本小,时间短,结合本教程,能够快速掌握编程技术。
对于初学者,学习C语言还可以顺便了解很多计算机的运行原理,为后面的学习夯实基础。
C语言不但运行效率高(比C++、Java都高),而且应用广泛,可以用来开发桌面软件、硬件驱动、操作系统、单片机等,从微波炉到手机,从汽车到智能电视,都有C语言的影子。
在世界编程语言排行榜中,C语言大部分情况下排名第一(偶尔会被Java夺得宝座)。
所以说,学习一门年龄比自己还大的语言很有必要(C语言诞生于20世纪70年代初)。
当然,C语言也不是没有缺点,毕竟是70后老人,有点落后时代。
最近几年,有一门新的语言异军突起,夺得了大家的眼球,它就是Python。
在我们开始学编程的时候,Python并不是那么“甚嚣尘上”,中文资料也不多,绝大部分人还是从C学起,大学的课程也是这样安排的,先学C、再学汇编、C++、Java等,把C作为一门基础语言。
现在情况不同了,有一部分初学者放弃了C,从Python开始学起,认为Python简单,容易学习,不像C那么晦涩。
其实,Python 的“简单”主要是指代码格式清晰,语法没有那么严格,例如,在屏幕上显示“C语言中文网”: print "C语言中文网" 对比C语言的代码: puts("C语言中文网"); 你看,Python不需要括号,也不需要最后的分号。
但是,不要被误导了,Python涉及到的编程概念和编程思想并不简单,比C语言要多要复杂。以我的实际感受,Python的学习成本并不比Java、C++小。
任何编程语言都一样,不管是你的学长学姐告诉你简单,还是你自己认为简单,其实都是错误的观念,不要被这些观念误导。
你可以认为X语言比Y语言在软件开发方面更加优秀,或者M语言比N语言在数据挖掘方面更加方便,但是绝不能认为哪一种语言更加简单。每一种编程语言都有自己的应用领域,要学习合适的语言,而不是“简单”的语言。
总之,我不认为学习Python的成本比C小。
值得一提的是,Python也是用C来开发的,如果你希望更好的学习Python,那么肯定也要学。 有个词叫,类c语言,
一定程度上承托了c语言的地位,,, 个人觉得都不如汇编啊 专心高考,考完了再开始学习。
首先,C/C++/Python学哪个都无所谓,但他们都不是基础,基础是数据结构,微机原理,信息论,也就是数学
语言层面上,建议你先学Python,兴趣很重要,能快速做出东西,有成就感,建议参考Python教程 - 廖雪峰的官方网站。
一个合格的软件开发人员,至少掌握>3门语言,学完Python,可以继续学C,Java,JavaScript,Lisp等等。 纠结毛线,哪本便宜买哪本。 先把C最基本的东西学会,然后Python就极容易上手了——用Python做过一些练习之后再上手C++就容易多了 大二狗,程序猿,搞过ACM,做过小项目。
首先对于题主在高二就想学习大学的内容表示鼓励,同时也希望题主能够先优先照顾好自己的高中学业,毕竟高考胜利了,你才能进到好的学校并*选择你喜欢的专业。
以下是正题:
首先反对初学者学Python,Python(以下简称P,手机打字太辛苦)是一门非常好的编程语言,我目前也有所涉猎,其中完善的语言结构,简洁的代码规范,都让P有了更容易上手的特性,对于任何一个初学者来说,P都是相对于C++或者Java更容易理解的。
但是!对于一个要当程序猿的初学者说先学P,绝对是耍流氓,用P可以快速建立起项目,做出程序,这种满满的成就感适合于用来培养学习兴趣,但绝对不利于培养完善的编程思想,这对一个程序猿是不利的。
C++和P是高级语言中的高级语言(相对于C而言,事实上C++和P并不对等),其中很多数据处理的实现已经被高度封装,比如排序,大数处理,一个类方法就可以实现,一个函数就可以实现,学的时候看不到底层实现,光记住函数名字和参数就可以使用,但还是那句话,这对一个要当程序猿的初学者来说是不利的,因为他没有办法了解数据在程序内部是如何实现的,没有办法了解程序是如何组织数据的,没有办法在多个不同的排序中找到合适的,没有办法学会如何对数据进行组织,尤其是P,在初学阶段,P的变量并不需要明确定义,对于变量的使用不需要声明,是一种动态类型绑定的形式,初学者甚至没有办法通过P了解各个基本数据类型之间的区别,这种问题在现在来说,都是致命的。
我相信在以后的发展趋势都是高度封装和弱类型,但对于程序猿,一上来就学*的语言,无疑是不可取的,业余时间玩一下培养兴趣的人另说(那样的话我觉得VB或者易语言更好)
我的建议是学C没有之一,C是目前用得最广泛的面向过程语言,所有的高级语言的语法结构都有C语言的影子,C是所有学习高级语言的基础,C语言没有方便的函数封装,没有高效的垃圾自动回收,所有的实现都必须自己一个代码一个代码敲,但正是如此,你可以通过C语言学习到基本数据类型之间的区别,学会如何操作内存(指针),学会自己实现各种数据结构,比如链表,树和图,学会自己实现排序,从冒泡到快排到堆排序,简单来说就是从最最基本的走路开始学起,培养起完善的编程思想,包括对变量的精打细算,对时间复杂度的精打细算,对代码的一种强烈的语感。
是的,当你学完了一轮C和数据结构之后,再去接触类似C++,P,Java之类的语言,你就会发现,很多主流的语言都用了类似的编程思想,差不多的实现方式,数据组织方式也大同小异,上手的便捷程度不是一般可以想象的,就好像Java和C++,对于一个没有学C的人来说,就是两门不相干的语言(这个观点来自我一个都技校的同学,他是直接学C++),当对我来说就是同一种东西换了不同的说法,这种语感对于以后要学习大量新语言的程序猿来说无异于是葵花宝典。
所以结论就是,先学走再学跑,跑虽然快,但是没有走这个基础,不仅不能举一反三地体会如何能跑得更快,万一摔倒了怎么办,你能爬起来接着走吗?
-----------------------------------------------------分割线-----------------------------------------------------------------------------
补充:首先,学什么语言来入门都可以,只要是一门成熟的高级语言,但我的核心思想是:算法很重要!炒鸡重要!!编程=算法+数据结构,这个应该是没有什么争议的,什么语言都一样,所以初学者如果已经坚定了自己的信念和兴趣,已经脱离了培养兴趣的阶段,那么我想,从初学就开始接触算法实现和数据结构实现一定是个不错的选择,是的,C++和Java和Python都已经给了非常成熟的函数和方法给你们直接用了,这是否有利于算法的学习呢?算法实现实际上就是一个过程的模拟,很好,C语言就是个面向过程强调过程的语言,如果你抛弃了C++,P的函数和工具包来学习数据结构和算法,当然就什么语言都OK 啦,但那不等于是C语言嘛,再加上现在C语言仍然牢牢占据排行榜第一,学习价值非常高,又何必不从C语言学起呢?
然后就是,评论区我都是就着别人的问题来讨论的,所以有时候有很多不太严谨的说法,可能会带给一部分人误会,实属无意,只是因为你没有在那个思路上,换位思考一下应该能懂我想表达的核心思想的,细枝末节的字眼就不要太纠结了,如果有定义错误或者原则上的错误,请一定指出,毕竟我也是一名求学者,没有办法做到事事精通,还请各路大神体谅。
上一篇: 这样的PHP正则表达式该如何写
下一篇: php与node.js的性能差距