程序员要生存,快速掌握新知识,得学会这6招

在这里插入图片描述
都说“活到老,学到老”,这句话放在程序员身上是再合适不过了。因为软件开发技术每年都有更新。在过去的三年Python从3.7更新到了3.9,就更不要说层出不穷的第三方软件包以及它们的更新了。

在这里插入图片描述
所以作为一个程序员,最重要的能力就是学习能力。但也不用过分担心,因为底层知识变化是很慢的,比如我们用到的网络知识,几十年都没变化过。就算是最热门的人工智能,现在大家学习的大部分技术也都是十几年,甚至几十年前的技术。变化快的是上面的花架子。打好底层的基础,学会如何快速学习上层的花架子,其实吧,做程序员没那么累😆。

在这里插入图片描述
Python之所以强大,一个原因是它有丰富而强大的包,不管你想处理Excel,还是做人工智能,都能找到相应的包,直接拿来使用。我们掌握了Python编程基础知识后,剩下的就是快速学会使用这些包来解决自己的问题。

本文分享了我对学习新知识和新模块的压箱底的一些技巧。初学者如果能够掌握这些技巧,你很快就可以告别小白对阶段。就算还是小白,也是专业的小白。

文中模块和包可能会交替使用,它们是一样的意思。

1 必须的掌握的核心知识

为了能够有效的学习和应用下面的技巧,我们必须先掌握Python和编程的核心概念。

在这里插入图片描述
如上图中:下面绿色方块中的编程语言基础是我们必须先学好的部分,剩下的就是按需学习一个个模块。而左边黄色通用技术和高阶知识可以按需学习。

我们来看看那些是必须要先学好的知识:

1.程序的基本结构:表达式,语句,循环,分支,代码块。

程序是由一个个语句组成的。有的语句就一行代码,如赋值语句;有的语句是一个甚至多个代码块,如循环语句和分支语句。语句中包含表达式。表达式表达了运算的过程,如算术运算,逻辑运算,函数调用等。总之,给你一段程序,你能熟练看懂它的结构。如果它的结构有问题,你能轻松的指出问题所在。

2.字面量,变量和变量类型

代码中操作的数据要么以字面量的形式出现,要么是以变量的形式出现,而变量要先定义再使用,没有定义就使用必然会报错。看到变量要意识到他是否已经定义了,在哪里定义的,它的作用范围是什么。有可能同名变量在多个地方都定义了,要清楚的知道当前是那个变量。

另外,时刻意识到任何一个变量都是有它的类型的,整数,小数,字符串,列表还是第三方包定义的类。类型决定了它有哪些方法。

3.函数和作用域

清晰的理解函数的名称,参数,返回值等要素,以及变量的作用域。知道常用的Python自带函数,如len()等。有些函数来源于某个模块,有些函数属于某个类,有些函数是我们自己定义的。不管变量还是函数都有其使用范围,有它们所属的命名空间。

4.面向对象

Python是一个面向对象的编程语言,我们要使用的各种Python自带的包或者第三方包大都是以面向对象的形式写的。理解类和实例的区别,以及相应的实例变量和类变量,实例方法和类方法等。

5.模块和包

模块和包是Python组织代码的方式。熟悉import的几种用法。能熟练的使用pip安装,更新和卸载包。对于中国程序员,会配置pip的中国镜像站点。

在我的私教课程中,我把Python必须掌握的技能总结为Python36技,要掌握的就那么36招。剩下的就是使用这些技能去解决问题,学习花架子。如果你想系统的快速的学习,需要有人手把手指导你,可以来参加。有专业的指导,学的更快。

2 有问题,先问Python

写代码过程中遇到不会的问题,最好的方法不是问别人,也不是去搜索,而是问Python:在交互式Python中直接运行做尝试,Python会告诉你是否行得通,哪里有错。

记住:Python解释器才是你最好的老师,它24小时陪伴着你。

假设你想知道字符串是否可以相加。‘你好’ + ‘秃头叔’ 能行吗?

