分享一个我认为迄今为止最为短时高效的Python学习方法

本文根据多年的Python软件开发以及数据分析经验总结而成,希望能够帮助想要快速学习上手Python,或者已经有一定基础想要更加系统化提高Python技术,但又陷在庞杂的资料推荐中无所适从的你


首先,你要明确你学Python是为了做什么,学Python是为了做什么, 为了做什么,做什么

计算机技术的迭代非常之快,而网上现存推荐的Python学习资料非常多而且杂,动则千余字,上GB的资料大全,学习路径,思维导图。但是,你会发现真的开始学的时候,要么坚持不下来,学不下去,要么真的花了大几个月的时间按照资料一个个啃了,却根本没有用。我曾经还看到一篇答案建议每天花1小时浏览技术博客网站进行随机的Python技术的学习掌握,坚持就是胜利什么的。真的,我坚持了一段时间,血与泪的教训,毛用没有。。。

要牢记,Python只是一个工具,不是目的。不要变成一个学习资料的收藏狂,越来越多的资料堆砌只会让你越看越焦虑。根据多年的Python软件开发以及数据分析经验,我想给大家分享一个迄今为止我认为的最为有效的学习Python的路径方式:

经过经验总结出来的最有效的Python学习路径

我当年就是用这个方法学了Python,R,并且用不到1个月的时间完成计划3个月交接的项目的。根据经验,按这几个步骤走下来,不需要再焦虑地各种寻找资料,花费大量时间去制定计划地没有什么效率地去为了学习而学习了,最多只需要10天的时间,你就可以直接开始上手完成项目了。至于编辑器,开发软件,等等在这篇回答里面就不赘述了,VScode,PyCharm,Sublime, Anaconda挑一个都可以,推荐Anaconda,因为简单易上手并且环境什么的都帮你配置好了。

接下来,让我们来看看具体每一步应当怎么做:

1. 明确自己学Python是为了做什么

再强调一遍,Python只是一个工具,不是目的,你一定要明确自己学Python是为了做什么,一定要有一个或者多个明确的目的。比如,可能你现在的想法是:我学Python是为了找好工作,OK,但这个目的不具体,再往下想一层,我学Python是 (1)为了通过数据分析师的面试在金融行业找到数据分析师的工作,或 (2) 为了通过软件工程师的面试,在互联网行业找到软件开发工程师的工作。都是学Python为了找工作,但是显而易见,这两种不同的学习目的匹配的学习方式有着天壤之别。当有了具体的目的出现之后,你就会发现无论是搜寻资料或者是在看教材的时候,脑中都会有意识地去主动学习

简单归纳一下,一般而言,学习Python的目的可以大致分为以下两种:

(1) 在校计算机学生,或转专业计算机的学生,主要目的是想系统学习计算机知识。相信如果是想要系统学习计算机知识的话,Python肯定不是你唯一的选项,Java,C++可能是更多计算机科学教材的首选。在这种情况下,如果你在校,有系统的教学计划的话,我的建议是,跟着教学计划,用广泛涉猎来精学课程以及项目。不要纠结于哪个教材好,哪个框架新,是用《算法导论》第三版,还是用《清华大学计算机系列教材:数据结构(C语言版)》,跟着教学计划走最大的收益来自于老师,教材,同学,大项目的多维配合,最大程度上开发你的想象力,完善知识体系架构。当然,如果教学计划奇葩地离奇,那另当别论。。

(2) 非计算机专业学生,想用Python做一些真正的东西,有效地提升工作,生活效率。大部分的人应当归于此类,可能你之前从没有接触过编程,Python可能是你的第一个编程语言,人人都在说Python,人人都在谈Python,工作的晋升,转岗都需要Python作为利器的帮助,所以,你想要快速学习上手Python来真正做一些事情。对于抱着此类目的的朋友们,这篇文章非常适合你们,同时,在进行到下一个步骤前,请再多问自己几个问题,要搞清楚,自己究竟要用Python做什么。举两个简单的例子:

我是一个金融行业的数据分析师,之前都是用Excel表格在进行数据的处理,分析,做题以及PPT,每周的工作强度很大,不仅仅因为数据繁杂分析辛苦,更主要的是 1) 每天的Excel处理相同的流程很浪费时间; 2) Excel的计算功能薄弱,常常要引用好多表格,往往会搞错算错; 3) 听说Python可以很方便地跑一些机器学习的东西,想着能不能试一下

很容易看出,作为金融行业的数据分析师,目前有三大需求,不同的需求需要进行不同的主题学习,需求 1) 需要掌握Python的基本操作,OS,CSV包的调用以及Python和Excel的communication, 需求 2)需要掌握Pandas,Numpy包的运算以及Python基本框架的掌握; 需求 3) 需要scikit-learn, tensorflow, keras以及一些作图相关的Python知识

我是一个微信公众号运营,在公司分管着5个公众号,需要 1) 负责粉丝的维护; 2) 文章的管理; 3) 流量的分析管控。这些流程经常需要花大量的时间,并且有时候会出现一些错误

这里和上面的分析流程一样,我们会发现,只要掌握:

Python的基本框架 + 不同的主题学习

在学会了Python的基本框架的基础上,加上根据不同的主题需求进行有针对性的学习了解,我们就可以快速运用Python作为利器完成各种不同的任务

因此,在接下来,我们重点讨论,如何学习搭建基础框架,以及如何快速进行不同的主题学习

2. 搭建基础框架

