各位想高效学习和掌握python的朋友,请看过来。好了在给大家分享之前呢,我介绍一下我弄的一个学习交流群,有什么不懂的问题,都可以在群里踊跃发言,需要啥资料随时在群文件里面获取自己想要的资料。这个python群就是:643692991 小编期待大家一起进群交流讨论,讲实话还是一个非常适合学习的地方的。各种入门资料啊,进阶资料啊,框架资料啊 爬虫等等,都是有的,风里雨里,小编都在群里等你。
疑问
随着数据科学的概念普及,python这门并不算很新的语言火得一塌糊涂。
因为写了几篇用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写作这本书的时候,同时开放推出了ibook格式。里面就包含了自己的授课视频,供学生直接观看学习。
后来,charles用这本书扩展,做成了一门mooc。这就是2015年时硅谷资深工程师都在争相学习的 “programming for everybody”。
charles深谙课程迭代的技艺。他不断添加内容,完善课程体系,将一门课发展成一个专项课程(signature track),并且将教材升级为 “python for everybody: exploring data in python 3”
在目前全球mooc口碑榜上,charles的这门课一直名列前茅。
这个专项课程不仅给你深入浅出讲解python本来就很简单的语法,而且还用数据科学的一些基础工作任务,带动你去使用python语言,写简单的小项目。增强你的信心,激发兴趣。
对于自律程度低的同学来说,下面这个特性更重要——一切工作都有时限。coursera上的课程,每周的任务很明确。每周练习题正确率如果不能达到80%,就不能过关。到了截止日期,如果你不能完成全部练习和课程项目,就拿不到证书。老师在前面引领你,助教在旁边督促你,平台用时间表催你,身后同学们在用同侪压力推你……
想偷懒?想三天打鱼两天晒网?很难。
路径ii
如果你的自律能力中等偏上,那么你可以选择的面就宽了。
这里我给你推荐另一个mooc平台,叫做datacamp。
我第一次接触datacamp,是在2015年初。我在coursera上选修杜克大学的统计学课程,配套的练习就在datacamp上。
当时这个平台就给我留下了深刻的印象,因为代码的运行都采用了云环境。学习者不需要在本机安装任何环境,一个支持html5标准的浏览器就能带给你完整的学习体验。
两年之后,datacamp已经迭代得更为强大了。你可以打开首页的data scientist with python这个学习路径,查看其中已经提供的20门课程。
这些课程涵盖了从python基础,到数据处理,直至人工智能和深度神经网络的方方面面。
所有的课程设计,都是短小精悍的。一般不超过4个小时,就可以完成某一主题的学习。进度完全由学习者 自己掌控 。
因为可以自定义学习时间表,我把它归纳为适合有一定自律能力的学习者。它既可以给你即时的回馈,让你时刻了解自己所处的位置进度,不会迷失方向,又能充分体验自主学习的乐趣。
datacamp的课程,一般都是第一部分免费开放。后面的课程如果学习,可以按课程来购买。或者可以购买一定的时间段(例如一年),在此时间段以内所有课程都可以学习,并且获取证书。每年都会有特定时间打折促销,可以适时关注。
这是我拿到的深度学习框架keras证书,确实只需要几个小时的时间就能学完。成就感还是蛮强的。
路径iii
前面提到的课程选择虽好,但是费用不菲。coursera上每门课程的平均价格在49美元左右。注意对于来自非发达国家的学生群体,coursera可以提供助学金。你可以根据自己的需求如实填写申请表,来获得资助。
对于自律能力强的同学来说,你的选择可以变得非常简单直接——可以用最受推崇的教材,自己看书学习。
最受推崇的教材,其实是没有的。这个世界上,就没有哪件东西大家都说好。但是专业人士中,口碑非常好的教材是存在的,例如那本起了个怪名字的《笨办法学python》(learn python the hard way)。
千万不要被名称迷惑,望文生义觉得这是一本糟糕的python入门教程。
恰恰相反,这本书的设计,非常适合人们的认知规律。
我们学东西,由浅入深,由易到难,逐步递进。如果一味追求新知,那么之前学的东西会很快遗忘。如果总是原地打转,会带来枯燥和无聊的感觉。还记得高三做的那一年卷子吧?
好的教科书,应该在每一个章节给学习者提供新的知识和内容,提出足够的挑战。但是挑战性不能高到让学习者产生挫败感而放弃。同时也不能忽视在后续内容中把前面所学知识改换面目不断螺旋上升式重复。只有这样才能巩固所学,让学习者感受到基础知识的作用,增强学习的愉悦感。
这么说有些抽象,实际上有一本英语教材非常符合上述认知规律。那就是我在课堂上和文章里反复推荐过的《新概念英语》。
《笨办法学python》也是一本这样的书。你需要做的就是把书打开,同时打开一个代码编辑器,开始按照书中的要求敲代码、运行代码、改代码……
书中对python基础内容训练的完备性,至今无出其右者。
顺便说一句,这本书有中文版哦。所以如果你英语不好,完全不用担心。
但是多嘱咐一句,英语真该好好学。增加的不仅是你的眼界,也包括机会和可能性。
挑战
三条基本的python入门路径讲完了。通过对自己自律能力的理解,相信你可以找到一条适合自己逐渐学习和掌握python的方式。
但是完成了读书和听课,是不是就完事大吉了?
当然不是。
许多人在这里犯了错误。他们以为拿到了证书,或学完了教材,就算是真正掌握了python,然后把这门语言丢弃在一旁,去刷美剧和小说了。
相信我,你会 遗忘 的。
如果你对于长期不接触的东西从不遗忘,那绝对不是什么好事儿,应该去医院检查一下。
大部分人的记忆模式,都是这个样子的。
不加以干涉的话,不出一个星期,你就能把学到的新知识几乎忘光。
如果你不希望自己辛苦学来的python知识被如此轻易丢弃掉,怎么办?
实践
对,你应该实践。
实践python,未必一定要找个世界500强企业的核心技术部门,“996”工作一年才能完成。
你可以从生活中寻找各种有趣的问题,然后思考能否用python编程来解决它。
我第一次觉得自己初步掌握了python,就是在完成了我的第一个github项目之后。
项目非常简单,就是用python作为胶水语言,把一系列工具连接在一起。可以把markdown撰写的内容随心所欲一键变化成各种格式。
格式包括而不限于:
pdf/latex;
word;
bitcron文稿;
markeditor文稿;
mweb文稿;
bear文稿;
textbundle(可以导入mindnode, ulysses等);
reveal.js幻灯;
发布版本markdown(图片一键至七牛图床);
本地版本markdown(简书等远程markdown同步图片至本地);
day one日记
其中部分功能我正陆续发布在github公开项目中,地址在 这里 。相应地,我也撰文做了介绍。
这个小项目,我从2014年开始做。实话实说,现在回头看当时的代码,简直惨不忍睹。但是如果你逐渐对自己的代码有了这种感觉,证明你在进步。
不要指望自己一出手就能做出 完美的 代码,要把“迭代”两个字时刻装在心里。这样你才能容忍自己的笨拙,不断提高。正如古人说的那句:
勤学似春起之苗,不见其增,而日有所长。
我自己在做这个项目的过程中,就曾经遇到了中文编码、隐私信息存储、文件名空格处理、绝对与相对路径、发布流程划分、web图片地址附带参数……等等一系列的问题。
通过回顾用git版本控制工具记载下来的日志,以及版本对比功能,你可以清楚看到自己是在何时利用什么方法解决了这些问题。然后别忘了,给自己工具箱里的新技能打个勾。
一个个小问题逐渐被你攻克的时候,你才能真正感受到所学技能的价值,并且点滴积累自信。
讨论
你学会python了吗?你是用什么方法学会的?可否把你的学习心得体会分享给大家?对本文推荐的资源和路径,你有什么不同的意见,或者更好的建议?欢迎留言,记录下你的思考,我们一起交流讨论。