从零开始的Python世界生活
最近有个朋友给我留言,和我聊天,分享了他这段时间在培训Python编程这一块,今天整理这篇文章,会详细介绍0基础学python该如何学,帮助到更多想学习python的朋友,给广大同学朋友规划个适合学习规划。
他大学学习的应用化学,后来毕业做了2年全栈设计师(PS:设计和前端都不熟练的那种)后来出于对爬虫开发的喜欢(爬图片,爬视频)还有人工智能,机器学习,大数据的火热程度的追捧,毅然决然报了培训班,学习时间半年,学费两万,感觉还挺值得(PS:他就是这么会安慰自己,即使心里觉得特别亏也。这不是给培训机构打广告的文章)
这是他在培训期间获得的一系列资料,点击免费获取
后来出来找工作,几经周折和换工作,现在在期货公司工作,主要工作是数据处理和分析,机器学习,自然语言处理,图像处理等,项目是一个全自动化智能云测试云平台,现大概讲下想转行python的学习路线,当然他的转型之路,可能也代表了大多数和他一样的朋友同学,大学报专业没选好,不知道计算机互联网会这么火,而且出校门步入社会后又没能直接学计算机从事这个行业,浪费了很多时间,而此刻,就根据 大家的心声,站在和大家一样的立场,讲述他专业不是计算机,出来后又没能直接搞计算机互联网的转型python路线。
文本主要讲述转型的三个方面:web开发,爬虫,数据分析与人工智能
python的发展主要有几个方向:
网络,爬虫,数据分析,测试,运维,人工智能等,要属当下最火的还是人工智能,好多人冲着人工智能的方向学python,其实人工智能听起来确实很高大上,都想往这方面涌入,但是作为过来人,如果单纯从编程0基础想转行人工智能还是难度相当大的(大神除外),因为好多搞人工智能的公司会相对比较大,现在企业又不愿意去培养人,所以招聘时候学历,专业,项目经验,工作年限都相对还是比较硬性的。
虽然门槛比较高,但是想转行python进而转型数据分析和人工智能也是有很大机会的,毕竟python在国内火起来也没多长时间,只要按照科学有效的方法学习提升,也是可以很快转型的,由于对运维和测试不是特别了解,这里不在说这方面的转型路线,先讲web后端开发、爬虫开发、数据分析与人工智能路线。
1,首先是转行python学习路线:
通用必备基础知识 :(这些知识不管是做python哪方面,都是基础知识,必须会)
第一阶段:Python入门(框架再怎么变,基本语法不会变,基础中的基础)
数据类型
循环判断
常用模块
函数,迭代器,装饰器
递归,迭代,反射
面向对象编程
第二阶段:网络编程(最好能完全搞透彻)
Socket c / s编程,Twisted异步网络框架
多线程,多进程,携程gevent,选择 poll epoll
FTP服务器开发
批量命令,文件分布工具
RabbitMQ消息队列,SqlAlchemy ORM
Reids MemCache MongoDB缓存数据库
第三阶段:正则表达式和数据库
学习字符串匹配的正则表达式重模块
学习的MySQL的数据库(80%以上的公司都在用)
学习的Redis的数据库(做网站和爬虫都很重要)
学习的MongoDB的数据库
第四阶段:WEB前端基础(坑比较多,多敲)
做WEB当然要懂点基本的前端知识。
html / css基础
原生JS
JQuery的的(JS库)
Ajax的异步加载
绘图库
引导(了解,最好能掌握一种布局框架)
好了,以上就是不管你后面发展那些方面,这些都是基础中的基础,必须要学(我培训班一共学了2个月)
2,转型python的网站后端开发学习的知识:
Django的(应用广泛的后端框架)
tornado
flask(后起之秀的框架)
session/中间件/ ORM / CSRF / FORM(一些网络基本的技术知识)
Django,flask,tornado,三个框架各有优劣,网页框架我用的Django和flask居多,Django的会觉得很多东西都已经封装好了,可以直接用,不用自己手动构造,比如Django的的管理的后台和xadmin后台,flask就相对灵活多变,至少掌握两个框架,多多益善(我在培训班1个半月,学的django和flask2个框架)
3,转型爬虫学习的知识:
requests:发送网页请求,返回数据
xpath:用于网页元素的提取(当然还有BS4,pyquery等,选择顺手的)
selenium:用于真实浏览器访问网页,根据具体情况使用
scrapy:用于大规模快速网页数据爬取
验证码破解:验证码破解建议大家可以多搞点难破解的,比如滑块验证码,淘宝验证码,12306验证码等等,面试经常问到哦
(我在培训班学爬虫学了3周,主要是requests和scrapy两个框架)
4,转行数据分析(机器学习,人工智能)学习路线:(培训班学习2个月)
(以下几个模块是数据分析最常用的库,一定要学好)
1,学习科学计算和分析包,numpy的和pandas
2,学习可视化,分析结果可视化的包matplotlib,实现数据绘图展示
3,学习数据挖掘模型,这个包主要是sklearn,里面的算法基本都有对应的包,但希望大家能对高等数学,概率论,线性代数,信息论的基础理论进行学习,这些算法都是基于数学基础,如果数学理解不透,也只能当一个调包侠(公众回复:机器学习)
4,神经网络的框架,推荐学习TensorFlow或者keras,Karas的是把TensorFlow封装起来的高级包,学习难度比较低。还有一个更加高级的框架CAFFE,据说很厉害。
5,常见神经网络:回归网络,分类网络,卷积神经网络(CNN)在图像语言等领域处理方面优秀,循环神经网络(RNN)利用时间序列分析(RNN LSTM),避免过度拟合。自编码网络,这个我不了解,也不感兴趣。神经网络还很多,技术前沿的东西还不知道。
好了,说到这里,基本学习路线就讲完了,下面就是最基本的学习路线总结
转型web :通用必备知识+2个网页框架
转型爬虫:通用必备知识+爬虫框架
转型数据分析:通用必备知识+数据分析库(pandas,numpy的的,matplotlib,sklearn),甚至这些还远远不够用
转型人工智能:通用必备知识+数据分析库+高等数学+线性代数+概率论+ tensorflow框架
接下来回答大家感兴趣的几个问题:
数据分析要不要学高数,概率论,线性代数?
如果不想只当调包侠,也不想在工作中因为不理解数学过程太痛苦的话,多补补数学理论吧,至少我工作中接触到简单的数学概念有:标准差,方差,协方差,协方差矩阵,余弦相似度,导数,对数,偏导,概率论,熵,信息论,矩阵运算,向量的运算等等。只能说列举的这些是基础中的基础,比这更难的我也正在学。
数据分析要不要学后端框架?比如Django和flask
以上过程是一个快速转行数据分析的路线,可能有些介绍不是太全,但大致的学习方向就按这个来,就会少走弯路,但其实作为一名蟒开发者,个人建议最好还能运用一种后端框架,能够搭建网站后端项目也很重要,虽然在公司工作是数据分析,但是公司经常可能性的会让搭一些简单的项目,艺多不压身,我个人喜欢用的Django
数据分析要不要学前端?(HTML,CSS,JS)
回答是肯定的:必须学,能阅读懂是基本,越熟练深入越好,因为做数据分析很多都是从爬虫和网络转过来的,而爬虫和网络都对前端技术有一定要求,比如如下原因:
爬虫读取页面结构,获取标签,你要能看懂HTML
爬虫的很多反爬虫措施基于厉害的JS代码和一些复杂的CSS,如果不懂,爬虫很难做到深层次
后台项目,至少在PC端的,很多情况下,都要求后端开发人员能读懂前端代码
鉴于很多朋友想从事数据分析,这里不得不提下,Python的数据分析是一个非常专业的方向,需要有较多的数学理论知识,而且需要有刻苦专研的精神。既然是编程语言,就需要写很多代码,他是至少写了10,000行代码了。最后你还需要了解你自己希望从事什么行业,传统数据挖掘在银行,保险,电信,电商等领域已经很普及了成熟了。对于那些高级的神经网络,也就是类似AI领域,在图片语音视频识别,自动驾驶,量化投资,机器人等领域也很好的。很多分析师都转行做这块了,还是话说回来,想学习的很多,多实践,加油!