暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

有Python 了,为什么还要学C++?

酷教 2020-05-02
1205

现在是python的天下,你为什么还在学C++?


PART

01


目前,人工智能已经上升到国家发展战略,机器学习和深度学习这些词汇大量的出现在网络流行语中,人脸识别以及自动驾驶已经在现实中开始引用了,某种意义上人工智能好像走在我们的生活了。
人工智能的核心是机器学习,让计算机来模拟或实现人类的学习行为,获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,是使计算机具有智能的根本途径。
这里的机器学习是基于海量数据进行建模来模拟,是一门多领域交叉学科,需要高等数学基础、线性代数及矩阵知识,涉及到概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。在这些前提下,Python可能是最适合实现机器学习的基础语言了,你遇到的问题python都有着科学的第三方库来解决,甚至有专门的机器学习库。
面对海量的数据,Python可以调用NumPy(存储和处理大型矩阵),pandas(处理数据的函数和方法),matplotlib(数据操作、聚合和可视化)和scipy(高效的数学运算)等库为你高效准确解决大量的数据分析难题。
实现以上功能很多语言和工具都能做,但是用Python能够最快,最干净的实现。所以近几年可以说是人工智能的出现推动了Python的发展。


PART

02


从上面表格看综合得分是不是该学习Java了?然而计算机的绝大部分运算能力,都是靠C/C++支撑的。包括操作系统、各类服务器、编程语言、数据库、桌面软件、浏览器、各种引擎和类库。

Python本身也是用C编写的,而Python本身很简陋,与前期教材中使用的VB比完善度都要差很远,他的能力大部分来自于C编写的第三方扩展库。

Python被称为“胶水语言”,因为在WEB方面远不如php,可移植性不如php、java,功能强大和第三方库比不过java、C#、C++,执行效率比不过php、java、C#、C++。可以说Python没有真正的突出优点,是一门非常中庸又四不像的语言,什么都能做一点但什么都做不好,所以很多资深程序员们认为,Python是称职的胶水语言,并且只能做胶水。

低年级学生为了培养兴趣可以从图形化编程开始,高年级学生在目前教材涉及的内容看C++可能比Python更好那么一丢丢,学编程真正学的就是数据结构和算法,C++属于代码级语言,语言风格应用广泛,非常适用算法理论、计算思维理论的学习。虽然C++太庞大,涉及了太多规则,入门可能感觉蒙。


PART

03


回头看看咱们的教材,随着Python的兴起,山东初中信息技术教材(泰山版)2018年将Python纳入教学内容,并在7年级初始年级学习。

第一册着重的是Python语言基本语法的学习。 知识点涉及的是基本语法中的运算符,输入、输出语句,各种数据类型和变量的存储等相关知识,文件等打开与写入,因为列表是各种算法中必不可少的存储工具,所以在这一册特别学习了数据存储方式——列表的概念。

另外了解并掌握选择结构的双路径分支结构if else语句和多路径分支结构if elif语句,循环结构的计数循环for语句和条件循环while语句。

在第二册中着重学习了程序的基本算法,包括枚举算法、迭代算法、排序算法、递归和分治算法等几种。

下面是某培训机构的C++入门教程学习内容,可以看出教材内容所学习的也仅仅是学习程序设计最最基础的东西,任何一种高级语言都会有涉及。不管是C++还是Python作为入门的编程语言都是合适的。

再看一下浙江高中信息技术教材,从2018年起浙江省信息技术教材编程语言将会从 VB 更换为Python。将使用Python + matplotlib + pandas ,并直接编程来绘制图表、操纵数据、进行数据可视化,来替代之前有关Excel和Access的考察。算法与程序设计模块也将使用Python,并新增基础数据结构知识(线性数据结构,与非线性数据结构中的树与二叉树)。

这里的C++基本只涉及C语言和STL,而C++特有的类、模板等内容很少涉及。

综合评价,C++确实是比较难学的语言,是一门 Low Level 语言,Low Level 意味着他离机器更近,你写的代码需要思考机器本身的问题,而不是像一些高级语言只关心业务逻辑,平台和系统层面的东西,交给系统即可。

还有C++难在语法规则多, 经常出新的标准,每一次新标准的发布,就为 C++ 语言带了了一些新的特性。

但并不是C++里的任何内容都是难的。C++中的指针、多态等面向对象内容确实比较难理解、难学会,但这部分内容并不是我们学习开发编程思维、编程能力的必修内容,面对对象内容甚至也不是信息学奥林匹克考试的范围,所以我们只要剔除C++很多繁琐、比较难理解的部分,限定一定的模式,掌握起来是很容易的,其可掌握的难易程度跟其它高级语言差不多。

C++一旦学成,其妙无穷,就像武侠小说中的“九阳神功”一样,有了这个基础,您可以快速学习任何语言和编程技术。

其实编程语言创造来都是为了解决实际问题的,所以没有好坏之分,只有合适与否。Python入选教材,但教材的编写者未必就是专业的,酷教也不专业,只是有感而发,如果学编程初期建议你多关注算法,至于最后选择学习哪种语言完全可以交给大环境,该先学啥交给时间来验证,有时这就是“命”。

但学完C++再看Python可能真的感觉好爽,反过来却未必。


    「您的每一个  对我们都是鼓励」
文章转载自酷教,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论