为什么学,怎么学?
学习一门技术,我觉得首先是要明确自己学习的初心。
所以,每学一门技术之前不妨给自己来个三连问:
第一个问题: 我为什么要学这个技术呢?
第二个问题:学了之后可以用来干什么呢?
第三个问题:我该怎么学习这个技术呢?
下面我就来给出我的答案:
- 第一个问题:我为什么要学习这个技术?
我的答案是为了找工作(工作需要)。我相信这也是很多小伙伴的学习目的。作为一个工作多年的老程序员,我学一门技术要么是做技术储备,要么是工作需要。当然,也不排除有的小伙伴是出于兴趣爱好等原因。 - 第二个问题:学了之后可以用来干什么呢?
我的答案是用来提高工作效率,增强自身能力。比如学习了Python之后我可以用Python来进行爬虫,来开发网站,来编写脚本等等。 - 第三个问题:我该怎么学习这个技术呢?
这个问题也非常重要,在学习之前没有考虑清楚的话就很容易走弯路。
我的答案是首先制定一个靠谱的学习路线图,明确先学习什么,后学习什么,明确是通过看书学习,还是通过看视频学习,还是说通过博客学习,明确是边学边练,还是看着视频刷着手机。
每个人的学习方法都不尽相同,适合自己的才是最好的。
我学习方法是:
- 制定一个靠谱的学习路线图 (百度搜索XX技术的学习路线或者请教大牛)
- 制定学习计划,每天学习什么,每周要学习到啥程度
- 找靠谱的学习资源,边学边练。
- 编写博客记录自己的学习成果。
Python工程师需要哪些技能呢?
Python工程师需要具备哪些技能呢?我说的不算,张三说的不算,李四说的不算。只有实实在在的大厂的招聘要求说的算。这里我截取了几个大厂Python工程师的招聘要求。
- 腾讯招聘Python工程师
- 字节跳动招聘爬虫工程师
- 快手招聘 Python工程师
这里找了几个有代表性的大厂的Python工程师的招聘需求。让我们简单分析下这些职位要求。
共同点:
- 熟悉Python编程语言(拥有相关的开发经验),语言只是一个工具,对大厂而言只需要你精通某一种开发语言即可。
- 熟悉MySQL (这个是个通用技能,后端开发都绕不过)
- 熟悉Linux 系统环境 (这个是个通用技能,后端开发都绕不过)
- 熟悉主流的爬虫技术及爬虫框架(针对爬虫工程师)
所以,我们的学习路线图也就需要按照这些要求来制定。
1. Python基础的学习路线(必选)
首先是Python基础的需要掌握的知识点的学习路线图。如下图1所示
Python 基础必须熟练掌握,这也没啥好说的。这里说下几个特别重要的知识点:
- 数据类型,这是每个程序都会用到的,重点需要掌握序列类型里的列表list,tuple ,还有就是字典dict。
- 然后就是流程控制,循环,判断这个也是必须要会的。
- 接着就是函数,面向对象的思想,以及文件的操作。
- 最后就是并发编程,如何创建一个线程,怎么使用线程池,这个也是必须要掌握的。
Python基础学习资源推荐
这里推荐几个个人认为比较好的学习资源。
- Python从入门到精通
推荐理由:通俗易懂,广受好评,同时提供一对一的咨询服务 - C语言中文网Python基础篇
推荐理由:通俗易懂,免费,免费,对新手很友好。 - 阿里云的Python学习路线
推荐理由:学习视频免费,有完整的学习路线。
2. Python爬虫的学习路线(必选)
大厂纯Python爬虫工程师的岗位比较少,我找遍了阿里,腾讯,百度,字节的Python爬虫工程师的相关岗位。最终只在字节跳动招聘网站上找到了Python爬虫工程师的岗位。这就告诉我们学习Python不能止步于爬虫。 同样的这里我也给出一份爬虫的学习路线图,如下图2所示。
虽然,只掌握爬虫相关的知识点比较难找到对口的好岗位。但是如果能熟练掌握爬虫技术的运用,对自身Python开发能力会有一个非常大的提升。
爬虫的学习路线主要是:
- 掌握基础的HTML和Dom树的相关知识点,懂得啥叫元素,啥叫标签,啥是css选择器。
- 按照爬虫的三大步骤:抓取网页源码,提取所需数据,数据存储分别来学习。
- 首先是抓取网页源码,这里就是熟练运用requests库了。
- 接着是提取所需数据了,这里就是要熟练掌握lxml库的运用,XPath选择器,以及正则表达式了。
- 在接着就是保存提取的数据了。数据可以保存到MySQL,NoSQL 等数据库了或者CSV中。一般而言,在实际开发中都是保存数据库中。这就需要我们掌握一些数据库的基础知识了。
- 然后就是多线程爬虫,批量爬取数据的话,单线程的程序肯定是力不从心的,这时候就需要用到在Python基础学到的多线程的知识点。将其运用到实际爬虫中去。
- 如果每次都是这么搞,爬虫的效率势必会比较慢,这就开始学习专业了爬虫框架了Scrapy框架了。
经过上述七个步骤,你对Python爬虫技术也了解的差不多了。
但是大厂往往要求还会高一点,比如字节的爬虫工程师会要求你熟悉常见反爬封禁策略。
Python爬虫学习资源推荐
- 黑马Python爬虫学习视频
获得方式:关注公众号【码农飞哥】回复: 学习资料
推荐理由:视频讲解很细致,路线图中涉及到的知识点都讲解到了。唯一美中不足的是视频有点老了。视频还有配套的课件以及代码 - 13天搞定python分布式爬虫_尚学堂Python网络爬虫教程和爬虫实战详解_Python分布式
推荐理由:免费视频,尚学堂官方出品,视频较新。爬虫相关的知识点基本涉及到了。 - 阿里云的Python学习路线
推荐理由:学习视频免费,有完整的学习路线。
3. Python网站开发(必选)
学习完成Python爬虫中,相信你的Python开发能力已经上了一个很大的台阶,如果有兴趣的话可以学习一下Python网站开发。同样的这里给出了一个学习路线图。如图3所示:
网页开发需要了解一些必备的前端知识点。
- 了解前端知识点:HTML,CSS,ajax。
- 学习Flask框架或者Django框架,这两个框架都是Web开发框架。它们的区别是:
Flask:
小巧、灵活,让程序员自己决定定制哪些功能,非常适用于小型网站。
对于普通的工人来说将毛坯房装修为城市综合体还是很麻烦的,使用Flask来开发大型网站也一样,开发的难度较大,代码架构需要自己设计,开发成本取决于开发者的能力和经验。
Django:
大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富。
非常适合企业级网站的开发,但是对于小型的微服务来说,总有“杀鸡焉有宰牛刀”的感觉,体量较大,非常臃肿,定制化程度没有Flask高,也没有Flask那么灵活。
另外,快手招聘Python工程师要求掌握Tornado框架,这个框架也是一个Web框架,不过跟其他Web框架最大的不同是它是一个非阻塞式的web框架。
Python网站开发学习资源推荐
4. MySQL的学习路线(必选)
从上面的招聘要求我们同样可以看出MySQL也是我们需要要掌握的一个知识点。MySQL的知识点很多很多,如果要学的很深的话着实要花费一番力气。这里我同样的列举出了一个MySQL的学习路线图,如下图5所示:
老实说,不管是从事Java开发工程师的岗位,还是从事Python开发工程师,MySQL都是绕不过的坎。这里对MySQL的学习还不能只是掌握一些简单的皮毛知识。而是要将MySQL的进阶知识也要掌握好。针对进阶知识学有余力的同学可以掌握一下,普通的同学只需要掌握到SQL基础即可。
特别说明:
- MySQL的SQL基础必须要熟练掌握,最基础的建表删表修改表结构的DDL语句, 最基本的增删改查的DML语句,以及复杂的SQL语句,比如关联查询,子查询等等都是要求必须掌握的。
- 还需要掌握一下数据库事务,数据库锁,以及SQL语句的优化。
MySQL学习的推荐资源
- 《MySQL必知必会》
推荐理由:这是我整篇文章中推荐的唯一一本书,无他,就是因为这本书小巧,并且特别是和小白入门学习。 - SQL在线练习
leetcode数据库刷题:
推荐理由:XUESQL网站是一个练习SQL的网站是,适合从基础开始练习,题目由浅入深,而且有配套B站视频。leetcode不仅可以刷算法题,还可以练习写SQL,而且可以在线测评,和评测算法题一样,也会让你很直观的看到自己所写的SQL的运行速度等。相对而言,leetcode中的SQL题目要复杂些。其实,练习SQL最重要的还是要有实际场景,只靠网站练习可能在实际工作中用处不大,如果你日常工作经常遇到些SQL的场景,那么慢慢你的SQL水平就会提升上去。
5. Linux 基础(必选)
基本上大多数的项目和网站都是部署在Linux服务器上的,所以掌握Linux的常用操作就显得尤为必要,这也是相关岗位的招聘需求上明确写到的。Linux的学习路线图如下图4所示:
因为Linux不是我们学习的重点,所有我们只需要掌握Linux初阶阶段要求掌握的知识点。对于学有余力的同学,可以学下中级乃至高级的知识点。
Linux初级阶段重点需要掌握的知识点包括:
- Linux 的常用命令,这个真的太重要了。
- 文件与目录管理
- 文件权限与目录配置
- 文件的打包和压缩
Linux基础学习资源推荐
- 鸟哥的Linux私房菜简体中文版
推荐理由:鸟哥的Linux私房菜真的是Linux学习的首推资料。我当初还没买了一本实体书,实在是太厚了,也没有看完。实在不推荐买实体书。不过好在鸟哥的Linux私房菜出了在线学习网站,不过官方网站是繁体中文的,对我们这些使用简体的人来说着实有点不太友好。
所以这里我放出了相对比较友好的简体中文版鸟哥的Linux私房菜简体中文网站 - Linux 命令大全
推荐理由:其实日常开发中我们用的最多的就是各种Linux命令,这里推荐一个Linux命令大全的网站。查找命令特别方便。
总结
本文从大厂Python工程师的招聘要求出发,罗列了作为一个Python工程师所必须掌握的知识点,并附上了众多优质的免费的资料。
在此诚邀您加入我的社区。各近3W的社员一起打卡学习,学习的路上不在孤单。