Py学习  »  Python

Python 的进击

MacTalk • 6 年前 • 859 次点击  

题图:by click_vision From Instagram

现在每天上班开车的时候有了个新习惯,就是听「极客时间」里的极客新闻,比如这条消息,就是我在极客新闻里首先听到的。

上周一,GitHub 发布了 2017 年度的观察报告,盘点了最受欢迎的编程语言、开源项目等诸多年度数据。GitHub 的注册用户已经到了2400万,横跨 200 个国家,其中 130 万为学生开发者。另外,GitHub 上还拥有 150 万组织和 6700 万的代码库,亚洲注册的开发者有700万。回头看看极客时间的注册用户数,我觉得我们还有段路要走。

做为一个老程序员当然最关心编程语言,没有想到的是,这次 GitHub 编程兵器谱上排名前三位的居然是 JavaScript,Python 和 Java。

GitHub 上的开源项目所使用的编程语言多达 337 种,由于 JavaScript 天然的开源特性和前端的火爆程度,排名第一实至名归,并且遥遥领先。

Python 则是一个进击的黑马,去年的第三名,成功赶超老牌劲旅 Java,排在了第二位。今年 Python 的 PR 比去年增加了 40%,毫无疑问,它的火爆得益于最近人工智能、深度学习和数据分析等相关领域的火热。

经常有初学者让我们推荐一门编程语言,左耳朵耗子怪蜀黍在他的专栏里推荐了 Go,那么我就来推荐 Python 吧。关于 Python 的今生来世和语言特性以及在 AI 时代的优势,大家可以参考我之前写的「人生苦短,我用 Python」,Python 是少数兼具简单和功能强大的编程语言,自由开放,扩展性好,并且具备跨平台的特性,同时兼具面向对象和函数式编程范式,并且有数不清的库可以供你使用,Python 标准库的规模非常庞大。它能够帮助你完成诸多事情,包括正则表达式、文档生成、单元测试、多线程、数据库、网页浏览器、CGI、FTP、邮件、XML、XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面),以及其它系统依赖型的活动。只需记住,只要安装了 Python,这些功能便随时可用。

到了 AI 时代,这样的库有增无减,SciPy 是一个数值计算库,NumPy 是 Python 另一个开源的数值计算扩展库,Pandas 是基于 NumPy 的数据分析工具,matplotlib 是图形绘制库,最近火热的 Scikit-learn 则是开源的机器学习框架。

那么如何学好这门语言呢?其实方法很简单,如果你有时间又自律,读一本好书并持续的实践就好。另外,看看别人的做法,跟随高手学习,也是一种有效的途径。

下面我们看看麻瓜编程的创始人侯爵 、《编程小白的第一本 Python 入门书》作者 是怎么学习 Python 的。

******华丽的分割线******

在我决心开始学编程的时候,由于工作很忙,每天只能抽出来1小时去学习编程。那时候翻遍了知乎上大家推荐的国内外的书和课程,但教程中抽象枯燥的术语根本看不懂,基础教程大多都是几十章的教程或者是上百个视频,一点点看下去感觉像是在从 A 到 Z 背字典,就算背下来了也不知道怎么应用。而教程里的例子大多是1+1、小明的身高这类低龄益智题,让我觉得很无聊,感觉学了也没什么用,提不起学习的兴趣。那段时间学学停停,学到很难受了就停两天,就会觉得有点不服气,为什么我学不会呢?

后来我偶然看到了一个国外的博客,它里面用了一个车的例子,让我真正理解了方法和函数的关系。那时候我突然意识到,原来抽象概念是可以学会的,只要跟自己的实际生活相关联,总能找到一些类比去理解抽象概念。遗憾的是那个博客里面并不是每个概念都有这样的例子,于是我就试着自己去想象一些类比来帮助自己理解抽象概念,然后再敲一些简单的代码去验证,看看是不是和我猜想的一样的。

用了这样的学习方法之后,我的编程学习效率高了许多,不到两周时间就过完了主要的 Python 基础知识,建立起了基本的知识模型。回过头来想,之所以这种方法适合我,能让我学会,是因为我有了情景,我把编程用起来了。之前看很多教程,基本都是从第一章开始觉得会了,但实际上又不知道学的这个要怎么去使,这种感觉就一直在我的脑子里嗡嗡的转。那些教程实际上讲的是语法规则,但是这个东西不能教会你说话。促使你学会说话的是情景,是你妈妈问你「宝宝你吃苹果么?」,你就自然理解了吃的意思是什么。而那些教程都在一丝不苟的教语法,但有了情景,我这样的初学者才能学会。

有了这段经历之后,我就特别能理解初学者的感受。有些程序员会说,“Python 很简单啊,看一遍文档就都懂了”(潜台词:我很聪明,我是学霸)、“如果连 Python 都学不会,你就不要学编程了”(潜台词:只有我这样有天赋的人才能学编程)。我觉得可能是他们做这一行太久了,已经忘了初学时的痛苦和挣扎了,人是会篡改记忆的,会认为现在拥有的都是轻松获得的,但真实的经历永远是坎坷曲折的。