这种问题根本不用去问别人或者去网上搜索,打开交互式Python,实验一下就知道了:

>>> '你好' + '秃头叔'
'你好秃头叔'
>>> '你好' - '秃头叔'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'str'
>>> '你好' * 3
'你好你好你好'
>>> '你好' / 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'str' and 'int'
>>> '你好' * '秃头叔'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'

很快就可以实验出来,字符串加法是可以的,也可以乘以数字,但是减法和除法是不行的。

复杂点的代码可以写到文件中,总之用代码去测试,有问题,先Python。

自己没有试验过,没有问过Python,最好不要去问别人,尊重别人的时间。这是程序员应该具备的素养之一。

当然,这个技巧需要你对Python基础知识有一定的掌握,否则你都不知道怎么问Python。

3 问Python的3个命令

有3个python的命令(函数),一旦掌握,就打开了非常广阔的世界,基本具备了快速学习的能力。

1. type - 了解类型

在森林中,你看到一个动物,你的第一反应应该是:这是什么动物?因为知道了是什么动物,你就知道了它的特性,你就知道了应该赶快跑开,还是可以去亲近它。

在写代码中,在学习新包的过程中,我们也要知道这个包中主要有哪些类,当前处理的这个变量是什么类型,否则程序报了错你都不知道怎么回事。

使用type()函数可以了解变量的类型。比如下面的代码:

>>> import requests
>>> res = requests.get('https://www.baidu.com')
>>> type(res)
<class 'requests.models.Response'>

使用requests.get()方法抓取百度的首页,返回的不是字符串,而是一个Response对象。知道了它的类型,我们可以深入研究Response对象包含哪些属性和方法。不管在搜索相关资料,还是讨论相关问题中,都会更加有效。

requests是什么呢?请记住,所有的变量和字面量都属于某个类型。

>>> type(requests)
<class 'module'>

requests是一个模块,说的简单点就是一个python文件,里面定义了一些全局变量和函数。有哪些变量和函数呢?它的源代码在哪里呢?请继续阅读。

2. dir - 查看有哪些变量和函数

dir可以查看一个模块或者一个类中有哪些变量和函数,以requests为例:

>>> dir(requests)
['ConnectTimeout', 'HTTPError',..., 'warnings']

dir返回一个list,里面包含当前类或者模块中的:全局变量,函数,类,子模块等。

假设你在学习用turtle包画图,不知道如何设置背景颜色,不知道如何移动。

import turtle
t = turtle.Turtle()
#如何设置背景颜色?如何移动t变量的位置?

可以用dir看看turtle模块有哪些函数:

在这里插入图片描述

虽然内容有点多,但仔细看一下可以发现:bgcolor就是用来设置背景颜色的;Turtle是turtle模块中的一个类,所以我们用turtle.Turtle()创建一个Turtle对象。接下来看一下Turtle对象有哪些函数:

在这里插入图片描述
仔细过一遍这些函数,就可以大概猜测到forward是向前移动,back是向后,而speed代表速度。这时候也可以写代码尝试一下。

这么多函数,看起来有点困难。可以使用pprint.pprint打印的好看一点:

