首先要看题主是以什么样的基础来学习 Python,找 Python 方向的工作。
如果是 Python 语言零基础,拥有其他编程语言的编程基础,那么 Python 语言基础的学习对题主来说应该很轻松,上面几个高票回答已经给出了 Python 基础学习的路线和大纲,这里就不做重复。
接下来就要看题主想找 Python 那个方向的工作了,Web 后端,爬虫,测试开发,运维自动化/运维开发,数据分析、机器学习等,每个方向都需要不同的技能点。
Web 后端, HTTP,HTML,JavaScript,CSS,SQL,MySQL,Redis,Linux,Nginx 这些都是必备的,掌握主流的 Web 开发框架,如 Flask,Django 等。另外对缓存,部署,异步任务,消息队列也是需要知道的。Web 开发的岗位很多,涉及到的知识面很广泛。
爬虫,除了 Python,还应该熟练掌握 requests,bs4,scrapy,selenium,fiddler 这些库和工具的使用,HTTP,HTML,JavaScript,CSS,数据库知识也是需要学习的。然后就是爬虫的攻防,这方面需要有一定的经验和积累。现在更多的爬虫是针对移动端的,可能还需要学习和积累逆向的思维和经验。
测试开发,这个方向要求相对少一些,更多是 selenium、appium 等工具的使用和测试脚本的编写,拥有 Python 语言基础,掌握 HTTP,HTML,requests 库的使用应该就可以搞定。另外测试开发往往都需要和 jenkins 中的工作流配合使用。
运维自动化/运维开发方向,Linux,Shell编程,网络,数据库,反向代理服务器,Docker,Ansible 所有跟运维相关的工具和知识是都需要掌握的,另外,如果你掌握了 Web 开发的技能,那么还可以从事更多运维系统的开发。
数据分析、机器学习,这方面要求的会高一些,除了 Python 技能之外,Numpy,Pandas,Matplotlib,Tensorflow,caffe,Keras,分析算法,KNN,线性回归,逻辑回归,决策树,贝叶斯,随机森林。一大堆名词之外,最重要的是:数学。
最后,不管你是1年,3年,5年还是7年工作经验,不刷题,不刷数据结构与算法,是很难通过面试的。