PS:内容来源于网络
一、简介
Python是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明。由于他简单、易学、免费开源、可移植性、可扩展性等特点,Python又被称之为胶水语言。下图为主要程序语言近年来的流行趋势,Python受欢迎程度扶摇直上。
由于Python拥有非常丰富的库,使其在数据分析领域也有广泛的应用。由于Python本身有十分广泛的应用,本期Python数据分析路线图主要从数据分析从业人员的角度讲述Python数据分析路线图。整个路线图计划分成16周,120天左右。主要学习内容包括四大部分:
1)Python工作环境及基础语法知识了解(包括正则表达式相关知识学习);
2)数据采集相关知识(python爬虫相关知识);
3)数据分析学习;
4)数据可视化学习。
1)Python工作环境及基础语法知识了解:
对于Python基础语法学习部分,学习周期大概为4周,需要的相关资源在网络上都能找到免费的资源,而且质量都不错。相关中文资源如下:
1.1python工作集成环境包
Python(x,y):下载地址:http://python-xy.github.io/downloads.html
Pycharm:下载地址:http://www.jetbrains.com/pycharm/download/#section=windows
1.2python数据分析相关库(Pandas/Numpy/Scipy/Matplotlib)
如果安装了上面集成工作包,则下面的包不需要重新安装了。关于包的安装方法在学习资源图书中都有介绍,通常安装库采用pip方法,也可以用pip list查询系统安装了哪些库。
1.3学习资源
1.3.1图书:
1)Python基础教程(第2版)[电子版图书自行百度]
2)深入浅出Head First python(中文版)[电子版图书自行百度]
1.3.2在线教程:
1)廖雪峰的python教程:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
2)正则式学习:http://wiki.jikexueyuan.com/project/python-crawler-guide/regular-expressions.html#7907ec6cc04be6c7f8cf8ac272215946
1.3.3视频教程:
1)慕课网python入门:http://www.imooc.com/learn/177
2)慕课网python进阶:http://www.imooc.com/learn/317
3)正则式学习视频:http://www.imooc.com/learn/550
2)数据采集学习:
对于数据采集部分的学习主要是通过python爬虫的学习了解基本的外部数据采集情况,当然也可以借助别人写好的规则库直接完成某些数据的采集。这部分内容的学习周期大概也为四周,需要的相关资源在网络上都能找到免费的资源,而且质量都不错。相关中文资源如下:
2.1爬虫学习在线教程:
1.Python爬虫入门一之综述:http://cuiqingcai.com/927.html
2.Python爬虫入门二之爬虫基础了解:http://cuiqingcai.com/942.html
3.Python爬虫入门三之Urllib库的基本使用:http://cuiqingcai.com/947.html
4.Python爬虫入门四之Urllib库的高级用法:http://cuiqingcai.com/954.html
5.Python爬虫入门五之URLError异常处理:http://cuiqingcai.com/961.html
6.Python爬虫入门六之Cookie的使用:http://cuiqingcai.com/968.html
7.Python爬虫入门七之正则表达式:http://cuiqingcai.com/977.html
8.Python爬虫实战一之爬取糗事百科段子:http://cuiqingcai.com/990.html
9.Python爬虫实战二之爬取百度贴吧帖子:http://cuiqingcai.com/993.html
10.Python爬虫实战三之计算大学本学期绩点:http://cuiqingcai.com/997.html
11.Python爬虫实战四之抓取淘宝MM照片::http://cuiqingcai.com/1001.html
12.Python爬虫进阶一之爬虫框架Scrapy安装配置:http://cuiqingcai.com/912.html
2.2视频教程:
Python简单爬虫开发:http://www.imooc.com/learn/563
3)数据分析:
Python数据分析的学习主要是对相关库的使用,比如数据整理需要用到numpy和pandas库,数据描述与分析分析则主要用到pandas库,从某种程度上讲,利用python进行数据分析的学习过程就是对库的学习过程。由于有了前面2部分内容的学习基础,本部分内容的建议学习练习时间也为4周,相关免费学习资源如下:
3.1学习资源
3.1.1图书:
利用python进行数据分析:http://item.jd.com/11352441.html[电子版图书自行百度]
3.1.2视频:
用python玩转数据:https://www.coursera.org/learn/hipython[视频为cousera认证课程,全程中文]
4)数据可视化:
Python数据可视化学习的过程就是学习matplotlib库的过程,matplotlib库包含有丰富的数据可视化资源,地图、3D等等都有涉及,如果有前面3部分的学习经验的话,这部分内容在4周内也能解决。相关中文学习资源如下:
4.1图书:
Python数据可视化编程实战[电子版图书自行百度]:http://item.jd.com/11676691.html
4.2在线教程:
1.利用Python绘图和可视化(1):http://www.lovedata.cn/ec/Python/2016/0118/7732.html
2.利用Python绘图和可视化(2):http://www.lovedata.cn/ec/Python/2016/0118/7733.html
至此,Python数据分析相关学习内容介绍完了,上面介绍的多种资源,每个阶段只需选择其中的一种进行深入即可,更多更深的内容则需要自己去实践摸索。更多数据分析学习及数据分析工具参见数据导航网站。
三、其他资源
1.百度云:http://pan.baidu.com/s/1YPLT0
2.有道云笔记:http://note.youdao.com/share/?id=3e1d9299f8680bcaa416b7f98c34f13e&type=notebook
3.用Python玩转数据 Data Processing Using Python https://www.coursera.org/learn/hipython
4.利用Python绘图和可视化(1) http://www.lovedata.cn/ec/Python/2016/0118/7732.html
5.利用Python绘图和可视化(2) http://www.lovedata.cn/ec/Python/2016/0118/7733.html
6.Python 中文官方文档
7.python入门基础教程 http://wiki.jikexueyuan.com/list/python/
四、个人增值
第一部分:一些要求
1.学历
格式:计算机及相关专业本科及以上学历…..
不解释,不说明
毕业后很少再看学历了,更多的是看能力吧(我会告诉你第一年周围都是硕士博士海龟么,俺学历最低,自卑啊)
见过数学系、物理系、信息自动化系的跑过来当码农,唯一遗憾的是还没有见到中文系的…..
2.经验
格式:拥有X年以上经验,至少独立负责过X个项目
很蛋疼的东西,见过一年经验用N年的,也见过一年拥有N年经验的
受环境影响,但更多的是取决于个人
听过一句话:人和人的唯一区别,就是有木有主观能动性(略有些偏激,但是有道理)
3.基础素质
格式:具有良好的XXXX
编码规范/风格
文档书写习惯
沟通与表达能力,逻辑思维清晰
团队合作
动手能力/独立工作能力
进取心,求知欲,工作热情
善于学习,乐于分享,快速学习能力
能承受较大的工作压力
执行力
责任感
英文阅读能力
创新精神
对新技术敏感
独立分析、设计、解决问题的能力
这些都相对比较“虚”,不怎么好考察,面试+试用可以相对客观了解是否符合
个人认为,责任感+执行力,这两点足够了,其他一般不会差。
自我驱动的人,永远会getthingsdone.所以会不断去弥补自己的短板,其他对应能力即使不足,也能很快弥补
4.加分项
格式:XXXX优先
使用*nix系统
vim/Emacs编辑器
对开源技术有强烈兴趣和爱好,参与提交bug/patch
各种技术/经验(前端/hadoop/机器学习/数据挖掘/函数式编程)
为毛不是osx系统(╯‵□′)╯︵┻━┻
从一些侧面,查看一个人的特质吧
5.提供
格式:XXXX账号/地址
博客地址
github/bitbucket
*
知乎
微博
搞技术的,很有必要建立自己的领地,搞一些东西
分享,更重要的是积累
第二部分:干货
关于Python后端开发要求
1.对Python有兴趣,熟悉Python(标准库)
最好阅读过源码
了解Python的优化(熟悉pypy更佳)
2.至少至少一门语言(不说“精通”)
起码熟悉其他基本语言
C/C++LispHaskellSchemegolangerlangJavaRRubyNode.jsPHPPerlLua
我选了Java(曾经擅长)/Golang/Lisp/Ruby/C/C++
3.数据结构和算法
数据结构和算法基础扎实
4.Python框架
Django/Tornado/Flask/Gevent/Web.py/Bottle/Celery/Twisted/NumPy
5.熟悉Linux
基本操作和命令
会Shell
版本Git/Svn
部署相关:Nginx/Gunicorn/Fabric/Virtualenv
6.数据库
熟悉Mysql等关系数据库使用
熟悉数据库设计
熟悉数据库调优/优化
有NoSQL使用经验Redis/MongoDB等
7.后端技术相关
Redis
Memcached
RabbitMQ/ZeroMQ
8.网络编程基础
熟悉tcp/ip协议,熟悉网络编程
了解常见的网络模型
多线程
9.前端相关
熟悉Web开发相关知识
熟悉HTML/CSS/Javascript/JQuery
熟悉AngularJS
10.其他
数据抓取,爬虫
beautifulsoup/scrapy
机器学习/数据挖掘/自然语言处理(推荐算法)
TDD
高并发系统
大容量存储系统
消息系统
Linux系统编程/网络编程
基于此,去构建自己的技能体系,然后针对各项逐渐深入
就这些,骚年,努力练级去吧