Python学习路线【对标大厂Python开发工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: Python学习路线【对标大厂Python开发工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫

为什么学,怎么学?

学习一门技术,我觉得首先是要明确自己学习的初心。

所以,每学一门技术之前不妨给自己来个三连问:

第一个问题: 我为什么要学这个技术呢?

第二个问题:学了之后可以用来干什么呢?

第三个问题:我该怎么学习这个技术呢?

下面我就来给出我的答案:

  • 第一个问题:我为什么要学习这个技术?
    我的答案是为了找工作(工作需要)。我相信这也是很多小伙伴的学习目的。作为一个工作多年的老程序员,我学一门技术要么是做技术储备,要么是工作需要。当然,也不排除有的小伙伴是出于兴趣爱好等原因。
  • 第二个问题:学了之后可以用来干什么呢?
    我的答案是用来提高工作效率,增强自身能力。比如学习了Python之后我可以用Python来进行爬虫,来开发网站,来编写脚本等等。
  • 第三个问题:我该怎么学习这个技术呢?
    这个问题也非常重要,在学习之前没有考虑清楚的话就很容易走弯路。
    我的答案是首先制定一个靠谱的学习路线图,明确先学习什么,后学习什么,明确是通过看书学习,还是通过看视频学习,还是说通过博客学习,明确是边学边练,还是看着视频刷着手机。
    每个人的学习方法都不尽相同,适合自己的才是最好的。
    我学习方法是:
  1. 制定一个靠谱的学习路线图 (百度搜索XX技术的学习路线或者请教大牛)
  2. 制定学习计划,每天学习什么,每周要学习到啥程度
  3. 找靠谱的学习资源,边学边练。
  4. 编写博客记录自己的学习成果。

Python工程师需要哪些技能呢?

Python工程师需要具备哪些技能呢?我说的不算,张三说的不算,李四说的不算。只有实实在在的大厂的招聘要求说的算。这里我截取了几个大厂Python工程师的招聘要求。

  1. 腾讯招聘Python工程师

  2. 字节跳动招聘爬虫工程师

  3. 快手招聘 Python工程师

    这里找了几个有代表性的大厂的Python工程师的招聘需求。让我们简单分析下这些职位要求。
    共同点:
  • 熟悉Python编程语言(拥有相关的开发经验),语言只是一个工具,对大厂而言只需要你精通某一种开发语言即可。
  • 熟悉MySQL (这个是个通用技能,后端开发都绕不过)
  • 熟悉Linux 系统环境 (这个是个通用技能,后端开发都绕不过)
  • 熟悉主流的爬虫技术及爬虫框架(针对爬虫工程师)

所以,我们的学习路线图也就需要按照这些要求来制定。

1. Python基础的学习路线(必选)

首先是Python基础的需要掌握的知识点的学习路线图。如下图1所示

Python 基础必须熟练掌握,这也没啥好说的。这里说下几个特别重要的知识点:

  1. 数据类型,这是每个程序都会用到的,重点需要掌握序列类型里的列表list,tuple ,还有就是字典dict。
  2. 然后就是流程控制,循环,判断这个也是必须要会的。
  3. 接着就是函数,面向对象的思想,以及文件的操作。
  4. 最后就是并发编程,如何创建一个线程,怎么使用线程池,这个也是必须要掌握的。

Python基础学习资源推荐

这里推荐几个个人认为比较好的学习资源。

2. Python爬虫的学习路线(必选)

大厂纯Python爬虫工程师的岗位比较少,我找遍了阿里,腾讯,百度,字节的Python爬虫工程师的相关岗位。最终只在字节跳动招聘网站上找到了Python爬虫工程师的岗位。这就告诉我们学习Python不能止步于爬虫。 同样的这里我也给出一份爬虫的学习路线图,如下图2所示。

虽然,只掌握爬虫相关的知识点比较难找到对口的好岗位。但是如果能熟练掌握爬虫技术的运用,对自身Python开发能力会有一个非常大的提升。

爬虫的学习路线主要是:

  1. 掌握基础的HTML和Dom树的相关知识点,懂得啥叫元素,啥叫标签,啥是css选择器。
  2. 按照爬虫的三大步骤:抓取网页源码,提取所需数据,数据存储分别来学习。
  3. 首先是抓取网页源码,这里就是熟练运用requests库了。
  4. 接着是提取所需数据了,这里就是要熟练掌握lxml库的运用,XPath选择器,以及正则表达式了。
  5. 在接着就是保存提取的数据了。数据可以保存到MySQL,NoSQL 等数据库了或者CSV中。一般而言,在实际开发中都是保存数据库中。这就需要我们掌握一些数据库的基础知识了。
  6. 然后就是多线程爬虫,批量爬取数据的话,单线程的程序肯定是力不从心的,这时候就需要用到在Python基础学到的多线程的知识点。将其运用到实际爬虫中去。
  7. 如果每次都是这么搞,爬虫的效率势必会比较慢,这就开始学习专业了爬虫框架了Scrapy框架了。
    经过上述七个步骤,你对Python爬虫技术也了解的差不多了。
    但是大厂往往要求还会高一点,比如字节的爬虫工程师会要求你熟悉常见反爬封禁策略。

