一文解读如何学习Python!

为了更好地帮助Python初学者学习这门有趣的语言,小编把近期读的书籍、文章以及资料总结了一下,希望能尽可能地帮助初学者扫清障碍、看得更远…最高效最快速的学习方式:最高效最快速的入门学习方式:看视频课程,跟着知识兔老师操作,听知识兔老师讲解,初学者不要自己瞎琢磨瞎折腾,很容易走弯路。《Python入门深入编程教程爬虫量化金融科技数据基础项目课程》

一文解读如何学习Python!_第1张图片

公众号:超乎想象

给想要学习、分享Python、AI知识的你!

综合python相关书籍和网上各种学习python的建议,生成了这张Python思维导图,里面囊括了Python的大部分知识点。

一文解读如何学习Python!_第2张图片

从目前的各种现象来看,Python是世界上最流行的编程语言(2017年),也是最容易学会的语言(很多计算机小白都能上手)。

★新手怎入门编程,怎么避免从入门到放弃?

在学习Python的过程中,你会遇到:

抽象的计算机概念

抽象概念是可以学会的,只要跟自己的实际生活相关联,总能找到一些类比去理解抽象概念。

 

完整而细微的语法规则

快速过完主要的 Python 基础知识,建立基本的知识模型;动手练习网上 / 教程 / 书本的相关小实例。

 

一些不重要的时而存在的信息

信息对于初学者是有重点的,不要关注所有信息,学会区分“信号”与“噪声”。

 

过度学习概念而忽略使用

Python的实用性很强,以使用为核心学习Python,你会学到很多。

 

枯燥的文字描述

学习Numpy、Pandas、Scipy、Matplotlib等模块时,多练习,多用相关的画图函数,视觉化的内容去更高效的理解。

★怎样开始,并建立自己的学习过程?

(引用自百度百科及相关文章)

 

一、Python背景

ABC 是专门为非专业程序员设计的一种教学语言,但是由于其封闭,并未取得成功。1989年的圣诞节期间,吉多·范罗苏姆开发了一个新的脚本解释器,并命名为 Python,作为 ABC 语言的一种继承。新的脚本解释器开放,完美结合了 Unix Shell 和 C 的使用习惯。

 

二、Python应用场景及语言特点

应用场景

网站后台

有大量成熟的框架,如 Django,Flask,Tornado

网络爬虫 

Python 写爬虫有很多库可用,如 Scrapy,Beautiful Soup

科学计算 

可以替代 R 语言和 Matlab,如 NumPy, SciPy, Matplotlib, Pandas

数据挖掘

机器学习,大数据 Scikit-learn,Libsvm,TensorFlow

系统部署

运维脚本 Shell 适合简单的系统管理工作,但涉及复杂的自动化任务还是需要 Python。

 

语言特点

Python 的设计哲学是:优雅、明确、简单。

Python 的开发哲学是:用一种方法,最好是只有一种方法来做一件事。与其他语言非常不一样的是,Python 以缩进来确定语句块。

 

Python 是一门面向对象的动态、解释型语言,具有出色的模块化特性。同时,Python 拥有大量的第三方开源包,可以直接使用,极大地提高了开发效率。Python 编写的代码,可读性强,特别适合多人大型项目的开发。

但是 Python 的执行效率一般。

 

三、Python的数据结构、逻辑结构

数据结构

Python 中内置类型有整型 int,浮点型 float,布尔型 bool,字符串 str,列表 list,元组 tuple,字典 dict,集合 set。

逻辑结构

if 条件判断结构、for 循环结构、while 循环结构。(if;for;while;)

 

四、Python从一个独立模块到一个完整项目,

以及库的概念

模块

定义包、定义类、定义函数。

项目

N个模块的集合。

通常,发布者会将使用频率高、可以复用的功能,打包成库,提供给大家共同使用。

库可以分为两类:

一种是官方的库,通常质量比较高、会维护更新;

一种是第三方的库,质量参差不齐,需要自己甄别。

 

相关举例

Django 是一个十分优秀的 Python 写的 Web 程序框架,广泛用于数据驱动类的网站开发。

