之前,我经常被问到这样的问题:
- 看书很枯燥,应该怎么学习 Python?
- 我是小白,适不适合学习 Python?
- 有没有书籍或者学习资源推荐?
我都简洁的回答:像玩游戏一样学习,你要从中获得成就感;如果你能学会玩游戏,就能学会 Python。说到游戏,我的公众号取名「Python七号」,就是源自王者荣耀里的「鲁班七号」,它简单易学,输出高,还有句名言:相信科学!
今天展开来说一下。
其实,我从未研究过怎么学习 Python,也从未把学习 Python 当作一个目标。两年前接触 Python,也就业余时间投入点精力,我已经熟练掌握 Python,并可以写爬虫、开发网站,解决不少实际问题。这也确实不算什么成就,但是这个方法我认为对任何想学好 Python 这个技能的人来说都是非常有效的。
首先,你必须无条件相信自己学得会。
没有人是 0 基础,你认识字就不是 0 基础,你上过中学、大学就不是 0 基础,你上过班就不是 0 基础,你有基本的理解能力、思考能力、沟通能力,就不是 0 基础,只要不是 0 基础,你什么都能学会,任何人只有愿意付出时间去搜索、去思考、去练习,没有什么东西是不学会的。如果你学不会,不是因为你基础差,而是你投入的时间不够,练习的次数不够。1 月学不会,那就学 3 个月,不行就 1 年,再不行就 3 年。
其次,学习 Python 不是你的目标,解决问题才是。
假如你已经学会了 Python,然后呢?如果你也不知道然后干啥,那么先不要学习,没有目标的学习,就是在浪费时间。试想 Python 的应用领域那么广,没有一个目标,东一榔头,西一棒子,怎么可能学的好。我们要以终为始,先明确学习的目标,然后对目标分解,针对每一个小目标去学习,每完成一个小目标,就是一个小小的激励,别小看这个激励,正是它推动着我不断学习。
当初我做运维,为了监控作业报错,就想着如何将报错日志发送邮箱,就搜了下,结果找到了 Python 发送邮件的 demo,将其改成通用的函数,用在了运维监控上,几行代码就搞定了,我觉得 Python 很有趣,很高效,运维领域有很大的用处,就研究了 Python 的基础语法,很快就可以上手了。
然后就想着如何将其变得更加通用,准备做成一个守护进程,自动解析指定位置的日志文件,收集报错信息自动发送指定收件人,有了这个目标,就学习了 apscheduler、watchdog、文件、编码、配置文件等相关的知识,很快就实现了,获得小小的成就感。
接下来就想着如何将其优化,准备做成一个 API,其他人调用这个 API 就可以发送报警,再扩展到发送微信、短信等功能,于是就学习了 Python 相关的 http 库,比如 fastApi、Flask、Django、Django-rest-framework,在遇到问题翻看开源代码的过程中学习了大佬的编程技巧,还顺带着学习了编程的设计模式。再次获得成就感。
因为接触了 Django,我就学习了如何开发一个网站,想着如何自己弄一个 Web,来提升上线的效率,有了这个目标,我就学习了 Python 的 Web 技术栈,了解到最流行的做法是前后端分离,于是我就学习了 Vue、nginx、uwsgi、redis 等技术栈,虽然不精,但是已经能为我所用了。正好有朋友有需求,就帮着做了个网站,赚了两万,虽然不多,但这是学习 Python 之后获得的第一桶金,这种激励会持续不断的推动着我去学习。
说了这么多,概括来讲,就是先有个明确的目标,无论它多么小(比如爬取一个网站的数据),无论它多么的俗(为了钱), 只有有了目标,学习 Python 就不会枯燥,而且目标实现了会获得成就感,这种成就感是学习的原动力,会吸引着你持续不断的投入时间,就好比玩游戏上瘾一样,我用 Python 上瘾。
此外,通过主动学习提升知识的留存率。
什么是主动学习?
简单来说,你被别人教,就是被动学习。比如,你看别人的文章、书、视频,当时感觉学会了,过几天可能就忘了,知识的留存率只有 5%。
你去教别人,就是主动学习。比如你写文章讲解一个技术,你做技术演讲,你写一套课程,写书,这都是主动学习,主动学习你需要付出大量的时间和深度思考,学习到的知识也会深刻印在你的记忆里,知识的留存率是 90%。
我目前仍在坚持写公众号,将自己学到的,分享出来,写作的过程中,会发现自己对某个技术也是一知半解,为了能够描述清楚,就要去搜集,去学习,去思考并理解,只有自己明白了才能讲清楚,这个过程也是学习的过程,这也应验了学习的金字塔结构,如下图所示:
主动学习除了写作,还可以做技术分享,做演讲,做直播,准备的过程就是主动学习的过程,这个过程除了让你收获更多志同道合的朋友,还可以积累影响力,有了影响力,就会有更多机会,这些机会推动着你再去学习,良性循环。
一句话,要想学会 Python,你先被动学习,然后主动学习,身边有人请教,就就去教别人,如果教不了别人,就教自己的女朋友或孩子。有本书叫《和孩子一起学编程》,耗子叔推荐过,很有意思。
最后,我学习 Python 的一些网站和书籍:
- Python官方文档[1]
- 菜鸟教程[2]
- 廖雪峰的官方网站[3]
- 极客时间「Python核心技术与实战」景霄
- 极客时间「设计模式」王争
- 电子书-0 基础学 Python-老齐[4]
概括来讲,就是为自己建立一套学习的激励系统,每实现一个小目标,就会获得奖励或成就感,这种成就感是一股强大的力量,不断推动着你去学习,去精进,这绝不是自欺欺人,要知道,人的大脑生来就是趋利避害的,要让它感受到学习的利,每努力一次,就会获得一次激励,大脑就会控制你,让你越来越喜欢这种感觉。
这样,你就会变得越来越好。
欢迎留言讨论
参考资料
[1]
Python官方文档: https://docs.python.org/3/
[2]
菜鸟教程: https://www.runoob.com/python3/python3-tutorial.html
[3]
廖雪峰的官方网站: https://www.liaoxuefeng.com/wiki/1016959663602400
[4]
电子书-0 基础学 Python-老齐: https://pan.baidu.com/s/14CzrrQ58bv20iwAxd
f0YsQ密码:o66w