为什么Python在中国突然就火了起来了呢?


Python这个东西在中国,大概是从2017年末开始,突然就火了起来的。

此前,对于Python,乃至编程,绝大多数程度上都是专业人士的话题,在普通大众层面上起不了波澜。

为什么Python突然就火了起来了呢?我来简要分析一下,主要有以下三点:

人工智能与机器学习的兴起

最近几年,大数据、人工智能、机器学习越来越受人关注,以至于普通人都对其有所耳闻。而这样的人才供不应求,薪资水平相当高,也会有很多人希望能够学习它们。

而Python语言简单,且拥有庞大的外部库,尤其是许多与上述内容相关的库,如Matplotlib、Numpy、Pandas、SciPy、TensorFlow。这些库在Python中都是相当有名气的,使用起来也较为方便。因此,Python也成为了大数据、人工智能、机器学习的主要语言从而拥有相当多的学习者。

教育与考试的推动

在2017年初,网传浙江出台了一份关于新高中信息技术教材的方案,将围绕Python进行并增加编程相关知识点:

2017年中观察:

看上去这个大纲内容基本是这样了,但是实行年份可能要往后推了,不在2017年执行了(据说技术科目的另一部分,通用技术,也在进行教改)。

2017年初消息:

浙江省信息技术新教材,即将在2017级(2017年9月入学)高中新生中开始使用。

据了解,与目前的选考(可以理解为高考科目)要求的

信息技术教材由3本《信息技术基础》、《多媒体技术应用》、《算法与程序设计》3本组成,涉及软件(应用软件与编程软件)包括但不限于,

  • 信息技术基础:Excel、Access;
  • 多媒体技术应用:Photoshop、Flash
  • 算法与程序设计:Visual Basic 6.0,算法部分只涉及冒泡、插入排序,与二分查找,

不同,

  • 取消《多媒体技术应用》模块(也就是说,不再考察Photoshop和Flash了)
  • 取消对Excel、Access软件使用的考察
  • 编程语言将换用Python
  • 将使用Python + matplotlib + pandas ,并直接编程来绘制图表、操纵数据、进行数据可视化,来替代之前有关Excel和Access的考察
  • 算法与程序设计模块也将使用Python,并新增基础数据结构知识(线性数据结构,与非线性数据结构中的树与二叉树)

顺带一提,接下去的高考的信息技术考查形式不明确,但是估计不会改变,仍然是100%纸笔闭卷测试。(如果有变化,将及时更新)

(上面对知乎上的相关问题的原文进行了重新排版,重点部分已加粗)

那时我虽然还没有重新开始使用Python,但是对于这项改革方案还是相当满意的,最大的原因是VB实在是太老了……当然,浙江的这项方案也算是开了高中信息技术教育的先例吧。由于信息技术在浙江属于高考的选考科目,所以这项改革也不会像其他教育改革那样走过场的。说到教育改革,我想过很多,不过这里就不再赘述了。

不过我不是浙江的中学生,所以我对此并不太关注。

到了2017年末,我又看到了一条消息:全国计算机等级考试进行了调整,在二级考试中新增“Python语言程序设计”科目:

2. 二级

取消“Visual FoxPro数据库程序设计”科目(代码:27),2017年12月是其最后一次组考。新增“Python语言程序设计”科目(代码:66),考试时长:120分钟,软件要求:Python 3.5.2版本及以上IDLE,2018年9月首次开考。

(重点部分已加粗)

这就比较厉害了。之前是省级的改革,现在是国家级的。我当时还想着报名参加考试,结果发现是九月份才开始考的。

这个消息一出,许多技术相关的媒体都纷纷报道上面的事情,并且对Python的优势和前景进行了分析。有人甚至在回顾AlphaGo击败柯洁的时候说“与其说是 AlphaGo 打败了柯洁,不如说是 Python 打败柯洁”(当然这句话稍显片面)。

与此同时,网传山东的新版小学信息技术教材中涉及到了Python。

网传山东的新版小学信息技术教材中涉及到了Python

虽然不知道具体讲的时候是怎么讲的,而且目前只知道这一页,并不知道讲的具体内容,但是这也能体现出来,随着国家和大众对程序设计教育的重视,Python作为比较容易的编程语言正在走进初级教育。

不过,从下面这篇微博中看,应该是真的。

“乳山教育”发布当地教师学习Python的新闻

另外,2017年12月29日,教育部印发《普通高中课程方案和语文等学科课程标准(2017年版)》,并要求各地于2018年秋季开始执行。其中对于信息技术,相比于 2003 年版的课程标准,“新课标”大幅度减少了对于基本软件使用的要求,而大幅度提升了在编程、计算思维、算法方面的思维要求,以及人工智能、开源硬件、网络空间安全等知识面要求。

新旧课标对于信息技术的要求对比

这种情况下,如果之前浙江的高考改革方案为真,那么其他地区应该会借鉴浙江的经验来编制或选择教材等内容。另外,鉴于竞赛需要,除了发达地区和重点高中外,信息技术也会逐渐被更多地区的高中所重视。

在这些教育政策的推动下,大众自然会对Python以及编程重视起来。

另外,编程甚至开始从娃娃抓起了。

最有名的面向于儿童的编程教育工具是Scratch。不过它仅仅是教学用的工具,而非能够具有高效生产力的语言。

Scratch界面

而Python却能够解决它的不足,且语法较为简单。某种意义上,学习Python可以作为学习Scratch的下一步操作。另外,树莓派等板载计算机可以很好地使用Python通过GPIO来控制电子器件,这一点和Scratch比较相似;Python拥有非常多的外部库来轻松实现不可思议的功能。这也应该是Python在青少年编程教育领域比较火的原因吧。

外挂的好奇心

教育和考试的推动,推动的是学生和家长对Python的兴趣。而对于其他人的兴趣,我想应该是因为最近的“跳一跳”的外挂了。

自从微信推出“跳一跳”后,玩家纷纷为了刷分日夜奋战,当然也少不了那些使用外挂的人。有一些人靠外挂牟利,而有一些人写出外挂后无偿地分享出来。在形形色色的外挂中,以Python写出的外挂最多(说实话,一个小游戏居然有如此多的用不同语言写的外挂,而且还是开源的,说明很多写外挂的行为实际上有一种炫技的成分)。

在GitHub上搜索“跳一跳 微信”得到的结果按语言计数

而其中,star数最高的外挂也是用Python写的,达到13.1K,远远超过第二名。

star数最高的外挂是Python写的,至于是什么可以自己查

后来,网上也出现了形形色色的针对于开发“跳一跳”的外挂的教程。这里面很多也是与Python有关的。我记得在那时,我能够很频繁地在B站推荐给我的视频中看到关于用Python写跳一跳的外挂的视频。我想,应该是因为“跳一跳”规则简单,而且对于计算机来说,色块简单,更加容易实现自动化,是学习Python的高级功能的很好的工具吧。

在哔哩哔哩上搜索“跳一跳 教程”出现的结果,框出的为使用Python编写的外挂的教程

我想,对于大众,这也是一个接触Python的机会;也许一些人会惊叹于Python的强大,进而有学习的欲望。

于是后来,我发现,关于Python的其他方面的教程越来越多,如爬虫、数据分析。

我不是专业人士,如果分析有些许瑕疵,还望海涵。

参考资料


文章作者: 丁俊尧
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 丁俊尧 !
  目录