Django 是一个大而全的开发框架,基本不需要额外的第三方配置,就可以快速地进行开发。(项目)

 

Django 中提供了 from django.views.decorators.http import require_POST 装饰器用于确保 view 函数的请求方法是 POST。使用这个装饰器可以简化 view 函数中的条件判断,有利于编写简洁易读的代码。当然 ,Django 还有大量的第三方 App可以下载使用,直接提供一个完整功能。(库、模块)

 

在项目开发的过程中,合理地使用库会起到锦上添花的效果。

 

★从事机器学习(包括量化交易),该怎样计划学习?

一、要拥有运用数据科学处理各种商业问题的能力,

需要具备以下技能

一流的分析技巧:探索凌乱的数据集并提取、洞察的能力;

在SQL运用能力方面是一名内行;

能很好的掌握假设检验、分配、回归分析和贝叶斯方法;

有与商业方面的机器学习经验;

对于Python语言和Jupyter环境有经验;

对于pandas、numpy、sk-learn和NLTK有一定操作经验;

具备写编写Latex格式文档的能力;

在统计学,运筹学,经济学,计算机科学,或其它相关领域具有本科或硕士学历。

(未来数据分析是一种工具,在金融、互联网、电子商务、公共服务、医疗健康等领域非常广泛。)

 

二、核心:

1、数据分析技能

数据清洗

建立数学模型

运用合适的统计方法来分析数据

运用机器学习算法

检验模型的正确与否

实现数据可视化

 

2、编程技能:

精通一种或多种数据分析工具(R/Matlab/SPSS/SAS)

