Python难学吗?不难,我边做项目边学,过了半年就通过了出版社编辑的面试,接到了一本Python选题,并成功出版。

有同学会说,你有编程基础外带项目实践机会,所以学得快。这话不假,我之前的基础确实加快了我的学习进度。不过话说回来,我平时也做兼职培训,我的学生大多是没基础的,我用本文给出的资料和方法去培训他们,学的好的同学,3个月后能干基本的python项目,照此速度,用1年时间做到精通python,达到出书的程度,应该也不是难事。

所谓赠人玫瑰手有余香,本人将在这篇文章里,尽可能详细地复原本人的学习历程,以及我辅导学生学python的步骤,以求最大程度帮助到那些想学python的同学。

1 要明确目的,没目的宁可学其它

如果是为了学着玩,那么不建议学python,因为学了几周就会因为失去兴趣,这样之前的学习就白费了。

学Python一般需要有比较功利性的目的。比如想学好了跳槽涨工资,又如像我这样公司项目要用,学好了挣工资,或者干私活要用,学好了能录制视频能出书。

明确好目标后,你就有学习方向了。比如你学好了想要跳槽,就去看大多数jd对python的要求,无非是数据分析,爬虫外带各种机器学习和深度学习应用。比如像我要做金融量化,无非也是数据分析三剑客和深度学习,可能还外带些爬虫技术。如果你要出书出视频,也去看人家怎么做的。总之,有了功利性的目的后,你就会明白你该学习的内容列表。

其实说倒底,哪怕是深度学习知识图谱人工神经网络这些看上去很高深的技能点,但在python里无非是引入库+调用方法,无非就是调用时传入不同的参数罢了,而且这些技能都有现成的书可以参考。但如果你事先不明确学习目标,这样就不会知道还要学什么。

我看到网上有不少人在问,python该怎么学?该学些什么?这种事情别人怎么知道?其实更应该问你自己。你以后想怎么用Python挣钱,就该学什么。

2 一定得先搭好环境,安装好第三方包

废话讲多了,不管你要学python里哪些方面的技能,开发环境是一定要搭建的。

1 到官网https://www.python.org/downloads/windows/,下载Python解释器。

2 下载集成开发环境,比如eclipse+pydev,或者直接用Pycharm,我现在用的是后者。

3 下载第三方包,基本命令是pip install,必要时还需要换源。

Python开发环境怎样才算搭好呢?

1 能在Pycharm等集成开发环境里运行通python的hello world程序。

2 能正确地下载好第三方包,这里就以numpy举例,下载好这个库,并能在pycharm里开发numpy基本程序,这就算好了。

在安装第三方包时,可能会遇到版本不匹配的问题,具体做法是,凡是遇到安装错误时,就把错误提示放网上搜下,总能找到一大堆解决方法,然后慢慢解决。不过这种问题不经常遇到。

3 基本语法该学什么?

我入门用的是如下两本书,第一本是这个。

我当时是用了大概两周的时间,把这本书的代码敲了一遍。然后再敲第二本书的代码。这本书虽然讲的是数据分析,但也讲了python的基本语法。

当我把两本书的代码敲了一遍时,感觉就能看懂基本的python程序了。当我自己写好两本Python书以后,发现自己在入门时,还是走了弯路,倒不是错误理解了知识点,而是学了初学阶段不需要学的内容。

现在反思下,在搭建好python开发环境后,可以用如下方法入门python语法。

1 就敲些if分支和while循环之类的代码,理解python的基本结构,同时理解“缩进”的做法。

2 需要看列表字典等基本数据结构,因为python主要用来分析数据,分析数据时就用这些对象来存储数据。

3 然后再稍微看些异常处理部分的代码。

同时如下的代码无需看。

1 面向对象思想方面的代码,比如类和继承,这块在现实项目里基本用不到。

2 文件读写部分的代码。因为数据分析所用的DataFrame能方便地同csv等格式的文件交互,所以基本不会用python核心库自带的读写文件的方法。

其它的代码,比如本文分析,正则表达式,urllib这些,不是不重要,而是可以放在项目的具体语境里去看,而无需像背单词那样单纯地看相关语法,这样学习的效率会很高。

4 数据分析该学哪些技能?

当下Python用在最多的可能就算数据分析方面,一般数据分析的项目还外带些机器学习。学这部分的时候,我的建议是:先走通全栈流程,再细看相关方法。

