如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
IS NULL 运算符
列出了 "Address"字段中具有 NULL 值的所有客户:
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;
提示:始终使用 IS NULL 来查找 NULL 值。
IS NOT NULL 运算符
该IS NOT NULL运算符用于测试非空值(NOT NULL 值)。
列出了在 "Address”字段中具有值的所有客户:
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;
练习:
从列为空的Customers位置选择所有记录PostalCode。
SELECT \* FROM Customers
WHERE PostalCode IS NULL;
UPDATE更新语句
UPDATE语句用于修改表中的现有记录。
UPDATE 语法:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
注意: 更新表中的记录时要小心!注意 WHERE语句中的子句UPDATE。该WHERE子句指定应该更新哪些记录。如果省略该WHERE子句,表中的所有记录都将被更新!
我们还是以“Customers”表为例:
更新表
更新CustomerID = 1的用户名字和城市数据
UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
更新过后将会如下:
更新多条记录
该WHERE子句确定将更新多少条记录。
将国家为"Mexico"的所有记录的 ContactName 更新为“Juan”:
UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';
更新后将会变成:
更新警告!
更新记录时要小心。如果省略该 WHERE子句,则所有记录都将被更新!
例如:
UPDATE Customers
SET ContactName='Juan';
则会导致如下结果:
练习:
更新表City中所有记录的Customers列。
UPDATE Customers
SET City = 'Oslo';
DELETE删除语句
该DELETE语句用于删除表中的现有记录。
删除语法
DELETE FROM table_name WHERE condition;
注意: 删除表中的记录时要小心!注意 WHERE语句中的子句 DELETE。该WHERE条款指定应删除哪些记录。如果省略该WHERE子句,表中的所有记录都将被删除!
哈哈哈哈,我们还是以“Customers”表为例子如下:
删除示例
从“Customers”表中删除客户“Alfreds Futterkiste”:
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
于是就变成这样:
删除所有记录
可以在不删除表的情况下删除表中的所有行。这意味着表结构、属性和索引将保持不变
DELETE FROM table_name;
例如:删除“Customers”表中的所有行,但不删除该表:
DELETE FROM Customers;
练习:从Customers表中删除Country值为“挪威”的所有记录。
DELETE FROM Customers
WHERE Country = 'Norway';
TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句
SELECT TOP 子句
SELECT TOP子句用于指定要返回的记录数。SELECT TOP子句在具有数千条记录的大表上很有用。返回大量记录会影响性能。
注意: 并非所有数据库系统都支持该 SELECT TOP子句。MySQL 支持LIMIT子句选择有限数量的记录,而 Oracle 使用FETCH FIRST n ROWSONLYROWNUM
Server / MS 访问语法:
SELECT TOP number|percent column\_name(s)
FROM table_name
WHERE condition;
MySQL 语法:
SELECT column\_name(s)
FROM table_name
WHERE condition
LIMIT number;
Oracle 12 语法:
SELECT column\_name(s)
FROM table_name
ORDER BY column\_name(s)
FETCH FIRST number ROWS ONLY;
比如还是“Customers”表如下
TOP、LIMIT 和 FETCH FIRST示例
从 "Customers表中选择前三个记录(用于 SQL Server/MS Access):
SELECT TOP 3 \* FROM Customers;
MySQL 的等效示例:
SELECT \* FROM Customers
LIMIT 3;
Oracle 的等效示例:
SELECT \* FROM Customers
FETCH FIRST 3 ROWS ONLY;
TOP PERCENT 示例
从"Customers“表中选择前 50% 的记录(用于 SQL Server/MS Access):
SELECT TOP 50 PERCENT \* FROM Customers;
Oracle 的等效示例:
SELECT \* FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
添加 WHERE 条款
从“Customers”表中选择前三个记录,其中国家是“Germany”(对于 SQL Server/MS Access):
SELECT TOP 3 \* FROM Customers
WHERE Country='Germany';
MySQL 的等效示例
SELECT \* FROM Customers
WHERE Country='Germany'
LIMIT 3;
Oracle 的等效示例:
SELECT \* FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;
MIN() 和 MAX()函数求最大最小值
MIN()函数返回所选列的最小值。MAX()函数返回所选列的最大值。
MIN() 语法
SELECT MIN(column_name)
FROM table_name
WHERE condition;
MAX() 语法
SELECT MAX(column_name)
FROM table_name
WHERE condition;
现在我们换一个新的表Product如下:
MIN() 示例
查找最便宜产品的价格:
SELECT MIN(Price) AS SmallestPrice
FROM Products;
显示如下:
MAX() 示例
查找最贵产品的价格:
SELECT MAX(Price) AS LargestPrice
FROM Products;
返回如下:
练习:
使用该MIN函数选择Price列的最小值的记录。
SELECT MIN(Price) FROM Products;
COUNT()、AVG() 和 SUM()函数
该COUNT()函数返回与指定条件匹配的行数。
COUNT() 语法
SELECT COUNT(column_name)
FROM table_name
WHERE condition;
该AVG()函数返回数字列的平均值。
AVG() 语法
SELECT AVG(column_name)
FROM table_name
WHERE condition;
该SUM()函数返回数字列的总和。
SUM() 语法
SELECT SUM(column_name)
FROM table_name
WHERE condition;
我们还是用表product
COUNT() 示例
查找产品数量:
SELECT COUNT(ProductID)
FROM Products;
注意: NULL 值不计算在内。
AVG() 示例
查找所有产品的平均价格:
SELECT AVG(Price)
FROM Products;
注意: NULL 值被忽略。
假设我现在有“OrderDetails”表如下:
SUM() 示例
查找“OrderDetails”表中“Quantity”字段的总和:
SELECT SUM(Quantity)
FROM OrderDetails;
返回如下:
注意: NULL 值被忽略。
练习:
返回Price值设置为18的记录数
SELECT COUNT(\*) FROM Products
WHERE Price = 18;
LIKE运算符
该LIKE运算符在 WHERE子句中用于搜索列中的指定模式。有两个通配符经常与 LIKE运算符结合使用:
百分号 (%) 代表零、一个或多个字符
下划线 () 代表一个,单个字符
但是呢注意: MS Access 使用星号 (*) 代替百分号 (%),使用问号 (?) 代替下划线 ()
当然百分号和下划线也可以组合使用!
LIKE 语法
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
提示:您还可以使用 AND或OR运算符组合任意数量的条件。
以下是一些示例,显示了LIKE带有“%”和“_”通配符的不同运算符:
所对应意思为:
第一行:匹配任何以a开头的字段
第二行:匹配任何以a结尾的字段
第三行:匹配任何具有“or”的字段
第四行:查找第二个位置有“r”的任何值
第五行:查找任何以“a”开头且长度至少为 2 个字符的值
第六行:查找任何以“a”开头且长度至少为 3 个字符的值
第七行:查看以“a”开头并以“o”结尾的任何值
比如我们还是有如下Customers”表:
LIKE 示例
选择 CustomerName 以“a”开头的所有客户:
SELECT \* FROM Customers
WHERE CustomerName LIKE 'a%';
选择 CustomerName 以“a”结尾的所有客户:
SELECT \* FROM Customers
WHERE CustomerName LIKE '%a';
选择 CustomerName 中任何位置都有“或”的所有客户:
SELECT \* FROM Customers
WHERE CustomerName LIKE '%or%';
选择 CustomerName 中第二个位置为“r”的所有客户:
SELECT \* FROM Customers
WHERE CustomerName LIKE '\_r%';
选择 CustomerName 以“a”开头且长度至少为 3 个字符的所有客户:
SELECT \* FROM Customers
WHERE CustomerName LIKE 'a\_\_%';
选择 ContactName 以“a”开头并以“o”结尾的所有客户:
SELECT \* FROM Customers
WHERE ContactName LIKE 'a%o';
选择 CustomerName 不以“a”开头的所有客户:
SELECT \* FROM Customers
WHERE CustomerName NOT LIKE 'a%';
通配符*?!等
这是英文文档所有通配符描述(实在不想翻译,大家自己看看)
假设我们还是有如下“Customers”表:
使用 % 通配符
选择 City 以“ber”开头的所有客户:
SELECT \* FROM Customers
WHERE City LIKE 'ber%';
选择 City 包含“es”的所有客户:
SELECT \* FROM Customers
WHERE City LIKE '%es%';
返回如下:
使用 _ 通配符
选择 City 以任何字符开头,后跟“ondon”的所有客户:
SELECT \* FROM Customers
WHERE City LIKE '\_ondon';
选择 City 以“L”开头、后跟任意字符、“n”、任意字符、“on”的所有客户:
SELECT \* FROM Customers
WHERE City LIKE 'L\_n\_on';
使用 [charlist] 通配符
选择 City 以“b”、“s”或“p”开头的所有客户:
SELECT \* FROM Customers
WHERE City LIKE '[bsp]%';
选择 City 以“a”、“b”或“c”开头的所有客户:
SELECT \* FROM Customers
WHERE City LIKE '[a-c]%';
使用 [!charlist] 通配符
选择 City 不是以“b”、“s”或“p”开头的所有客户:
SELECT \* FROM Customers
WHERE City LIKE '[!bsp]%';
或者
SELECT \* FROM Customers
WHERE City NOT LIKE '[bsp]%';
IN运算符
IN运算符允许您在 WHERE子句中指定多个值。
IN操作是针对多个速记 OR条件。
IN 语法
SELECT column\_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
我们还是以“Customers”表为例子:
IN 运算符示例
选择位于’Germany’, ‘France’, 'UK’的所有客户:
SELECT \* FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
选择不在选择位于’Germany’, ‘France’, 'UK’的所有客户:
SELECT \* FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
选择与 Suppliers来自相同国家的所有客户:
SELECT \* FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);
返回如下
BETWEEN 之间运算符
在BETWEEN操作者选择一个给定的范围内的值。值可以是数字、文本或日期。
BETWEEN 语法
SELECT column\_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
我们有用到如下的product表:
between示例
选择价格在 10 到 20 之间的所有产品:
SELECT \* FROM Products
WHERE Price BETWEEN 10 AND 20;
要显示上一个示例范围之外的产品,请使用 NOT BETWEEN:
SELECT \* FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
数字之间
选择价格在 10 到 20 之间的所有产品。此外;不要显示 CategoryID 为 1,2 或 3 的产品:
SELECT \* FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID NOT IN (1,2,3);
文本值之间
语句选择 Carnarvon Tigers 和 Mozzarella di Giovanni 之间具有 ProductName 的所有产品
SELECT \* FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
选择产品名称介于 Carnarvon Tigers 和 Chef Anton’s Cajun Seasoning 之间的所有产品:
SELECT \* FROM Products
WHERE ProductName BETWEEN "Carnarvon Tigers" AND "Chef Anton's Cajun Seasoning"
ORDER BY ProductName;
NOT BETWEEN 文本值
选择 ProductName 不在 Carnarvon Tigers 和 Mozzarella di Giovanni 之间的所有产品:
SELECT \* FROM Products
WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
我们现在假设有如下"Orders" 表:
日期之间示例
选择 OrderDate 介于 ‘01-July-1996’ 和 ‘31-July-1996’ 之间的所有订单
SELECT \* FROM Orders
WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#;
或者使用:
SELECT \* FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
AS 别名使用
别名列语法
SELECT column_name AS alias_name
FROM table_name;
别名表语法
SELECT column\_name(s)
FROM table_name AS alias_name;
现在我们还是假设有custorm表如下:
还有一个oeder表
列的别名示例
创建两个别名,一个用于 CustomerID 列,另一个用于 CustomerName 列:
SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;
创建两个别名,一个用于 CustomerName 列,另一个用于 ContactName 列。注意:如果别名包含空格,则需要双引号或方括号:
SELECT CustomerName AS Customer, ContactName AS [Contact Person]
FROM Customers;
创建一个名为“Address”的别名,该别名组合了四列(Address、PostalCode、 City 和Country):
SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers;
注意:要使上面的 SQL 语句在 MySQL 中工作,请使用以下命令:
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;
表别名示例
选择来自 CustomerID=4(Around the Horn)的客户的所有订单。我们使用“Customers”和“Orders”表,分别给它们表别名“c”和“o”(这里我们使用别名来缩短SQL)
SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName='Around the Horn' AND c.CustomerID=o.CustomerID;
以下 SQL 语句与上面相同,但没有别名:
SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName='Around the Horn' AND Customers.CustomerID=Orders.CustomerID;
别名在以下情况下很有用:
1.一个查询涉及多个表
2.一个查询涉及多个表
3.查询中使用的函数
4.列名很大或不太可读
5.两列或更多列组合在一起
JOIN连接
JOIN子句用于行从两个或更多表根据它们之间的相关列结合。
假设我们现在有"Orders" 表如下
同时还有表 “Customers” 如下:
请注意,“Orders”表中的“CustomerID”列指的是“Customers”表中的“CustomerID”。上面两个表之间的关系是“CustomerID”列。
示例
使用INNER JOIN选择在两个表中具有匹配值的记录:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
返回如下
不同类型的 SQL JOIN
INNER JOIN内连接关键字
INNER JOIN关键字选择在两个表中具有匹配值的记录。
语法:
SELECT column\_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
画个图理解:
假设我们还是有order表
customer表
INNER JOIN 示例
选择所有包含客户信息的订单:
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
返回
JOIN 三张表
选择包含客户和发货人信息的所有订单
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
返回如下
LEFT JOIN 左连接 关键字
LEFT JOIN关键字返回左表 (table1) 中的所有记录,以及右表 (table2) 中的匹配记录。如果没有匹配项,则结果是右侧的 0 条记录。
左连接语法
SELECT column\_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
来个图就懂了
我们还是用customer表:
order表
LEFT JOIN 示例
选择所有客户,以及他们可能拥有的任何订单:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
返回如下
RIGHT JOIN右连接 关键字
语法
SELECT column\_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
上图就懂了
现在我们用到order表如下
还有个employee表
返回所有员工,以及他们可能下过的任何订单:
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
FULL OUTER JOIN 关键字
FULL OUTER JOIN和 FULL JOIN是一样的。
语法为:
SELECT column\_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
来个图就懂了
我们假设还是以customer表
还有个order表
选择所有客户和所有订单:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
返回如下
Self Join自连接 关键字
语法
SELECT column\_name(s)
FROM table1 T1, table1 T2
WHERE condition;
我们假设有custormer表
匹配来自同一城市的客户:
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;
返回如下
GROUP BY语句
该GROUP BY语句将具有相同值的行分组为汇总行,例如“查找每个国家/地区的客户数量”。
该GROUP BY语句通常与聚合函数 ( COUNT(), MAX(), MIN(), SUM(), AVG()) 一起使用, 以按一列或多列对结果集进行分组。
语法:
SELECT column\_name(s)
FROM table_name
WHERE condition
GROUP BY column\_name(s)
ORDER BY column\_name(s);
假设我们还是有customer这个表
列出了每个国家/地区的客户数量:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
列出了每个国家的客户数量,从高到低排序:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
HAVING 子句
语法:
SELECT column\_name(s)
FROM table_name
WHERE condition
GROUP BY column\_name(s)
HAVING condition
ORDER BY column\_name(s);
假设还是有custorm表如下
列出了每个国家/地区的客户数量。仅包括拥有超过 5 个客户的国家/地区:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
列出了每个国家的客户数量,从高到低排序(仅包括客户超过 5 个的国家):
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
EXISTS 运算符
EXISTS运算符用于测试子查询中是否存在任何记录。
EXISTS运算符返回true,如果子查询返回一个或多个记录。
语法
SELECT column\_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
假设我们还是用到product表
suppiler表
例如:
返回 TRUE 并列出产品价格小于 20 的供应商:
SELECT SupplierName
FROM Suppliers
### 最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
#### 👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
![](https://img-blog.csdnimg.cn/img_convert/604bae65027d4d67fb62410deb210454.png)
#### 👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
![](https://img-blog.csdnimg.cn/img_convert/fa276175617e0048f79437bd30465479.png)
#### 👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
![](https://img-blog.csdnimg.cn/img_convert/16ac689cb023166b2ffa9c677ac40fc0.png)
#### 👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。
![](https://img-blog.csdnimg.cn/img_convert/0d8c31c50236a205928a1d8ae8a0b883.png)
#### 👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
![](https://img-blog.csdnimg.cn/img_convert/99461e47e58e503d2bc1dc6f4668534a.png)
**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**