为了能让更多的编程小白轻松地入门编程,我把自己的学习经验结合 Python 中的核心知识,写了一本入门书(本书已经有十万多读者)。由于这段特殊的经历,各种机会向我抛出橄榄枝,我又做了两门课程,还成为网易云课堂 Python 微专业的合作伙伴。

信号与噪音

严格来说,你接触一门新的技能的时候,其实从信息的角度来讲,方方面面的信息你都应该知道。比如学滑雪的时候,少任何一点你都不能成为一个滑雪高手,但对于初学者最先应该知道的是怎样安全的滑行和刹车。也就是信息对于初学者是有重点的,但是很多编程教学者没做到这一点,他们把所有的信息都铺了出来。

筛选重要的信息,不光要选择那些看起来最明显的信息,同时还要选择那些为后面埋下根基的信息。比如说我要盖一座桥,也许这块现在不盖东西,但要把暗桩打好,让以后盖桥的时候有地方下脚。有本书叫《信号与噪音》,这也是我在做的事情,筛选出来对初学者入门有帮助的信号,暂时不需要关注的噪音就做降噪处理。

以使用为核心的学习

你在 Python 官网看到的文档,是语言的设计者和社区来撰写的,这个已经很权威、很官方了,语法规则讲的很全面,但它是以语言特性为中心的教学模式。初学者刚入门的时候不是为了了解语言,而是为了使用而学习,所以说对我来讲很有挑战的一点是,我找出了一个以使用为核心的教学模式。

这就如同于你刚一岁学说话的时候,你妈妈给你讲语法和语言学,这肯定是不对的,大家都知道这个道理,但是一换到一门形式语言、讲一门编程语言的时候,大家就不考虑初学者如何使用了。

实际上,能不能学了就会用,取决于有没有情景化的信息,有没有还原情景的上下文信息。看过了足够多的情景之后,初学者就能通过模仿获得经验,从而知道怎么把学到的东西用起来。

带着兴趣学下去

最好阅读的文字媒介,在现实生活中一定是杂志,因为它经过精心的排版,在厕所的5分钟都能随手拿来看一点。我自己有阅读障碍和注意力缺失的问题,所以我会很看重视觉化呈现,至少给那些像我一样觉得纯文字很枯燥的人一条出路,可以通过视觉化的内容去更高效的理解。

和纸质杂志不同的地方在于,课程中穿插了一些交互式的练习,可以让你练练手,获得即时反馈。就像是健身的时候,你去看教学视频,记忆的是一种影像。但是在做的时候,积累的是一种通过实践习得的经验。获得这种实践经验就是练习的必要性。但前提是要在大方向清楚的情况下去练习,否则练得越多错的越多,会让你产生很多的困惑,让你痛苦。

我希望能通过这些传达信息效率更高的方式,帮助更多新手、曾经从入门到放弃的人、被大多数教程忽视的人,充满兴趣地跨过入门的困境,带着学习的热情在自学编程的道路上走的更远。

——————————

感谢你能读到这里,我想你一定是对 Python 学习有浓厚的兴趣,下面推荐一场免费直播课。

10月31日,麻瓜编程的侯爵老师将会在网易云课堂上进行一场免费的直播分享,主题是《聊聊怎样学 Python 才有效》。在这场直播里,侯爵将会谈一谈计算机专业与非专业人士在 Python 这条学习路径上有何区别。也会与你聊一聊如何根据自身情况定制一条合适的学习路径。

本次免费直播的分享人是麻瓜编程的创始人侯爵老师,他是10万读者喜爱的《编程小白的第一本 Python 入门书》的作者,创作过网易云课堂上最畅销的编程课。

这场直播主要解决两个问题:

1、计算机专业与非专业人士在Python这条学习路径上有何区别?
2、如何根据自身情况定制一条合适的学习路径?

如何参与直播?

扫描下方 QQ 群二维码,加入直播交流群~在直播开始之前,助教MM将会放出直播地址,并挥舞教鞭敦促大家去听课~

最后推荐一下网易云课堂的《Python Web 开发工程师》。

网易云课堂《Python Web 开发工程师》微专业由麻瓜编程与网易云课堂联合开发,课程以实战项目为主线,你会在实践中循序渐进的掌握完成一个网站的关键知识,独立完成实战项目的前后端开发,用6周做出别人用4个月才能做出的成果

10月25日-11月3日,《前端开发工程师》微专业正在进行课程团购活动。预付1元,可在尾款期抵扣200元,有兴趣的同学欢迎戳“阅读原文”了解活动详情~


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/ykKBR5ZPMl
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3965
 
859 次点击  
文章 [ 1 ]  |  最新文章 3 年前