精通一种或多种面向对象的编程语言(Python、C++、Java、C#、perl 等)

其他IT公司经常需要的技能(熟悉HTML/CSS,互联网公司可能会要求)

 

3、数据管理技能(尤其是针对大规模数据):

hadoop(尤其是hive/HBase、HDFS和MapRdeuce)

SQL

NoSL

其他IT公司常用的数据管理技能

 

★相关书籍、博客推荐:

 

一、再次推荐网上比较流行的学习Python方法

(豆瓣Python大牛,董伟明老师总结)

1、先看书,了解语法和语言的基本理论

2、写代码去实践

3、看博客吸收别人的观点

看博客文章,应该看如下几类内容:

 实际工作中的实践和经验

Python使用经验和技巧

对Python实现的分析和理解

介绍先进的思想、框架、库甚至生态

 

二、博客:(董伟明老师建议)

1、www.pydanny.com。

博主是《Two Scoops of Django》的作者,我在Twitter上关注最早的开发者之一(我的Twitter被盗了,现在不玩了)。博客里面很多Python技巧,另外在Django方面作者贡献了非常多的内容和开源项目。

 

2、www.saltycrane.com/blog/。

可以说是看着这个博客在成长,以前对Python不熟的时候经常Google用法就跳到它的文章上,然后借鉴一下下。

 

3、https://alexgaynor.net。

它的博客更多的是一些开发的感想和观点,印象最深的是有篇代码review的文章,其中引用了这么一段话:

10 lines of code = 10 issues.

500 lines of code = "looks fine."

Code reviews.

 

4、techspot.zzzeek.org/。

作者创建了SQLAlchemy、Mako、Alembic这些我天天在用的开源项目,它有篇叫做「Asynchronous Python and Databases」讲异步数据库的文章写得非常好,大师级别。

 

5、jessenoller.com。

Python核心开发,python.org「设计师」,给《Dive into Python 3》和《The Python Standard Library by Example》写序。博客也不怎么直接写Python代码,更多的是Python和架构的设计和心得。有兴趣的可以了解下Python官网的设计者们对重新设计的理解: http://pythonorg-redesign.readthedocs.io/en/latest/ ,这对于大家自己写网站的

 

6、effbot.org。

模块使用方面和PyMOTW比较像,不过还有大量的库使用以及其他经验。我第一次用Python实现缓存就是看它的文章写的。

 

7、julien.danjou.info。

最早是学习AST翻到的,后来就一直关注了。作者是Debian开发,在Red Hat工作,对OpenStack很熟悉。之前会分享一些Python语言和使用技巧,现在可能走上管理岗位不怎么写代码了。

 

8、sayspy.blogspot.com。

很早就不再更新了,可以在里面翻到一些博主对Python的一些理解,很深入和细致,虽然现在看来某些观点我并不是全部赞同,但是对于当时的我也是很有益处的。

 

9、jeffknupp.com。

最早是由于《Writing Idiomatic Python》这本电子书关注的,博客有一些Python实践的心得,不过现在博主不怎么写了。

 

10、eli.thegreenplace.net。

相对于国内那些舔着脸说「全栈」的,这才是一个好的全栈开发者,涉猎极广。它的博客有非常多Python的深入内容

 

11、planetpython.org。

我之前在知乎就推荐过,一个Python资讯聚合网站,左侧列了一大片博客链接,其中有很多Python核心开发。

 

12、dbader.org。

如博客的副标题,真的非常提高Python能力。有很多国内的开发者写的博客其实明显是看了它的博客受到启发甚至「借鉴」。必读五星!!

 

13、nedbatchelder.com。

同样有非常多的Python技巧,我个人不太喜欢不加代码全文空说的那种,这个博客一直是我的学习的榜样:有演示代码,有讲解也有心得。

 

14、doughellmann.com/blog。

大家都知道吧?PyMOTW系列的作者的博客。通常每篇介绍一个模块的使用,每篇都写得很深入,比官方网站对于模块的介绍细,你可以轻松的学到额外的「隐藏技能」。

 

15、lucumr.pocoo.org。

Flask作者的博客,一句话介绍:有思想,虽然有些观点我并不认同。由于它现在转去做Rust开发(应该是觉得在Python圈曲高和寡的厉害)了,Python语言相关的内容并不多了。

 

16、snarky.ca。

应该很多人不知道这个博客,其实作者Brett Cannon是一个很知名的Python核心开发。对于中高级开发,强烈推荐。在这里又想岔开一下,知乎上有很多评价Python和Go,我很无奈... 

之前有个「为何 Go 依然远远没有 Python 流行?」的问题老有人邀请我,我(董伟明)后来这样回答的:

 

脱离场景谈对比都是耍流氓

我一直说开发者需要一个正确的价值观,什么意思呢?在知乎里面如果讨论Vue,我是相对认可的,因为Vue的作者就在知乎。但是并不是其他的不好,只是ng和react的核心开发者并不混知乎,人都是跟风的,一个人说我好,别人又没有能力说不好,最后就搞得好像Vue在国内一统江湖的感觉。

那么讨论Python,在知乎意义不大,因为中国直到去年底才出现了一个运维开发方向的核心开发者,而且还不混知乎。你们天天在知乎上听一堆代理人都不算的在吵在争论。我大部分时候是不参与论战的,做好自己的事情就好了,既然不是核心开发者又对Python没那么深入去扯什么?所以说,你们看到的大V并不一定很懂Python,比如我。所以今天我给你们推荐一些国外真正厉害的开发者的资源,这样渐渐的知道什么是真的正确的。为什么岔到了这里呀?是因为Brett Cannon在13年的时候就写过对Python和Go语言的看法,你们应该去看看核心开发者是怎么看待的,而不是听某些Go和Python都没学好的键盘侠说。

 

17、www.blog.pythonlibrary.org。

博主写过2本书:《Python 201》和《Python 101》想必很多人听过吧?博客早期会介绍一些Python相关的技巧和经验,后来做了一个挺有意思的「PyDev of the Week」,每周采访一个Python开发者,可以没事了解下业界其他开发者的一些观点和动态。

 

18、Reddit。

Reddit社区的Python节点,绝大部分业界新的思想、观点和项目都是首先在这里被讨论的,这里汇集了大量的Python老手(虽然大部分也是潜水),国内技术内容质量很差,抑或是万年老贴(比如爬虫),抑或就是新闻联播病毒式通稿,有时候出来一篇爆红的文章,其实也不过是翻译人家的人或者冷饭热炒。你们以后有可以不用在知乎和一些公众号看一些低质量的内容了,当然还是需要一些英语基础的了。

 

19、Pycoder’s Weekly,Python Weekly,

Import Python Weekly,Awesome Python Newsletter。

这几个订阅源我就不分开说了,如果你精力有限,每周翻翻它们发出来的有意思的项目和文章也是很有益处的。

三、书籍:(机器学习相关)

1、《统计学:从数据到结论》 吴喜之著

 

2、《复杂数据统计方法 基于R的应用》吴喜之著

 

3、《模式分类》第二版:

除了保留了第1版的关于统计模式识别和结构模式识别的主要内容以外,读者将会发现新增了许多近25年来的新理论和新方法,其中包括神经网络、机器学习、数据挖掘、进化计算、不变量理论、隐马尔可夫模型、统计学习理论和支持向量机等。

 

4、《推荐系统实践》:

过大量代码和图表全面系统地阐述了和推荐系统有关的理论基础,介绍了评价推荐系统优劣的各种标准(比如

覆盖率、满意度)和方法(比如AB测试),总结了当今互联网领域中各种和推荐有关的产品和服务。

 

5、《深入搜索引擎–海量信息的压缩、索引和查询》:

理论和实践并重,深入浅出地给出了海量信息数据处理的整套解决方案,包括压缩、索引和查询的方方面面。其最大的特色在于不仅仅满足信息检索理论学习的需要,更重要的是给出了实践中可能面对的各种问题及其解决方法。

 

6、《大数据:互联网大规模数据挖掘与分布式处理》:

主要内容包括分布式文件系统、相似性搜索、搜索引擎技术、频繁项集挖掘、聚类算法、广告管理及推荐系统。

 

7、《Web数据挖掘》:

信息检索领域的书籍,该书深入讲解了从大量非结构化Web数据中提取和产生知识的技术。书中首先论述了Web的基础(包括Web信息采集机制、Web标引机制以及基于关键字或基于相似性搜索机制),然后系统地描述了Web挖掘的基础知识,着重介绍基于超文本的机器学习和数据挖掘方法,如聚类、协同过滤、监督学习、半监督学习,最后讲述了这些基本原理在Web挖掘中的应用。《Web数据挖掘》为读者提供了坚实的技术背景和最新的知识。

 

8、《数据之巅》:

对大数据追根溯源,提出当前信息技术的发展,已经让中国获得了后发优势,中国要在大数据时代的全球竞争中胜出,必须把大数据从科技符号提升成为文化符号,在全社会倡导数据文化。、

 

9、《深入浅出统计学》:本书涵盖的知识点包括:信息可视化、概率计算、几何分布、二项分布及泊松分布、正态分布、统计抽样、置信区间的构建、假设检验、卡方分布、相关与回归等等,完整涵盖AP考试范围。

 

10、《矩阵分析》:

本书从数学分析的角度论述矩阵分析的经典方法和现代方法,取材新,有一定的深度,并给出在多元微积分、复分析、微分方程、量优化、逼近理论中的许多重要应用。主要内容包括:特征值、特征向量和相似性,酉等价和正规矩阵,标准形,Hermite矩阵和对称矩阵,向量范数和矩阵范数,特征值和估计和扰动,正定矩阵,非负矩阵。

 

11、《机器学习导论》:

对机器学习的定义和应用实例进行了介绍,涵盖了监督学习。贝叶斯决策理论。参数方法、多元方法、维度归约、聚类、非参数方法、决策树。线性判别式、多层感知器,局部模型、隐马尔可夫模型。分类算法评估和比较,组合多学习器以及增强学习等。

 

12、《机器学习及其应用》:

全书共分14章,内容分别涉及因果推断、流形学习与降维、迁移学习、类别不平衡学习、演化聚类、多标记学习、排序学习、半监督学习等技术和协同过滤、社区推荐、机器翻译等应用,以及互联网应用对机器学习技术需求的探讨。

你可能感兴趣的:(一文解读如何学习Python!)