BitTigerio 2018-01-15
导语:假如你一觉睡醒发现自己回到了小学……你恐怕就再也毕不了业了!
文/ Udacity之肴
编辑/ 安然、拇姬、优达菌
特别感谢/ 王枫
本文首发于微信订阅号果壳网(id:Guokr42)
据澎湃新闻近日消息,山东省在其最新出版的小学信息技术六年级教材中,加入了Python的内容。在此之前,编程界也一直有传言,称浙江省将对中学信息技术教材进行改动,弃VB(Visual Basic 6.0)而选用Python。
事情真的会如程序员们期待的那样发展吗?Python语言又为什么突然受到了格外的重视呢?
其实VB并没错,只是用它的人变了。
同样在1991年出现在人们的视野中,两者目前的地位却截然不同:据最新的TIOBE流行编程语言排行显示,Python牢牢占据第4名的位置,而VB已掉到第20名,甚至还有大幅下降的趋势。
从2016年到2017年,第4位的Python地位稳固,VB则从第14位掉到了第20位。图片来源:tiobe.com
VB的衰落有诸多原因存在。主因是微软的退场。2008年4月,微软宣布停止对VB的支持,转向C#和VB.net,导致社区青黄不接;再观国内教育市场,NOIP等信息奥赛在2005年就将BASIC语言移出可使用项,人们对VB的刻板印象还停留在画几何图形、写九九乘法表等初级应用,在找工作求职时,也很少人会把它写在简历里作为掌握的计算机语言。换成一个更具活力的编程语言的需求迫在眉睫。
C/C++、Java、Python早已在旁边虎视眈眈已久,但为什么Python独独受到了重视呢?
虽然C的语法简单明了,但必须得自己管理内存是一件很头疼的事;而Java的语法过于麻烦,导致新手过多关注语法而无法领会计算机入门的要点。Python是这三者中最好的计算机入门语言。在新手阶段你可能无法体会到C和Java的强大,却可以体会到Python的简洁。
这种语言极易上手,接近自然语言的风格,稍加熟悉便可很快熟稔于心。阅读 Python 代码就像是在阅读英语文章一样,让你更清晰地明白逻辑架构,不必过度关注语言本身。这吸引了大批其他行业人士使用 Python 完成专业项目,你很容易会遇到懂 Python 的医生,会 Python 的会计师,甚至是用 Python 分析葡萄种类的酿酒师。
Python 开发者社区也因多元化元素的引入而蓬勃发展,无论是菜鸟码农还是老司机,都能在充足的文档、教程中找到你想要的答案。使用 Python 的明星互联网公司也非常多,诸如Youtube、Dropbox、Quora、Instagram、Reddit,等等一些不知道存不存在的公司,核心业务都是基于 Python 开发的。
在VB占据中学生信息技术教科书这么多年以后,教学改革也该与时俱进了。当然,这背后还有几个大事件是“幕后推手”。
奥巴马在卸任前的最后一年里,提议大力推行基础教育,总投入40亿美元,以确保每一名K12学生都能获得接触计算机教育的机会。
奥巴马于2016年1月30日的每周电视讲话宣布“CS For All”。图片来源:视频截图
继任者特朗普的规划则更为清晰,他预计在教育部每年投入2亿美元来增加K12学校对计算机教育的重视程度,同时要求教育部提交年度报告反馈成效。相信无论是支持或反对特朗普,人们都乐于看到政府对教育的重视。
在美国的顶级高校中,Python已经成为教授计算机科学入门课程方面最受欢迎的语言。
其中排名前10的CS系中有8个使用Python作为主要教学教学语言,MIT和UC Berkeley的计算机系最近甚至将其入门课程的计算机语言改成了Python。
最大的三个MOOC(Massive Open Online Courses)网站Coursera、edX 和 Udacity 也全都提供了Python 语言的入门课程。
对大多数人来说,编程是一件“大人的事儿”。Python又真的适合青少年从小学习吗?
从某种意义上来说,这一点或许恰好是Python的优势。实际上,已经有不少年轻有为的少年英才通过Python取得不俗的成绩。
早在2013年,就有一位13岁的Python开发者朱利安·迈耶(Julian Meyer)在网站上发表文章,教自己的同龄孩子用Python做小游戏。
在这篇教程中,他通过一款自己设计的名为《兔子和獾》的塔防游戏来引导读者直接上手。从安装Python,到添加兔子的形象、动作,再到设计和反派獾的交互动作,最后添加声效和背景音乐,一个入门级的小程序由此成型。
迈耶用Python做的塔防游戏《兔子和獾》截图。 图片来源:winduino.co.kr另一名Python开发者、现年17岁的学生凯文·法兰斯(Kevin Frans)做出了更为惊人的成就:他以第一作者的身份发表论文《Meta Learning Shared Hierarchies》,提交到了机器学习顶级会议ICLR2018上。
法兰斯与他发表的论文。图片来源:twitter在法兰斯15岁时,他就已经通过Python来训练神经网络了。受到玩Atari游戏的AI和AlphaGo相关报道的影响,他阅读大量论文并且复现了部分功能。吸收大量知识后,他创作了一个交互式网页,可以用漫画风格为素描画自动上色。
法兰斯的才能被挖掘的过程也颇为有趣。一次,法兰斯在试图解决OpenAI的一项开放问题时颇有眉目,便写信给OpenAI研究员约翰·舒尔曼(John Schulman)寻求建议。来来回回讨论几次算法后,舒尔曼查看了法兰斯的个人博客才知道他是高中生,大为吃惊。后来法兰斯申请了OpenAI的实习资格,面试官正是舒尔曼,他也对这次法兰斯提交的论文赞不绝口:“他为这一问题提供了全新思路,部分结果已经超越前人所做。”
无论是Python还是JAVA还是C亦或是其他什么编程语言,最重要的都是教学方式。
如果只是单纯地者加进高考或者纳入义务教育的范畴,而教学模式仍然还是VB那种老一套,老师照着课本照本宣科,或者是纸上谈兵,围绕考点背诵学习做习题,开放机房让学生自己随便摸一摸,那么效果肯定是不理想的。
在兴趣引导下学习,才能事半功倍,法兰斯就是很好的示范。作为初学者,如果带着目的、带着需求去学,进步就会很快。计算机编程本身是一个动手实践的项目,动手越多学的就越快、越好。不管Python会不会成为高考项目,这门语言都能为学习者带来无穷乐趣。
— 完 —
优达学城 Udacity
ID:youdaxue
硅谷工程师在学什么?如何保持职场竞争力?
关注优达学城,由谷歌无人车之父Sebastian Thrun创立
让你追随大佬,掌握机器学习、无人车开发等黑科技!
关注后回复“学习资料”
获取来自硅谷的【大数据求职指南】
@所有人,人生苦短,我用Python,来自硅谷的【Python 入门】基石纳米学位课程,已经开放报名。