第一,数据分析无非是用Pandas库的方法,从csv里读数据,再用numpy方法分析清洗下,再用matplotlib库画图,你可以通过若干案例,把这套流程走通。

我自己感觉我写的这本书,就是围绕这个思路写的。

第二,全栈流程走通以后,你就去看几个点,第一pandas库如何读写csv(或其它文件),第二如何对dataframe对象里的行列数据进行操作,第三如何用matplotlib库画直方图饼图等。

学的时候,无需太细看语法,因为学了不用的画,过几周就忘了。等到真正做项目时,可以再根据需求来找对应的方法和参数。

比如我需要把读到的股票数据绘制成折线图,而且折线图对刻度标签和标题都有要求,那么我再以此需求查现成的案例和对应的api,这样就能马上学以致用。

5 机器学习和深度学习该怎么学?

学这部分的时候,一定别先看算法。比如你一定别去关注正则化,梯度下降和降维等算法,因为没必要,而且这些算法很深,你真去看算法的话,估计你的学习自信心马上就会被打消。

那该怎么学?用自带的数据集和范例学。

封装机器学习的sklearn库自带很多范例,比如有描述线性回归的波士顿房价案例,有描述SVM分类器的鸢尾花案例,其它像岭回归等算法,也有范例。在这本书里,就用了很多案例讲述机器学习。

深度学习也一样,别看算法,先看api。当大家运行好几本书的代码以后,心里就有底了。而且当大家还会发现,你项目里要写的代码和你之前看书敲的代码框架上是差不多的。

1 首先无非是创建各种模型,比如人工神经网络,SVM等,创建不同模型时,可能也就是构造函数和类名有所不同。

2 然后再传入特征值和目标值,比如我在做股票量化时,特征值是开盘价最高价最低价成交量等,特征值是收盘价。在不同的项目里,只要有业务需求,一定也能确定好特征值和目标值,我们程序员要做的就是,在fit方法里传入特征值和目标值,然后让模型训练即可。

3 训练好了以后再调用predict方法预测即可。

在做项目的时候,预测的结果可能和期望的不同,那不要紧,慢慢扯皮,换入参特征值即可,或者大家再一起讨论模型,总之这些都不是技术问题。

6 我总结下来比较好的学习方法

第一,一定得搭建好环境,先把范例代码运行通,通过效果再反看代码和方法,这样基本上代码运行一遍即可理解关键点。

第二,刚开始的时候一定别到网上看资料,因为网上资料第一未必成系统,第二未必能跑通,刚开始的时候一定得系统地照着书去敲代码。

第三,找入门书的时候,可以看讲基本语法的书,但一本就够了,而更可以去看综合类的书。比如我上文提到的几本书,都综合包含了语法+数据分析+机器学习等技能,这样的话,就能让大家在理解语法后,直接进入到具体的项目技能环节。

第四,刚开始做项目的时候,除了自己可以写代码外,更可以参考别人类似的案例。比如我要画股票K线,更要在k线上绘制图例,那么我就可以找两三个人家的类似代码,先运行通,再博采众长地引入人家的方法和参数,这样要比什么都自己想要好很多。

7 学好Python如何变现?

回到本文刚开始提到的主题:学好Python如何变现,最直接有效的就是换工作。

具体做法是,以主带从。比如你的本业是java或大数据,你还是要以这个方向为主,但在简历上写明,你会数据分析和机器学习等,还熟悉神经网络等模型,然后去投需要此类需求的公司。

当下能用python做数据分析和机器学习的公司,能开出的公司还未必低,这样如果你兼有python和其它主方向的技能的话,要进此类公司,问题不大。我在培训学校里,就经常帮助学好python的同学做到这点。

当然用python还能做副业,比如我出过书,录过视频课,也给高校做过教材,总之还是这句话:先指定功利性的学习目标,再细化具体要学的内容,然后在通过看书敲代码等手段系统学,这样学好后,你一定能以此盈利。

8 文末送电子书

这次要送给大家的还是这本书:《基于股票大数据分析的Python入门实战(视频教学版)》,京东链接:https://item.jd.com/12868774.html。

我之前搞过类似的活动,如果有同学之前已经拿到了,这次就不用来了。后面合适的时候,我还会送我写的另外一本python书。

具体做法是:请大家先关注我的公众号:一起进步,一起挣钱。

然后可以加下我的微信,注明要python股票书,这样我就会把这本书的word电子版给到大家。

