前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >你是如何自学 Python 的?

你是如何自学 Python 的?

作者头像
Python之道
发布2018-09-20 15:40:30
1.1K0
发布2018-09-20 15:40:30
举报
文章被收录于专栏:程序员八阿哥程序员八阿哥

好久不见

---------------------------------------

1. 总体来讲,找几本靠谱的书,由浅入深,边看边练。

我是从去年下半年开始学习Python / ML / CV,利用每天晚上22:00- 01:00的业余时间,每天进行,几乎很少间断。

2. 以下是我自己训练Python的一些小经验。

2.1 基础入门

当然是因工作需要而学,所以有倾向性,会以Data Analysis或者现在时髦的说法叫Data Science方向为主。 01-《a byte of python 中文版》绝对入门级,扫盲,零基础的人都可以看。当时我大概花了三天撸完,照着敲了一遍代码。稍微有点感觉了。 02- 看斯坦福的在线教程,入门级。Python Numpy Tutorial英文好的同学可以看看,这个教程我看的不多。主要是因为自己喜欢看纸质书。 03-同时继续夯实python语言本身,建议看《Python Cookbook 中文版》,我也时不时的会看

2.2 以上基本概念弄熟练后。接下来看你要做什么了?选个方向。

  • 1、Web开发方向

那么建议看简单的框架flask,那么推荐《Flask Web开发:基于Python的Web应用开发实战》。(我只扫一眼目录,因主要方向不在此处)

  • 2、数据分析方向

建议看《利用Python进行大数据分析》,非常棒!强烈建议看。主要讲Pandas库,讲数据分析。很多金融巨头,用Python进行数据分析。引用大神Kirat的话说,“它正在快速代替主流金融机构中使用的工具和语言,并成为事实上的标准”。我花了1个月左右时间,一个字一个字啃完。同时边敲代码。

  • 3、科学计算方向

建议看《python_sci用python进行科学计算》。

  • 4、AI的机器学习方向

建议看《Hands-on ML with Scikit-learn and TensorFlow》,还没有中文版,我在看。若有同学需要中文版,可以告知我,我视需求而定,是否将其翻译成中文版。

  • 5、AI的计算机视觉方向

建议看《Python计算机视觉编程》,我还在看,虽然看得不多。

  • 6、网络爬虫方向

这里不多作介绍。

2.3 夯实:若有同学对【数据分析方向】感兴趣

这里强烈推荐Yupeng Jiang博士撰写的《三天搞定Python基本功》,只用三天时间可以了解Python数据分析的广度和所涉及的概念,是诚意之作,十分难得!因原文是用英文写成,给英国伦敦大学学院的本科生、研究生上课用的。我将其翻译成了中文,便于自己将来快速复习用。在征得jiang博士的同意后,分享给大家。链接:

英文原版可见链接:三天搞定Python基本功

2.4. 进阶:顺着【数据分析】这个方向,把金融类的数据分析搞透彻。

在看完《利用Python进行数据分析》之后,强烈建议看《Python 金融大数据分析》一书。

我是自学的Python。从对Python一无所知,到在博客上写Python相关的系列文章(Python快速教程),前后有将近三年的时间。期间有不少门槛,但也充满乐趣。乐趣是自学的最大动力。Python是一个容易编写,又功能强大的动态语言。使用Python,可以在短短几行内实现相当强大的功能。通过自己写一些小程序,迅速的看到效果,发现问题,这是学习Python最便利的地方。

在学习Python之前,可以了解一下Python的特点和设计理念(Python简史)。在设计之初,Python就试图在复杂、强大的C和方便、功能有限的bash之间,找到一个平衡点。Python的语法比较简单,用起来很方便,因此有些人把它当作脚本语言使用。但Python要比普通的脚本语言功能强大很多。通过良好的可拓展性,Python的功能相当全面,应用面很广:web服务器,网络爬虫,科学运算,机器学习,游戏开发…… 当然,天下没有免费的午餐,也没有完美的语言,Python为了达到上述两点,有意的牺牲了Python的运行速度。如果你是在编写高业务量、运算量的程序,可能Python并不是最好的选择。


Python的主体内容大致可以分为以下几个部分:

  1. 面向过程。包括基本的表达式,if语句,循环,函数等。如果你有任何一个语言的基础,特别是C语言的基础,这一部分就是分分钟了解下Python规定的事。如果你没有语言基础,建议从Python Programming为参考书。这本书是计算机导论性质的教材,不需要编程基础。
  2. 面向对象,包括面向对象的基本概念,类,方法,属性,继承等。Python是面向对象的语言,“一切皆对象”。面向对象是很难回避的。Python的面向对象机制是相对比较松散的,不像Java和C++那么严格。好处是容易学,容易维护,坏处是容易犯错。
  3. 应用功能,包括IO,数据容器如表和词典,内置函数,模块,格式化字符串等。这些在其它语言中也经常出现,有比较强的实用性。
  4. 高级语法,上下文管理器,列表推导,函数式编程,装饰器,特殊方法等。这些语法并不是必须的,你可以用前面比较基础的语法实现。学这些高级语法的主要原因是:它们太方便了。比如列表推导一行可以做到的事情,用循环结构要好几行才行。

学习Python主体最好的参考书是Learning Python,它非常全面,满满的都是干货。虽然很厚,读起来并不难读。另一个是参考官网的教程Python.org


Python号称“Battery Included",也就是说,功能都已经包含在了语言中。这一自信,主要来自Python功能全面的标准库。标准库提供了许多功能模块,每个模块是某一方面功能的接口,比如文件管理,操作系统互动,字符处理,网络接口,编码加密等等。

The Python Standard Library中,你可以看到标准库模块的列表。这里也是标准库最好的学习资料。如果想找书,我只看到过两本关于标准库的: Python Essential Reference The Python Standard Library by Example

说实话,这两本都不算很好的标准库教材,而标准库的参考书也确实很难写。因为标准库只是调用功能的接口,最终实现的是Python和系统的互动。这需要很强的系统知识,比如文件系统知识,进程管理,http原理,socket编程,数据库原理…… 如果这些知识都已经准备充分,那么标准库学起来完全没有难度。然而,这些背景知识的学习并非一朝一夕的事情。

更深入的Python学习也是如此,需要大量的背景知识,而不是Python自身。如果你对Python的编译和运行机制感兴趣,你可以往Python底层这一深度挖。如果你对应用感兴趣,你可以多学习几个自己用的上的第三方包。学到这个时候,就是要自己探索的广阔空间了。


基本上,学过主体内容之后,Python还是要靠做项目来练习。有不少小练习题类型的资料,比如Python Cookbook。但更好的方式是自己去想一些应用场景,用Python来解决。Python功能全面,所以不要担心自己想的问题Python解决不了 (基本上Python解决不了的问题,别的语言也没戏)。比如我学习多线程的动力,就因为要并行的下载大量的文件。基本上一个项目下来,会用到Python好几块的内容,知识会特别巩固。

最后,和其它任何知识的学习一样,笔记和总结很重要。在看参考书和看网页时,可以做一些笔记。等到学了一段时间后,可以把笔记整理成更有条理的参考卡片(reference card),或者写博客。这也是我写“Python快速教程”的主要原因。另外这个教程内容的顺序,也是我认为的比较合理的学习顺序,仅供参考。


作者:MurphyWan 链接:https://www.zhihu.com/question/20702054/answer/236412402 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 总体来讲,找几本靠谱的书,由浅入深,边看边练。
  • 2. 以下是我自己训练Python的一些小经验。
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档