Python這個東西在中國晒哄,大概是從2017年末開始睁宰,突然就火了起來的肪获。
此前,對于Python勋陪,乃至編程贪磺,絕大多數(shù)程度上都是專業(yè)人士的話題硫兰,在普通大眾層面上起不了波瀾诅愚。
為什么Python突然就火了起來了呢?我來簡要分析一下劫映,主要有以下三點:
人工智能與機器學習的興起
最近幾年违孝,大數(shù)據(jù)、人工智能泳赋、機器學習越來越受人關(guān)注雌桑,以至于普通人都對其有所耳聞。而這樣的人才供不應求祖今,薪資水平相當高校坑,也會有很多人希望能夠?qū)W習它們。
而Python語言簡單千诬,且擁有龐大的外部庫耍目,尤其是許多與上述內(nèi)容相關(guān)的庫,如Matplotlib徐绑、Numpy邪驮、Pandas、SciPy傲茄、TensorFlow毅访。這些庫在Python中都是相當有名氣的,使用起來也較為方便盘榨。因此喻粹,Python也成為了大數(shù)據(jù)、人工智能草巡、機器學習的主要語言從而擁有相當多的學習者守呜。
教育與考試的推動
在2017年初,網(wǎng)傳浙江出臺了一份關(guān)于新高中信息技術(shù)教材的方案捷犹,將圍繞Python進行并增加編程相關(guān)知識點:
2017年中觀察:
看上去這個大綱內(nèi)容基本是這樣了弛饭,但是實行年份可能要往后推了,不在2017年執(zhí)行了(據(jù)說技術(shù)科目的另一部分萍歉,通用技術(shù)侣颂,也在進行教改)。
2017年初消息:
浙江省信息技術(shù)新教材枪孩,即將在2017級(2017年9月入學)高中新生中開始使用憔晒。
據(jù)了解藻肄,與目前的選考(可以理解為高考科目)要求的
信息技術(shù)教材由3本《信息技術(shù)基礎(chǔ)》、《多媒體技術(shù)應用》拒担、《算法與程序設計》3本組成嘹屯,涉及軟件(應用軟件與編程軟件)包括但不限于,
- 信息技術(shù)基礎(chǔ):Excel从撼、Access州弟;
- 多媒體技術(shù)應用:Photoshop、Flash
- 算法與程序設計:Visual Basic 6.0低零,算法部分只涉及冒泡婆翔、插入排序,與二分查找掏婶,
不同啃奴,
- 取消《多媒體技術(shù)應用》模塊(也就是說,不再考察Photoshop和Flash了)
- 取消對Excel雄妥、Access軟件使用的考察
- 編程語言將換用Python
- 將使用Python + matplotlib + pandas 最蕾,并直接編程來繪制圖表、操縱數(shù)據(jù)老厌、進行數(shù)據(jù)可視化瘟则,來替代之前有關(guān)Excel和Access的考察
- 算法與程序設計模塊也將使用Python,并新增基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)知識(線性數(shù)據(jù)結(jié)構(gòu)梅桩,與非線性數(shù)據(jù)結(jié)構(gòu)中的樹與二叉樹)
順帶一提壹粟,接下去的高考的信息技術(shù)考查形式不明確,但是估計不會改變宿百,仍然是100%紙筆閉卷測試趁仙。(如果有變化,將及時更新)
(上面對知乎上的相關(guān)問題的原文進行了重新排版垦页,重點部分已加粗)
那時我雖然還沒有重新開始使用Python雀费,但是對于這項改革方案還是相當滿意的,最大的原因是VB實在是太老了……當然痊焊,浙江的這項方案也算是開了高中信息技術(shù)教育的先例吧盏袄。由于信息技術(shù)在浙江屬于高考的選考科目,所以這項改革也不會像其他教育改革那樣走過場的薄啥。說到教育改革辕羽,我想過很多,不過這里就不再贅述了垄惧。
不過我不是浙江的中學生刁愿,所以我對此并不太關(guān)注。
到了2017年末到逊,我又看到了一條消息:全國計算機等級考試進行了調(diào)整铣口,在二級考試中新增“Python語言程序設計”科目:
2. 二級
取消“Visual FoxPro數(shù)據(jù)庫程序設計”科目(代碼:27)滤钱,2017年12月是其最后一次組考。新增“Python語言程序設計”科目(代碼:66)脑题,考試時長:120分鐘件缸,軟件要求:Python 3.5.2版本及以上IDLE,2018年9月首次開考叔遂。
(重點部分已加粗)
這就比較厲害了他炊。之前是省級的改革,現(xiàn)在是國家級的掏熬。我當時還想著報名參加考試佑稠,結(jié)果發(fā)現(xiàn)是九月份才開始考的。
這個消息一出旗芬,許多技術(shù)相關(guān)的媒體都紛紛報道上面的事情,并且對Python的優(yōu)勢和前景進行了分析捆蜀。有人甚至在回顧AlphaGo擊敗柯潔的時候說“與其說是 AlphaGo 打敗了柯潔疮丛,不如說是 Python 打敗柯潔”(當然這句話稍顯片面)。
與此同時辆它,網(wǎng)傳山東的新版小學信息技術(shù)教材中涉及到了Python誊薄。
雖然不知道具體講的時候是怎么講的,而且目前只知道這一頁锰茉,并不知道講的具體內(nèi)容呢蔫,但是這也能體現(xiàn)出來,隨著國家和大眾對程序設計教育的重視飒筑,Python作為比較容易的編程語言正在走進初級教育片吊。
不過,從下面這篇微博中看协屡,應該是真的俏脊。
另外,2017年12月29日肤晓,教育部印發(fā)《普通高中課程方案和語文等學科課程標準(2017年版)》爷贫,并要求各地于2018年秋季開始執(zhí)行。其中對于信息技術(shù)补憾,相比于 2003 年版的課程標準漫萄,“新課標”大幅度減少了對于基本軟件使用的要求,而大幅度提升了在編程盈匾、計算思維腾务、算法方面的思維要求,以及人工智能威酒、開源硬件窑睁、網(wǎng)絡空間安全等知識面要求挺峡。
這種情況下,如果之前浙江的高考改革方案為真担钮,那么其他地區(qū)應該會借鑒浙江的經(jīng)驗來編制或選擇教材等內(nèi)容橱赠。另外,鑒于競賽需要箫津,除了發(fā)達地區(qū)和重點高中外狭姨,信息技術(shù)也會逐漸被更多地區(qū)的高中所重視。
在這些教育政策的推動下苏遥,大眾自然會對Python以及編程重視起來饼拍。
另外,編程甚至開始從娃娃抓起了田炭。
最有名的面向于兒童的編程教育工具是Scratch师抄。不過它僅僅是教學用的工具,而非能夠具有高效生產(chǎn)力的語言教硫。
而Python卻能夠解決它的不足叨吮,且語法較為簡單。某種意義上瞬矩,學習Python可以作為學習Scratch的下一步操作茶鉴。另外,樹莓派等板載計算機可以很好地使用Python通過GPIO來控制電子器件景用,這一點和Scratch比較相似涵叮;Python擁有非常多的外部庫來輕松實現(xiàn)不可思議的功能。這也應該是Python在青少年編程教育領(lǐng)域比較火的原因吧伞插。
外掛的好奇心
教育和考試的推動割粮,推動的是學生和家長對Python的興趣。而對于其他人的興趣蜂怎,我想應該是因為最近的“跳一跳”的外掛了穆刻。
自從微信推出“跳一跳”后,玩家紛紛為了刷分日夜奮戰(zhàn)杠步,當然也少不了那些使用外掛的人氢伟。有一些人靠外掛牟利,而有一些人寫出外掛后無償?shù)胤窒沓鰜碛募摺T谛涡紊耐鈷熘卸渎啵訮ython寫出的外掛最多(說實話,一個小游戲居然有如此多的用不同語言寫的外掛甸私,而且還是開源的诚些,說明很多寫外掛的行為實際上有一種炫技的成分)。
而其中,star數(shù)最高的外掛也是用Python寫的诬烹,達到13.1K砸烦,遠遠超過第二名。
后來幢痘,網(wǎng)上也出現(xiàn)了形形色色的針對于開發(fā)“跳一跳”的外掛的教程。這里面很多也是與Python有關(guān)的家破。我記得在那時颜说,我能夠很頻繁地在B站推薦給我的視頻中看到關(guān)于用Python寫跳一跳的外掛的視頻。我想汰聋,應該是因為“跳一跳”規(guī)則簡單门粪,而且對于計算機來說,色塊簡單烹困,更加容易實現(xiàn)自動化玄妈,是學習Python的高級功能的很好的工具吧。
我想措近,對于大眾,這也是一個接觸Python的機會女淑;也許一些人會驚嘆于Python的強大,進而有學習的欲望辜御。
于是后來鸭你,我發(fā)現(xiàn),關(guān)于Python的其他方面的教程越來越多擒权,如爬蟲袱巨、數(shù)據(jù)分析。
我不是專業(yè)人士碳抄,如果分析有些許瑕疵愉老,還望海涵。
參考資料
- 如何評價即將開始使用的浙江省新高中信息技術(shù)教材剖效,將圍繞Python進行并增加編程相關(guān)知識點嫉入? - 知乎
https://www.zhihu.com/question/55811645 - 全國計算機等級考試調(diào)整方案
http://www.eeafj.cn/u/cms/default/201710/20171017101728_50.pdf - 資訊 | 浙江省信息技術(shù)課程改革方案出臺,Python 確定進入浙江省信息技術(shù)高考h凳咒林!_搜狐教育_搜狐網(wǎng)
http://www.sohu.com/a/210105713_292575 - 教育部關(guān)于印發(fā)《普通高中課程方案和語文等學科課程標準(2017年版)》的通知 - 中華人民共和國教育部政府門戶網(wǎng)站
http://www.moe.gov.cn/srcsite/A26/s8001/201801/t20180115_324647.html - 高中新課標出臺!少兒編程教育再上新高度_搜狐教育_搜狐網(wǎng)
http://www.sohu.com/a/217415114_665933 - Getting Started With Scratch (Version 2.0)
https://resources.scratch.mit.edu/www/guides/en/Getting-Started-Guide-Scratch2.pdf