刚刚,我在知乎认真的回答了这个问题
今天在知乎上看到了这么一个问题:
怎么自学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 书籍,你可以看一看:
至于说要学多久?
我想说的是,这个是根据自己本身的需求和能力而定的,学是一个持续的过程,可以是一阵子,也可以是终身!
看你了!
上面提到的这些东西,通过自己学习掌握了它们,这种感觉是很棒的,尽管有些知识我们可能会比较少的去使用,但不用过多在意它们,因为这过程的本质是「锻炼了自己的自学能力」,当以后接触到新的领域新的知识的时候,同样的问题,虽然我们不知道学多久,但是我们能够明确的只知道,我们会学的比别人「快」,跟我一起成为「快男」吧。
最后,小帅b,一个看似不正经实则很正经的人,还不关注一波?