我用了半年的时间,把python学到了能出书的程度的更多相关文章

  1. Selenium2+python自动化47-判断弹出框存在(alert_is_present)

    前言 系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常.那么又不知道它啥时候会出来,那么久需要去判断弹窗是否弹出了. 本篇接着Selenium2+python自动化42-判断元素(ex ...

  2. 阅读OReilly.Web.Scraping.with.Python.2015.6笔记---找出网页中所有的href

    阅读OReilly.Web.Scraping.with.Python.2015.6笔记---找出网页中所有的href 1.查找以<a>开头的所有文本,然后判断href是否在<a> ...

  3. python入门灵魂5问--python学习路线,python教程,python学哪些,python怎么学,python学到什么程度

    一.python入门简介 对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入门灵魂5问--python学习路线,python教程,python学哪些,pyth ...

  4. Python学到什么程度就可以去找工作?掌握这4点足够了!

    大家在学习Python的时候,有人会问“Python要学到什么程度才能出去找工作”,对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来,一般都不会有什么问 ...

  5. Python学到什么程度才可以去找工作?掌握这4点足够了!

    大家在学习Python的时候,有人会问"Python要学到什么程度才能出去找工作",对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来 ...

  6. 《用 Python 学微积分》笔记 3

    <用 Python 学微积分>原文见参考资料 1. 16.优化 用一个给定边长 4 的正方形来折一个没有盖的纸盒,设纸盒的底部边长为 l,则纸盒的高为 (4-l)/2,那么纸盒的体积为: ...

  7. 《用 Python 学微积分》笔记 2

    <用 Python 学微积分>原文见参考资料 1. 13.大 O 记法 比较两个函数时,我们会想知道,随着输入值 x 的增长或减小,两个函数的输出值增长或减小的速度究竟谁快谁慢.通过绘制函 ...

  8. 《用 Python 学微积分》笔记 1

    <用 Python 学微积分>原文见参考资料 1. 1.多项式 f(x)=x3-5x2+9 def f(x): return x**3 - 5*x**2 + 9 print f(3) pr ...

  9. 10个用于处理日期和时间的 Python 库

    Python本身提供了处理时间日期的功能,也就是datetime标准库.除此之外,还有很多优秀的第三方库可以用来转换日期格式,格式化,时区转化等等.今天就给大家分享10个这样的Python库. 上期入 ...

随机推荐

  1. spring boot 集成 Apache CXF 调用 .NET 服务端 WebService

    1. pom.xml加入 cxf 的依赖 <dependency> <groupId>org.apache.cxf</groupId> <artifactId ...

  2. Ubuntu/Liinux睡眠无法唤醒解决方法:ACPI设置

    最近给笔记本换了一个固态,顺便就重装了一下系统,版本是Ubuntu 20.10.装完之后各种功能基本都是正常的,触摸板轻触单击.双指右键等功能开箱即用.但是在安装完最新的Nvidia驱动之后就出现了问 ...

  3. 有序矩阵中第k小元素

    有序矩阵中第k小元素 题目: 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素. 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素. 看到有序就会想 ...

  4. Spring源码深度解析之数据库连接JDBC

    Spring源码深度解析之数据库连接JDBC JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供 ...

  5. 关于 RNN 循环神经网络的反向传播求导

    关于 RNN 循环神经网络的反向传播求导 本文是对 RNN 循环神经网络中的每一个神经元进行反向传播求导的数学推导过程,下面还使用 PyTorch 对导数公式进行编程求证. RNN 神经网络架构 一个 ...

  6. Docker PHP 扩展配置

    # PHP 容器配置 # 从官方基础版本构建 FROM php:7.2-fpm # 官方版本默认安装扩展: # Core, ctype, curl # date, dom # fileinfo, fi ...

  7. python_字典(dict)

    dict 一.结构: info = { "key":"value", "key":"value" } print(inf ...

  8. Azure App object和Service Principal

    为了把Identity(身份)和Access Management function(访问管理功能)委派给Azure AD,必须向Azure AD tenant注册应用程序.使用Azure AD注册应 ...

  9. ABAP 多表联合查询

    inner join(等值连接) 只返回两个表中联结字段相等的行left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录right join(右联接) 返回包括右表中的所有记录 ...

  10. mysql5.5 升级至5.7

    mysql5.5 升级至5.7 1.下载mysql5.7.32 官方下载地址 解压 tar xvf mysql.tar.gz mysql/ 2. 进入旧的mysql的bin目录下导出mysql的数据 ...