Python爬虫学习资源推荐

  1. 黑马Python爬虫学习视频
    获得方式:关注公众号【码农飞哥】回复: 学习资料

    推荐理由:视频讲解很细致,路线图中涉及到的知识点都讲解到了。唯一美中不足的是视频有点老了。视频还有配套的课件以及代码
  2. 13天搞定python分布式爬虫_尚学堂Python网络爬虫教程和爬虫实战详解_Python分布式
    推荐理由:免费视频,尚学堂官方出品,视频较新。爬虫相关的知识点基本涉及到了。
  3. 阿里云的Python学习路线
    推荐理由:学习视频免费,有完整的学习路线。

3. Python网站开发(必选)

学习完成Python爬虫中,相信你的Python开发能力已经上了一个很大的台阶,如果有兴趣的话可以学习一下Python网站开发。同样的这里给出了一个学习路线图。如图3所示:

网页开发需要了解一些必备的前端知识点。

  1. 了解前端知识点:HTML,CSS,ajax。
  2. 学习Flask框架或者Django框架,这两个框架都是Web开发框架。它们的区别是:
    Flask:
    小巧、灵活,让程序员自己决定定制哪些功能,非常适用于小型网站。
    对于普通的工人来说将毛坯房装修为城市综合体还是很麻烦的,使用Flask来开发大型网站也一样,开发的难度较大,代码架构需要自己设计,开发成本取决于开发者的能力和经验。
    Django:
    大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富。
    非常适合企业级网站的开发,但是对于小型的微服务来说,总有“杀鸡焉有宰牛刀”的感觉,体量较大,非常臃肿,定制化程度没有Flask高,也没有Flask那么灵活。

另外,快手招聘Python工程师要求掌握Tornado框架,这个框架也是一个Web框架,不过跟其他Web框架最大的不同是它是一个非阻塞式的web框架。

Python网站开发学习资源推荐

  1. Flask官网
  2. Django官方文档
  3. Tornado官方文档

4. MySQL的学习路线(必选)

从上面的招聘要求我们同样可以看出MySQL也是我们需要要掌握的一个知识点。MySQL的知识点很多很多,如果要学的很深的话着实要花费一番力气。这里我同样的列举出了一个MySQL的学习路线图,如下图5所示:

 老实说,不管是从事Java开发工程师的岗位,还是从事Python开发工程师,MySQL都是绕不过的坎。这里对MySQL的学习还不能只是掌握一些简单的皮毛知识。而是要将MySQL的进阶知识也要掌握好。针对进阶知识学有余力的同学可以掌握一下,普通的同学只需要掌握到SQL基础即可。

特别说明:

  1. MySQL的SQL基础必须要熟练掌握,最基础的建表删表修改表结构的DDL语句, 最基本的增删改查的DML语句,以及复杂的SQL语句,比如关联查询,子查询等等都是要求必须掌握的。
  2. 还需要掌握一下数据库事务,数据库锁,以及SQL语句的优化。

MySQL学习的推荐资源

  1. 《MySQL必知必会》
    推荐理由:这是我整篇文章中推荐的唯一一本书,无他,就是因为这本书小巧,并且特别是和小白入门学习。
  2. SQL在线练习
    leetcode数据库刷题:
     推荐理由:XUESQL网站是一个练习SQL的网站是,适合从基础开始练习,题目由浅入深,而且有配套B站视频。leetcode不仅可以刷算法题,还可以练习写SQL,而且可以在线测评,和评测算法题一样,也会让你很直观的看到自己所写的SQL的运行速度等。相对而言,leetcode中的SQL题目要复杂些。其实,练习SQL最重要的还是要有实际场景,只靠网站练习可能在实际工作中用处不大,如果你日常工作经常遇到些SQL的场景,那么慢慢你的SQL水平就会提升上去。

5. Linux 基础(必选)

基本上大多数的项目和网站都是部署在Linux服务器上的,所以掌握Linux的常用操作就显得尤为必要,这也是相关岗位的招聘需求上明确写到的。Linux的学习路线图如下图4所示:

因为Linux不是我们学习的重点,所有我们只需要掌握Linux初阶阶段要求掌握的知识点。对于学有余力的同学,可以学下中级乃至高级的知识点。

Linux初级阶段重点需要掌握的知识点包括:

  1. Linux 的常用命令,这个真的太重要了。
  2. 文件与目录管理
  3. 文件权限与目录配置
  4. 文件的打包和压缩

Linux基础学习资源推荐

  1. 鸟哥的Linux私房菜简体中文版
    推荐理由:鸟哥的Linux私房菜真的是Linux学习的首推资料。我当初还没买了一本实体书,实在是太厚了,也没有看完。实在不推荐买实体书。不过好在鸟哥的Linux私房菜出了在线学习网站,不过官方网站是繁体中文的,对我们这些使用简体的人来说着实有点不太友好。
    所以这里我放出了相对比较友好的简体中文版鸟哥的Linux私房菜简体中文网站
  2. Linux 命令大全
    推荐理由:其实日常开发中我们用的最多的就是各种Linux命令,这里推荐一个Linux命令大全的网站。查找命令特别方便。

总结

本文从大厂Python工程师的招聘要求出发,罗列了作为一个Python工程师所必须掌握的知识点,并附上了众多优质的免费的资料。

在此诚邀您加入我的社区。各近3W的社员一起打卡学习,学习的路上不在孤单。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
10天前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
92 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
7天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
18天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
18天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
17天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
28天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
27天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
15天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80
|
4天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
25 14