在明确了自己学习Python的目的之后,我们首先开始搭建基础框架。这一步骤最为重要,但又不能花大量时间陷在其中。基础框架不可能一步到位,需要少量多餐,先搭大骨架,然后填小骨架。这里推荐用理论+实践的方式快速搭建基础框架:

理论:推荐 (1) 廖雪峰的Python教程; (2) Think Python: An Introduction to Software Design - Allen B. Downey。这两个材料,廖雪峰的Python教程是网页版的简单Python入门介绍,Think Python则是一本经典的Python以及计算机科学的入门教材。

1. Python教程​

2. Think Python​

实践:实践其实就是开写,多写代码,才会对不同的代码有感觉。但是很多新手会在第一步配置环境,安装编译器上面卡住,从而浪费了时间并且心生畏惧。对此,推荐DataCamp这个网站(此处绝非广告),只要有一个浏览器打开网站,就可以直接开始写代码,无需进行复杂的环境配置。

DataCamp 操作界面

在搭建框架环节,关注只要跟着网站节奏完成以下四门课成就足够了解基础框架结构了:

1. https://learn.datacamp.com/courses/intro-to-python-for-data-science

2. https://learn.datacamp.com/courses/intermediate-python

3. https://learn.datacamp.com/courses/data-manipulation-with-pandas

4. https://learn.datacamp.com/courses/introduction-to-data-science-in-python

关于学习方法的路径总结图如下,按照这个简单有效的路径总结图过一遍,很快你就能很好的搭建好Python知识的基本框架:

基础框架搭建的路径总结图

3. 针对主题,用入门资料快速上手

从这步开始,不同的任务需求开始进行不同的分化,正如第一步的时候已经思考过的,不同主题需要不同的学习资料。当已经有了基础框架的打底后,你只需要根据不同的主题需求,找到以下4种类型的资料:

例子 (Examples): 首先,在网上搜索你要做的东西以及相应的例子,比如,你想做一个机器学习分析股票的应用或者程序,那么就直接搜“如果用机器学习预测股票价格的波动”,网上的大把的博客例子你都可以作为参考,在搜索的时候,最重要的注意的东西就是他们用了什么包,以及他们的分析思路框架是什么?

包 (Package): 在Python当中一个非常重要的内容就是包的使用,作为一个社区极其庞大的最为流行的编程语言,Python拥有数量庞大的包,根据不同场景,调用不同的包是最快能够上手项目的方法,比如,你想做网络爬虫,那么beautifulsoup4, selenium就是必备包,数据科学:pandas, numpy, matplotlib, sklearn,统计分析:PC,深度学习: tensorflow, keras。根据应用内容的不同,市场上有成千上万的包,在前一步例子的搜集后,找相应的包就相对比较轻松了

导言 (Tutorial): 在有了包 (Package)的列表之后,相应的,你可以开始搜索他的导言用来帮助你熟悉这个包的应用以及如何解决问题,一般而言,导言都是清晰简单易懂的几个小项目,过一两遍,记下来地址就可以了

参考文档 (Documentation):这个可以是Documentation,或者是相应的教科书,不需要看,就放在旁边,当真正做起项目来有一些非常难调试难解决的bug的时候,往往回归参考文档可以带来意想不到的收获

接下来,准备工作都完成了,就可以开始直接干了

4. 直接做项目,在做当中学

当经过了前三步之后,现在的你,明确知道自己想要做什么,有了对Python基本框架的认知,针对具体主题已经有了四大资料,接下来,根据要做的事,直接就开始上手写代码了。

一开始,你可能无从下手,可以先尝试从模仿开始,模仿不等同于直接复制黏贴,这一是对原创者的不负责任,二是对自己的不负责任,因为直接的复制粘贴对于你代码技术的提升并无帮助。

接下来,如果有遇到想要实现却不知道怎么实现的功能的时候,Google, Baidu, Stackoverflow 这些网站都是非常好的资料来源。

继续写下去,恭喜你,你遇到bug了,你会发现自己的程序跑不了,或者结果总出错,这个时候不要慌张,因为这个是必经之路,同时也意味着你的代码能力将得到很大的提升,对于bug的解决办法,还是查,复制错误代码到搜索引擎,看看别人是不是有同样的问题,他们是怎么解决的。当你成功解决掉一个错误bug后,你往往会发现自己对编程的理解又上了一层楼

最后,改。就像是好文章永远不是写出来的,而是改出来的。你的代码在一开始可能看起来会非常混乱并且没有什么逻辑,可能到处都是for loop,if...else...,没关系,你只需要把代码改到自己下次打开文档的时候能够理解,就可以了。不需要追求完美。

5. 在项目中查缺补漏,回归基础框架的完善

通过了以上4步之后,恭喜你,你已经可以快速做出一份漂亮的Python项目了。让我们再次回到之前的总结技术图:

经过经验总结出来的最有效的Python学习路径

每一次做完项目之后,请归档总结。这有助于你的技术力量的提高,以及技术力量的积累。在完成了诸如机器学习分析股票价格项目后,稍微花一点时间总结一下,你很容易能找出自己知识框架结构中的不足,比如函数功能的理解不透彻,或类的定义不明确,诸如此类,通过一次次项目,一次次的总结,你会发现自己的Python能力会呈现一路上涨的趋势。

如果你看到了这里,首先,恭喜!你用宝贵的10分钟时间为你之后的Python学习省下了数百个小时。其次,感谢您的用心阅读,欢迎点赞收藏!

欢迎扫描二维码关注我们:

微信公众号:数据干货 http://weixin.qq.com/r/VBFzawDE-F2DrUQI90RG (二维码自动识别)

知乎:数据干货

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容