随着数据科学概念的普及,Python 这门并不算新的语言火得一塌糊涂。因为写了几篇用 Python 做数据分析的 文章,经常有读者和学生在留言区问我,想学习 Python,该如何入手?我经常需要根据他们的不同情况,提出对应的建议。这样针对性虽强,但效率不高。这个问题,我还是写出来,让更多的人一同看到吧。
有几位出版社的编辑,给我发私信,鼓励我赶紧写一本 Python 教材出来。我暂时还没有写 Python 基础教程的计划。因为在我看来,现有的学习资源已经足够好了。
但是,有这么多现成的资源和路径,为什么许多人依然在为学 Python 犯愁呢?因为学习有个效率问题。Python 语法清晰明快,简单易学,这是 Python 如此普及的重要原因。但是,选择合适的 Python 学习方式,需要跟你自身的特性相结合。
人群划分的标准是什么?不是你是否计算机相关专业,也不是你是否已经工作,而是一个重要的指标——你的自律能力。
你可能觉得我说的话没有信息含量。自律能力强,学得更好,地球人谁不知道?可是,自律不够强的人,难道就注定什么也不能学了?当然不是。
每个人的性格都有不同的特点,没有绝对的高下之分。不信你听听刘宝瑞先生的相声《日遭三险》,就明白了。自律能力也是这样。只要你能清楚认识自己,就能以更高效的方法来学习新知识和技能。
下面我们分类探讨一下,不同自律能力的人,该如何学 Python,才能更高效。我为大家准备了三种完全不同的路径,相信你能找到适合你的那一种。
路径 I:适合自律能力最差的人
咱们先从自律能力最差的人说起。
这样的同学,往往是三分钟热度。偶然受到了刺激,发奋要学习 Python,以便投入数据科学的事业中。他会立即跑到图书馆或者书店抱回来一本《X 天从入门到精通 Python》的书开始啃。结果 X 天还没到,就顺利跑完了从入门到放弃的全过程。
你没能坚持下来,自己肯定是有责任的。但是问题,在于过度高估自己的自律能力。这样的同学,我推荐你到 Coursera 平台上,按部就班学习一门非常好的 MOOC——Programming for Everybody。
推荐这门课,是因为课程质量真是太好了。首先是教材好。这本教材的来源是有故事的。先是 Allen B. Downey 写了一本开放书籍 Think Python: How to Think like a Computer Scientist。
这本书在Amazon上的评价是这样的:
Charles Severance 觉得这本书写得太好了,想把它作为教材。于是征得作者同意,大篇幅借鉴了这本书的内容架构,编写了一本 Python for Informatics。
Charles 写作这本书的时候,同时开放推出了 iBooks 格式,里面就包含了自己的授课视频,供学生直接观看学习。
后来,Charles 用这本书扩展,做成了一门 MOOC。2015年上线不久,硅谷资深工程师就都争相学习。
Charles 深谙课程迭代的技艺。他不断添加内容,完善课程体系,将一门课发展成一个专项课程(Signature Track),并且将教材升级为 Python for Everybody: Exploring Data In Python 3。
在目前全球 MOOC 口碑榜上,Charles 的这门课一直名列前茅。
这个专项课程深入浅出讲解 Python 本来就很简单的语法,而且还用数据科学的一些基础工作任务,带动你去使用 Python 语言写简单项目。这种扎实的训练过程可以增强你的信心,激发兴趣。
对于自律程度低的同学来说,下面这个特性更重要:一切工作都有时限。
Coursera 上的课程,每周的任务很明确。练习题正确率如果不能达到 80%,就不能过关。到了截止日期,如果你不能完成全部练习和课程项目,就拿不到证书。
老师在前面引领你,助教在旁边督促你,平台用时间表提醒你,论坛上的同学们在用同侪压力推挤你……想偷懒?想三天打鱼两天晒网?很难。
路径 II:适合自律能力中等偏上的人
如果你的自律能力中等偏上,那么你可以选择的面就宽了。
这里我给你推荐另一个MOOC平台,叫做 Datacamp。
我第一次接触 Datacamp,是在 2015 年初。那时我在 Coursera 上选修杜克大学的统计学课程「Statistical Inference」,配套的练习就在 Datacamp 上。
当时这个平台就给我留下了非常深刻的印象,因为代码的运行都采用了云环境。学习者不需要在本机安装任何环境,一个支持 HTML5 标准的浏览器就能带给你完整的学习体验。
对初学者来说,这种入门方式太好了。要知道,许多人的学习热情,就是被环境配置和依赖软件包安装的坑埋掉的。
两年之后,Datacamp 已经迭代得更为强大。你可以打开首页的 Data Scientist with Python 这个学习路径,查看其中已经提供的 20 门课程。
这些课程涵盖了从 Python 基础,到数据处理,直至人工智能和深度神经网络的方方面面。
所有的课程设计,都是短小精悍的。一般不超过 4 个小时,就可以完成某一主题的学习。这样你学起来毫不费力,可以在相当短的时间内获得反馈(练习题自动评分)和成就感(证书)。
这个平台的课程,进度完全由学习者自己掌控。所以我把它归纳为适合有一定自律能力的学习者。它既可以给你即时的回馈,让你时刻了解自己所处的位置进度,不会迷失方向,又能充分体验自主学习的乐趣。
Datacamp 的课程,一般都是第一部分免费开放。后面部分购买后才能解锁学习。如果你对自己的学习能力和毅力有信心,可以购买一个完整时间段(例如一年)的课程。在此期间,所有平台上的课程,你都可以学习,并且可以在通过后获取证书。这样的购买方案本身已经有优惠,而且每年都会有特定时段的大幅打折促销,非常划算。建议放到购物车里面多关注。
这是我在 Datacamp 拿到的深度学习框架 Keras 课程证书,确实只需要几个小时的时间就能学完,成就感还是蛮强的。
路径 III:适合自律能力强的人
前面提到的课程费用不菲。Coursera 上每门课平均价格在 49 美元左右。对来自发展中国家的学生群体,Coursera 可以提供助学金。你可以根据自己的需求如实填写申请表,来获得资助。
对于自律能力强的同学来说,你的选择可以变得非常简单直接——可以用最受推崇的教材,自己看书学习。
最受推崇的教材,其实是没有的。正如西谚有云:
One man’s meat, is another man’s poison.
这个世界上,就没有哪件东西大家都说好。但口碑非常好的教材是存在的,例如这本起了个怪名字的《笨办法学Python》(Learn Python the Hard Way)。
千万不要被名称迷惑,望文生义觉得这是一本糟糕的 Python 入门教程。恰恰相反,这本书的设计,非常适合人们的认知规律。
我们学东西,由浅入深,由易到难,逐步递进。如果一味追求新知,那么之前学的东西会很快遗忘。如果总是原地打转,会带来枯燥和无聊的感觉。还记得高三做的那一年卷子吧?
好的教科书,应该在每一个章节给学习者提供新的知识和内容,提出足够的挑战。但是挑战性不能高到让学习者产生挫败感而放弃。同时也不能忽视在后续内容中把前面所学知识改换面目不断螺旋上升式重复出现。只有这样才能巩固所学,让学习者感受到基础知识的作用,增强学习的愉悦感。
这么说有些抽象,实际上有一本英语教材非常符合上述认知规律,就是我在课堂上和文章里反复推荐过的这一套教材:
《笨办法学Python》也是一本这样的书。你需要做的就是把书打开,同时打开一个好用的代码编辑器,开始按书中要求敲代码、运行代码、改代码……
下图是我当初学习时,照着这本书敲的代码。
书中对 Python 基础内容训练的完备性,至今无出其右者。顺便说一句,这本书有中文版哦。所以如果你英语不好,完全不用担心。
嘱咐一句,英语真该好好学。拓宽的不仅是你的眼界,也增加了你可能获得的机会。考虑到仔细阅读这部分的读者都是自律性很强的人,我就不用多说了。
挑战
三条基本的 Python 入门路径讲完了。通过对自己自律能力的清晰理解,相信你可以找到一种适合自己逐渐学习和掌握 Python 的方式。
但是完成了读书和听课,是不是就完事大吉了?当然不是。
许多人在这里犯了错误。他们以为拿到了证书,或学完了教材,就算是真正掌握 Python。然后把这门语言丢弃在一旁,去刷美剧和小说了。相信我,你会遗忘的。如果你对于长期不接触的东西从不遗忘……去医院检查一下吧。大部分人的记忆模式,都是这个样子的:
若不加以干涉,不出一个星期,你就能把学到的新知识几乎忘光。如果你不希望自己辛苦学来的 Python 知识被如此轻易浪费掉,怎么办?
实践
你应该实践。
实践 Python 技能,未必一定要找个世界 500 强企业的核心技术部门,「996」工作 N 年才能完成。你可以从生活中寻找各种有趣的问题,然后思考能否用 Python 编程来解决它。
我真正觉得自己初步掌握了 Python,就是在完成了我的第一个 Github 项目之后。
项目非常简单,就是用 Python 作为胶水语言,把一系列工具连接在一起。可以把 Markdown 撰写的内容随心所欲一键变化成各种格式。
格式包括而不限于:
PDF/LaTeX;
Word;
Bitcron 文稿;
MarkEditor 文稿;
MWeb 文稿;
Bear 文稿;
TextBundle(可以导入 MindNode, Ulysses 等);
Reveal.js 幻灯;
发布版本 Markdown(图片一键至七牛图床);
本地版本 Markdown(简书等远程 Markdown 同步图片至本地);
Day One 日记。
其中部分功能我正陆续发布在 Github 公开项目中,地址在 这里。
这个小项目,我从 2014 年开始做。实话实说,现在回头看当时的代码,简直惨不忍睹。但是如果你逐渐对自己你可以从生活中寻找各种有趣的问题,然后思考能否用 Python 编程来解决它。你可以从生活中寻找各种有趣的问题,然后思考能否用 Python 编程来解决它。你可以从生活中寻找各种有趣的问题,然后思考能否用 Python 编程来解决它。你可以从生活中寻找各种有趣的问题,然后思考能否用 Python 编程来解决它。你可以从生活中寻找各种有趣的问题,然后思考能否用 Python 编程来解决它。你可以从生活中寻找各种有趣的问题,然后思考能否用 Python 编程来解决它。的代码有了这种感觉,证明你在进步。
不要指望自己一出手就能写出完美的代码,要把「迭代」两个字时刻装在心里。这样你才能容忍自己的笨拙,不断提高。正如古人说的那句:
勤学似春起之苗,不见其增,而日有所长。
我在做这个项目的过程中,曾经遇到了中文编码、隐私信息存储、文件名空格处理、绝对与相对路径、发布流程划分、功能解耦合、Web 图片地址附带参数……等等一系列的问题。
通过回顾用 Git 版本控制工具记载下来的日志,以及版本对比功能,你可以清楚看到自己是在何时利用什么方法解决了这些问题。然后别忘了,给自己工具箱里的新增小技能打个勾。
一个个小问题逐渐被你攻克的时候,你才能真正感受到所学技能的价值,并且点滴积累自信。
育乐教育网还为您提供以下相关内容希望对您有帮助:
python为什么这么难?
1 自学没人教,完全靠自己,碰到难搞定的问题没人问 2 Python学习周期比较长,需要有一定的耐心和自制力 3 缺乏系统性的学习,每天学什么都是当天才决定的 4 学习资料不完整,东拼西凑导致学习效果不理想
学Python有必要去培训机构吗
完全没有自制力,需要学习环境;想通过视频自学,但无法坚持到最后;你发誓要坚持,可惜遇到问题没人即时的帮你解答;你可以坚持学习,也找到了人给你答疑,但你就业遇到了困难;你刚找到了工作,但是领导下发的任务有好多问题,你不知道该怎样解决。建议办培训机构。当然了,学习python并不是一件简单的...
想学Python,就一定要参加培训吗
学习Python并不一定需要参加培训,这主要取决于你的个人情况和学习风格。首先,Python是一种相对容易入门的编程语言,具有简洁明了的语法和广泛的应用领域。如果你有一定的编程基础,或者具备较强的自学能力和问题解决能力,那么完全可以通过自学来掌握Python。你可以从网络上找到大量的Python教程、在线课程和书...
想学Python,就一定要参加培训吗
自制力是否强?能否独自仁人手 学习的苦闷;面对一些知识性的问题,是否有Python大佬为你解答;自己的学习能力如何,是否能够利用视频自学;在就业时能否做出一个比较出彩的作品,为你赢得就业机会。如果以上几点不能做到,建议报培训机构。如果将来想要从事Python开发,建议报培训机构系统的学习。很多东西并不...
python好学吗要学多久
Python是一种相对容易学习的编程语言,对于零基础的学习者来说,如果自学,可能需要半年到一年半的时间来掌握其基础概念和技能,这个时间范围因个人的理解能力、学习方式、学习方向以及自制力而有所不同,如果学习者有其他编程语言的经验,入门可能会更快,大约需要2到3个月的时间,参加培训课程,在专业讲师...
自学python怎么学?零基础能学会吗
开始学注意几点:1.代码规范,这本身就是一个非常好的习惯,如果开始不养好好的代码规划,以后会很痛苦2.多动手,少看书,很多人学Python就一味的看书,这不是学数学物理,你看例题可能就会了,学习Python主要是学习编程思想。3.勤练习,学完新的知识点,一定要记得如何去应用,不然学完就会忘,学我们...
学习Python编程有哪些方法?
二、多利用周末或假期的空闲时间学习Python 这条建议看起来有点过分,有的人会说,过个周末不容易,还要挤出时间学习太累了。其实,如果对一天的休息时间进行细分,就能做到玩好的同时又能学习Python。当然了,具体的时间安排可以灵活调整,最重要的是要有一种自制力,娱乐要有度。三、多做题 这一点就...
python自学难吗
python自学完全没有问题的。首先,你必须对自己有信心,编写程序其实没有太高的技术含量,你只需要遵守编程语言的语法规范,然后在这个基础上去实现你想要的功能。买一本靠谱的教材,或者在网上找一些教程,把教材的内容看明白,然后把例子程序输入电脑运行,接着尝试修改一下,看看会有什么变化,把一套...
Python入门到精通要多久?
Python入门到精通需要多久,跟Python学习的方式有很大的关系。自学:选择自学Python,入门大概需要3个月左右的时间,加上深入学习少则一年,多则一年半左右;培训:选择Python培训,从零基础入门到深入学习,4-6个月的时间就可以了。
学习python编程培训费用要多少?
如果你有一定的基础,并且自制能力很强,可以选择网课,既学到知识也不耽搁上班;但是如果你是零基础学编程,自制力也不是很强,那当然是建议选择线下面授课程,线下面授可能还会产生一部分费用(比如住宿费+生活费等),但是学习效果会更好一些,因为强制性大一些,毕竟已经决定参加培训那获得好的就业才是...