Python难学吗?不难,我边做项目边学,过了半年就通过了出版社编辑的面试,接到了一本Python选题,并成功出版。
有同学会说,你有编程基础外带项目实践机会,所以学得快。这话不假,我之前的基础确实加快了我的学习进度。不过话说回来,我平时也做兼职培训,我的学生大多是没基础的,我用本文给出的资料和方法去培训他们,学的好的同学,3个月后能干基本的python项目,照此速度,用1年时间做到精通python,达到出书的程度,应该也不是难事。
所谓赠人玫瑰手有余香,本人将在这篇文章里,尽可能详细地复原本人的学习历程,以及我辅导学生学python的步骤,以求最大程度帮助到那些想学python的同学。
1 要明确目的,没目的宁可学其它
如果是为了学着玩,那么不建议学python,因为学了几周就会因为失去兴趣,这样之前的学习就白费了。
学Python一般需要有比较功利性的目的。比如想学好了跳槽涨工资,又如像我这样公司项目要用,学好了挣工资,或者干私活要用,学好了能录制视频能出书。
明确好目标后,你就有学习方向了。比如你学好了想要跳槽,就去看大多数jd对python的要求,无非是数据分析,爬虫外带各种机器学习和深度学习应用。比如像我要做金融量化,无非也是数据分析三剑客和深度学习,可能还外带些爬虫技术。如果你要出书出视频,也去看人家怎么做的。总之,有了功利性的目的后,你就会明白你该学习的内容列表。
其实说倒底,哪怕是深度学习知识图谱人工神经网络这些看上去很高深的技能点,但在python里无非是引入库+调用方法,无非就是调用时传入不同的参数罢了,而且这些技能都有现成的书可以参考。但如果你事先不明确学习目标,这样就不会知道还要学什么。
我看到网上有不少人在问,python该怎么学?该学些什么?这种事情别人怎么知道?其实更应该问你自己。你以后想怎么用Python挣钱,就该学什么。
2 一定得先搭好环境,安装好第三方包
废话讲多了,不管你要学python里哪些方面的技能,开发环境是一定要搭建的。
![](/qrcode.jpg)
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电子版给到大家。