今天在知乎上看到了这么一个问题:

怎么自学Python,大概要多久?

一时兴起,就给回答了一波,我觉得可能对你来说要一定的参考价值,不妨看看小帅b怎么说的吧。

自学 Python ,我觉得你要先问自己两个问题:

1.我为什么要学 Python,我希望通过它实现什么事情?

2.我有什么比较好的 Python 学习资源适合自己自学?

我认为在自学某样东西的时候,从最关乎于「自身的需求」出发,这样往往能给自己比较强的驱动力,其次是兴趣。

比如你在工作过程中,对于一些简单且重复的文件或者回复等操作,你会觉得很浪费时间,但是又不得不去完成,这是你对自动化脚本操作的需求;

比如你在一个团队中,想要有一个在线网站系统来管理你们之间的事务,或者想拥有一个自己的网站,这是你对 web 开发的需求;

比如你想批量获取一些网上对你有用的数据并加以分析,这是你对爬虫和数据分析的需求;

比如你想写一个小游戏,给你身边的朋友们玩玩,让他们觉得你很厉害的样子,这是你装逼的需求;

比如你就是单纯为了好玩;

比如你就是想找一份关于 Python 的工作,拿个 10k+;

….等等需求。

当你明确了自己的需求之后,你会更加聚焦于你「该知道的东西」,有一个词叫做「信息茧房」,说的是:

信息茧房是指人们关注的信息领域会习惯性地被自己的兴趣所引导,从而将自己的生活桎梏于像蚕茧一般的“茧房”中的现象。

虽然这种现象在信息获取或者认知中,可能并不好,但是类似的,如果我们一开始自学的时候,是通过自身的需求所引导,去获取相关的学习资源,反而是事半功倍。

在 《高效能人士的七个习惯》这本书中,有提到其中一个习惯——「以终为始」,也可以当作类似的参考,想象一下,当你亲自把你的需求给实现了,那是一个什么样的场景?是不是贼激动,你会马上想方设法的去学习去应用,尽管现在我们什么都不会,可那又如何?时间问题而已。

当然,如果你是一个完全 0 基础的小白,那么对于最基本的 Python 基础语法,还是需要先弄懂的。

你也可以在这里看到 Python 基础知识的思维导图

https://www.processon.com/view/link/5e480ea0e4b00aefb7e1a8d8#map

你也可以到这里看到官方的基础文档教程:

https://docs.python.org/zh-cn/3/tutorial/index.html

你还可以通过「学习python的正确姿势」左下角的「小白教程」进行学习:

你也可以买一本 Python 编程基础书籍:

也许在自学这些基础知识的过程略显枯燥,可以结合一些有意思的案例辅助学习,举几个我写的可能会让你产生兴趣学下去的教程:

你也可以去 GitHub 上面搜索,一些比较基础,并且适合你边学边看的小项目。

如果你的需求是通过 Python 实现一些你日常工作的工具,那么当你学会了 Python 基础知识,并且能够通过自己模仿一些项目,从 0 到 1 实现出来,也知道了如何去使用一些框架,那么这时候的你就可以结合 Google,去搜索一些第三方库的使用文档,应用到你自己的项目需求上,慢慢的让 Python 为你所用,做到可以实现自己的一个又一个的小需求,那就差不多了。

当然,如果你想成为一名程序员,那么这是远远不够的。

我们需要对一些进阶的 Python 语法进行学习,比如装饰器怎么写,lambda 什么时候使用,怎么样才让代码规范一点, Pythonic 一点?

如何提高效率,Python 并发编程怎么写,多进程、多线程、协程有什么区别?

在 Python 不同环境下怎么操作,虚拟环境怎么搞?

Python 解释器怎么工作的?又,C语言快,Python效率高,它们怎么结合起来?怎么扩展的等等…

甚至于算法、网络知识这些。

除了本身的进阶知识,在不同的领域还会有不同的知识点,我在这里整理了一些不同阶段不同领域的相关 Python 书籍,你可以看一看:

https://zhuanlan.zhihu.com/p/146199554

至于说要学多久?

我想说的是,这个是根据自己本身的需求和能力而定的,学是一个持续的过程,可以是一阵子,也可以是终身!

看你了!

上面提到的这些东西,通过自己学习掌握了它们,这种感觉是很棒的,尽管有些知识我们可能会比较少的去使用,但不用过多在意它们,因为这过程的本质是「锻炼了自己的自学能力」,当以后接触到新的领域新的知识的时候,同样的问题,虽然我们不知道学多久,但是我们知道学的比别人「快」,跟我一起成为「快男」吧。

最后,小帅b,一个看似不正经实则很正经的人,还不关注一波?