>>> import pprint
>>> pprint.pprint(dir(turtle.Turtle))
['DEFAULT_ANGLEOFFSET',
 'DEFAULT_ANGLEORIENT',
 'DEFAULT_MODE',
 'START_ORIENTATION'
 ....

dir返回的列表中包含了变量,函数,类等等。以算术模块math为例,我们可以通过下面的代码查看他们各自的类型:

>>> import math
>>> pprint.pprint([(name,type(getattr(math,name))) for name in dir(math)])
[('__doc__', <class 'str'>),
 ('__file__', <class 'str'>),
 ('__loader__', <class '_frozen_importlib_external.ExtensionFileLoader'>),
 ('__name__', <class 'str'>),
 ('__package__', <class 'str'>),
 ('__spec__', <class '_frozen_importlib.ModuleSpec'>),

通过type函数和getattr函数,可以知道dir返回的名字具体是什么类型,然后使用推导式生成一个新的列表。

这个过程也许看起来有点复杂,但一旦掌握了,你的自学能力就上了一个不小的台阶。建议多看几遍本节的内容。

3. help - 查看详细文档

通过help,可以查看函数或者类的详细文档:

>>> import turtle
>>> help(turtle)

命令行会显示详细的turtle文档:

在这里插入图片描述

可惜这是英文的,建议大家尽量去阅读和学习吧。在命令行下按q就可以退出文档。

也可以查看一个具体函数的文档,下面来查看turtle包中的Turtle类的fd函数的说明:help(turtle.Turtle.fd)

在这里插入图片描述
这里就容易懂多了,不仅说明了函数的功能,还给了代码例子。

4 学会看文档

官方文档通常是最好的学习资料之一,下面讲解如何下载和设置官方文档。Python有中文文档,这可以解决前面英文看不懂的问题。

1.去Python的官方文档站:https://docs.python.org/3/

2.在网页的左上角,选择简体中文和Python版本

在这里插入图片描述
3.就可以看到各种文档了,初学者可以先看入门教程,有明确目的可以看语言参考或者标准库参考

在这里插入图片描述
4.也可以在右上角搜索关键词:

在这里插入图片描述
下载到本地后,解压文件夹,在里面找到index.html

在这里插入图片描述
打开index.html就和在线使用一样了。你也可以把这个地址加到浏览器的收藏夹:

在这里插入图片描述
这样你就有了一个本地的Python文档网站,有问题先在这里搜索一下。

5 学习新的包

程序员之间有一句话叫做“不要重复造轮子”,意思是说你要解决的问题很可能有人已经帮你做好了,你只要拿来用就行了。在Python的世界里,就是找到合适的包。

1. 确定用什么包

以处理Excel为例,有很多处理Excel的包,有的可能是给老版本Python使用的。我们要花点时间确定那个包是最适合的。

最简单的方式是直接搜索一下,看看大家怎么说。搜索的格式建议为:Python 关键词 包

在这里插入图片描述

不要着急下结论,认真读完前面几个文章,看看大家推荐什么,这些不同的包之间有什么区别,适用于什么场合。耐心一点,这里花1个小时找对包,后面可以节省你几个小时,甚至几天的时间。假设我们确定要使用openpyxl,就可以继续下一步了。

2. 找到包的主页

确定了包的名字就可以去找到包的官方主页了。https://pypi.org是Python的包的大本营。上这个网站,搜索你确定的包的名字:

在这里插入图片描述
点击进入包的介绍页面:

在这里插入图片描述
可以看到除了基本介绍,还有一些代码参考,以及官方文档的地址。

3. 找到包的文档

查看官方文档是很重要的。有时候官方文档的链接可能在网页的左边栏。总之认真在页面上找到官方文档的地址,然后进入官方文档:

在这里插入图片描述

进入官方文档后,剩下的就是认真看文档的内容了。大部分包的文档质量都很好,包含了常见的用法和要解决的各种问题。有的甚至有中文的文档,认真在网页上找一下,看看有没有中文文档的链接。

也可以搜索一下,用谷歌搜索“openpyxl 官方文档 中文”第一条就是中文的官方文档。用百度搜质量就很差了,慢慢找也可以找到这个网站。

在这里插入图片描述
4. 运行文档中给的参考代码

接下来,尝试运行文档中给的参考代码,至少是前面几段最重要的参考代码,一步步走下去。走完以后,你就对这个包就有不错的理解了,可能已经知道如何解决你自己的问题了。

在这里插入图片描述

6 看源代码

学习一个模块,更高点的境界是直接看它的源代码,你甚至可以为了去修改它的源代码。

使用__file__属性可以找到源代码的所在地:

>>> turtle.__file__
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/turtle.py'
>>> import openpyxl
>>> openpyxl.__file__
'/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/openpyxl/__init__.py'

Python自带的函数和部分模块是用C语言写的,无法看到Python的源代码。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值