写文章
颜sir说
2020-02-28 15:09

我是如何两周学会Python的

本篇优秀文章被收录在“提高你的工作效率”专题

因为疫情,每天录课答疑,空闲时间比平时多了五六个小时,一直眼馋Python,就从零基础开始学。

大概说说过程。

  1. 0-3天看语法书,把Python基本的语法掌握,包括装饰器和造轮子等高级的内容,我也囫囵吞枣看了一遍,边看边敲。

  2. 3-7天,在刷题网站上大量刷算法题,解决问题的过程中把掌握了基础语法的运用。

  3. 7-10天,看爬虫的基础知识,把网上能花钱买到的好爬虫课全买下来,2倍速看完。

  4. 10-14天,上手使用各种爬虫库并掌握额外知识,包括正则表达式,json,文件读写,线程池。

  5. 第15天,就在昨天凌晨,写了个一百多行的爬虫项目,把异步加载的豆瓣网所有想要头像数据全抓取了下来。

2020-02-28-14-25-50.png


图片用一秒十几张的速度存到本地的那一刻,我知道我已经掌握了Python,不说多精通,但绝对够用,剩下的就是保持练习量,并学习更高级的用法。

学会Python对我来说有什么好处?

先说最直接的、我马上就体会到的好处,之前不懂编程时,我和我印度的coder交流,只能用浅显的表达,比如我和他说,我希望一段文字在上传到我网站时,需要把前面的这个那个地方给切掉。

至于切掉多少,怎么个切法,我要耗费大量精力和他解释,往往还要录视频过去沟通。

看看下面我用谷歌云盘存的视频,就知道以前我和外包的人沟通到底有多费劲(截图里全是我录的功能讲解视频!一个项目要录十几个甚至几十个!)。

2020-02-28-12-03-30.png

但学会Python,具备编程思维后,我和他基本只需要文字沟通,三两句话就能解释清楚。

2020-02-28-12-05-32.png

可以预料到,这至少帮我一天节省一个小时,换算下来,就把学Python的这段时间弥补回来了。

还有个好处,现在不是很明显,但我能隐隐约约感觉到,那就是,学会编程后我的抽象能力和逻辑能力有极大提高,这个后面详细说。

之所以能这么快学会Python,我认为有以下两点非常关键:

  1. 在学新知识上,我有“钞”能力,前前后后投入了几千元;

  2. 其他人学Python的顺序是what-how-why,但我学Python的顺序是why-how-what;

一个个来说。

首先说第一点,能力……这一点我相信米课圈大家都有体会,因为我们是同类人。

你能几千块钱甚至上万块钱买“毅料汪颜”的课,你就知道,学东西有个好老师带领入门是多重要。

明面上我们花了很多钱,但实际上我们节省了很多时间,同时还把所有的坑都避开了。

打个比方,我现在的爬虫项目的代码虽然只有一百多行,但不管是命名、语法、注释还是面向对象,我一上来就是最高级别的工业水准。

111582871497_.pic_.jpg

所谓工业水准,就是说,我现在Python的代码交付给给任何一个人或任何一个团队,对方上手就能扩展,我的代码符合国际标准,能“拎包入住”。

要知道很多写了五六年代码的人,之所以永远只能写小项目,就是因为他们习惯了写非工业的代码,写出来的代码只有自己能看懂,只能自娱自乐。

这就是一个好老师带来的根本性的不同。

而且用钞能力学习的另一个好处,就是很多难点我压根就难不倒我,其他人在学Python过程中的“顿悟”,可能只是我的日常。

就好比,最开始学Python的时候我打算看网络上免费的资料学,我看到“面向对象”一章,发现里面有个“self”的东西。

我想破头都想不明白这个东西的原理,我甚至一下午都在想这个事,想到最后我觉得Python的作者是不是有病,这种没必要的东西为什么不删掉。

然后我就去谷歌,发现好多年前就有人和我有同样困惑,Python的作者为此还专门写了篇帖子,来解释为什么这个self不能删掉,但他的帖子我越看越迷糊。

WeChat47931c039dbc42b1cbbbf9dc18f40076.png

结果我买了最好的付费课和教材一看,发现人家直接把self的来龙去脉解释得清清楚楚,我想一下午想不明白的东西,对方几分钟就讲清楚了(避免广告嫌疑,课程和教材就不推荐了)。

那一刻……更加坚定了我的决心:以后不管学什么东西,能花钱一定要花钱,而且要学就学最好的,最贵的。

我学建站,学SEO,学社交,学广告投放等和询盘有关的技能时,也是一样,一上来就花几千上万美金,向行业内公认最好的人学,这也是为什么我两三年时间就能取得很大进步,帮很多公司做到询盘自由的原因。

如果我慢慢摸索,可能要十年后才能达到现在水平。

再来说第二点,学习顺序。

很多人学东西的顺序,通常都是what-how-why,他们都会先花很多精力,把“什么是python?(what)”搞懂,再然后,学习“如何运用python?(how)”搞懂,最后,他们才会思考“我为什么要用python,能用到哪儿去?(why)”。

之所以有这样的学习顺序,完全是十几年的应试教育给毒害了。

以前我们读书的时候顺序不就是这样吗?比如我要学三角函数,课本就会先给三角函数下个定义,告诉我什么是三角函数。

然后,再通过几个公式和案例,告诉我三角函数怎么用。

最后再用习题的方式告诉我,如果日常生活中想测量一栋大楼的高度,你就可以用三角函数……

但你不觉得这种学习顺序非常反人类吗?因为,符合人性的学习顺序,应该是why-how-what才对啊。

file.png

打个比方,疫情期间你想学做饭,你会从“什么是锅铲,什么是煤气灶”学起吗?当然不会。

而且,你想想看,为什么一个月过去,很多人都无师自通自己学会了做饭?就是因为他们学习顺序符合人之天性啊。

首先,他们有强烈的欲望,深刻明白“我为什么要自己做饭(why)”,因为不自己做饭就会饿死,吃外卖也有可能吃到病毒。

其次,他们上手就开始做,买来蔬菜鲜肉,直接就开始切菜翻炒(how),一开始可能会烧糊,但失败个几次总会成功,最后做出来什么味道先不说,但在多次自己做饭的过程中,就会自己去调控油盐酱醋的量。

最后,他们才会去了解下鱼肉、猪肉、牛肉的性质(what),了解为什么同样的火候和调料,他们入味的方式和速度会不一样。

959026.jpg

所以说,自学效率最高的顺序,应该是why-how-what才对。

你不这么认为吗?你没发现,上了社会,学校里教的学习顺序完全就是错的吗?你没发现,出了校门,它并不意味着学习的终点,而是学习的起点吗?

你仔细回味一下,这些年你上了社会后快速掌握的技能,哪个不是why-how-what的学习顺序。

你发现给客户发产品资料要学P图(why),所以一开始你先用美图秀秀先对付着,然后你开始摸索着用PS(how),然后遇到问题,你开始谷歌、百度找答案(what),慢慢地你学会了P图。

你发现和客户沟通需要一定的英语写作能力(why),所以一开始你先用谷歌翻译和客户沟通,然后你尝试自己写,写好了用语法工具改吧改吧发给客户(how),再然后你谷歌看了下grammar的规则(what),于是你写出出来的英文越来越通常。

反而那些按部就班从what到how再到why的人,学习效率就特别慢。

我看很多人学英语从背单词开始我就想笑,因为他们没有足够的欲望(why)去支撑,没有好的学习方法(how)去实践,只知道从背一个个单词开始,试图掌握所有文章的意思(what)。

你可以观察到,这些人学了十几年,还是不能写不能说,甚至很多人单词书背来背去还只知道个abondon……这完全就是学习顺序搞错了啊。

相反,那些因为渴望做好业务,一上来就结结巴巴和客户打陌拜电话,一上来就磕磕绊绊写读都读不通的邮件的人,英文水平提高速度更快。

说到这我想起我一个朋友,他因为太想看懂日本H动画片的剧情,几个月时间把日语就学会了……

再说回来,就好比我学python,我之所以能两周掌握了其他人1年多的思维和知识,就是因为我遵照了人的本性在学习。

why-how-what。

首先,也是最最重要的一点,我深刻明白我为什么要学python,我积累了足够的欲望,积累到“非学会不可”的地步我才动的手。

其实我很早就想学python了,一年前就想学,但我一直都忍着没学,最多一次也就学到字符串字典等很浅很浅的东西。

我一直都在做一件事,那就是用大脑收集一切“python能做什么?”的信息。

知乎里“用python能做什么好玩的东西?”这个帖子被我重点关注,只要有新答案我都会看一下。

WeChat161381584db35854aadeb6937fa6d2e3.png

碰到程序员,我也会和他聊聊python,问问他学会了编程之后生活发生了哪些变化。

所以在其他人眼里,“学会python”充其量是个可选项,但在我眼里,慢慢变成了刚需,变成了“非学会不可”。

所以明面上,我两周时间掌握了其他人1-2年的思维和知识,但背地里,我已经积攒了很久很久的欲望。

就好比你去观察那些减肥成功的女孩子。

她们之所以能成功,绝大部分,都是因为她们的欲望太强大了。

她们想瘦,想美,想拍照好看,想穿衣好看,想比同事漂亮,……不管想什么,这种渴望塑造了她们,最后让她们减肥成功。

WeChate600c018c088bb0d2a7670cdf4b9c424.png

所以说,在成年人的世界里,欲望是最最可宝贵的,只要你的欲望足够强,任何东西都能得到,包括知识和财富。

why之后就是how了。

自学讲究个“学练用造”,不复杂的东西,直接跳过学,进入“练用造”阶段即可,复杂的东西,就掌握“最小必要知识点”,然后迅速实践。

我把最小必要知识,它称之为“MKK(minimal key knowledge)”。

我在学python的阶段就是如此,学基础语法我只花了3天,相比其他人学基础语法花一两个月时间,三天算非常短非常短了。

而且因为我边看课程和教材边敲代码,所以实际上我花在MKK的时间,可能只有短短几个小时。

学到MKK之后,我就去lentcode上刷题,从简单到复杂,在做题过程中,更快掌握我不熟练的语法。

2020-02-28-13-57-49.png

最后,我学爬虫时,相比其他人先花一两个月理解各种库,各种方法,我则是先花一两天时间掌握MKK,然后照着视频和教材直接敲代码。

敲一遍不懂,我就多敲几遍,反正我打字速度贼快。

敲着敲着,代码的逻辑就清晰了,而且因为是跟着市面上最高水平的老师在学,所以他写出来的工业级代码,也无形之中被我学会。

等我能爬简单的页面了,我就从各个角度,用各种类库各种方法去爬,无形之中我把urllib,requests,pyquery,xpath,beautifulsoup,regex等等知识点全学会了。

就在昨天,我还自己造了个完整的爬虫程序,把豆瓣网所有资料全自动抓取下来。

所以你看,掌握MKK之后一定要“练”,一定要“用”,一定要“造”,学练用造,这四个步骤中,第一个“what”的步骤不是关键,后面三个“how”的步骤才是快速提高自己的关键。

最后就说到what了,what决定了你能不能向更深层次发展。

就好比,所有人的妈妈做饭做了几十年,但为什么“用练造”了这么长时间,做出来的饭菜比不上新东方一两年培训出来的厨师呢?

首先当然是因为,我们的妈妈没有把饭菜做得顶级好吃的足够的欲望……再其次是因为,做出来的饭菜足够一家人吃饱,我们的妈妈就停止了对饭菜深入的理解。

而新东方不一样,对每一种食材,他们都会用很长时间去讲解原理,所以新东方出来的厨子,他们能用合适的方法处理不同的肉类,羊肉有羊肉的特性,这么做好吃,猪肉有猪肉的特性,那么做才好吃。

我学python也是一样,在学MKK的阶段,我就把“怎么读懂源代码”作为了我的MKK,所以我在遇到问题时,就能谷歌找官方文档,找Stack Overflow,找GitHub解决问题,在解决问题时,我就更深入理解了python。

WeChat7b41893ae2416950df40129f3c724a47.png

就好比,很多学了一两年的人,还不知道括号里面一个星号是什么意思,两个星号是什么意思(*args, **kwargs),我第一天就懂,因为不懂这东西,我未来就看不懂源代码。

我敢说,我在过去半个月里阅读的官方源代码的量,比正常一个学python的人一年的量都要多,更别说很多两三年开发经验的python工程师,他们从来不上谷歌,从来不读源代码了。

以上这就是我快速自学的why-how-what秘诀(插个广告,我2020询盘课和社交课同样是按why-how-what的逻辑去录的)。

最后再说下,这半个月我学会python,我隐约体会到的“提升逻辑思考”能力的感受吧。

我身边有很多技术男,我发现他们普遍很理智,思考问题也全面,滴水不漏。

可能因为他们日常就和电脑打交道,和电脑打交道最困难的一点,就是你要保证输入的指令不能有错一个字符,因为错一个字符电脑就会报错,代码就跑不通,所以日积月累下来,技术男会形成一套严谨的逻辑

而这种逻辑是大多数人都缺失的,掌握这种逻辑有个好处,那就是它能帮你大幅度提高决策质量。

老华在19年年会演讲的时候,说过一个改运公式。

 少而重要的决策 x 下大注 = 阶级跃层

要下一个好决策,直觉和理性都不可或缺。

@mrhua 是我见过所有人中直觉最强的一个人,你和他相处时间长了,你会发现他和野兽有非常多共通点。

执行能力极强,目的性极强,直觉极强,嗅觉极强。

他能在没有任何数据的前提下,就把一件事猜个八九不离十,比如,他在创业过程中,几次三番踩到浪潮将起未起的timing,不到十年时间,从几百万身价战到xx亿身价(具体我也不知道),你就知道他的直觉到底有多恐怖。

但普通人是没这种天赋的,和他相处这么些年,他身上的这个特质是最让我感觉挫败的地方,因为我学不会。

但老华身上另外一样东西我学会了,那就是他的逻辑推演能力。

我有次友情帮他准备PPT,就和他在投资和商业上有过很深入交流,他反反复复和我强调,投资分为定性和定量,商业要看底层逻辑,等等等等,当时没听太懂,但事后回味起来对我产生巨大冲击。

我慢慢明白过来,做生意和投资这种看不见摸不着的东西,都有迹可循,都应该遵循逻辑去做(顺带催老华赶紧录商业课,我迫不及待想学)。

所以说,老华之所以大多数决策都正确,和他身上的女人的直觉 男人的理性的特质密不可分。

最可怕的是,我身边所有有钱人,但凡身价超过千万,身上或多或少都兼顾了男人和女人各自的优点,都有点“雌雄同体”。

扯得有点远了。

所以话说回来……像我们这样的普通人,如果想改运,想做个好决策,直觉和理性两个都是必不能少。

想提高直觉很困难,它需要阅历,需要时间,需要和大量人打交道,可能等我30多岁我就能有不错的直觉。

但理性提高却很简单,Python刚好能锻炼一个人的理性思考能力。

这东西就和健身一样。

想要长肌肉,就必须要上大重量,要去充分撕裂原来的肌肉纤维,让它重新生长出更粗的纤维,能举20KG的哑铃,就不能举5KG的。

male-bodybuilder-bench-pressing.jpg

而想要锻炼逻辑能力,方法也是相同的,Python就是你的哑铃,它能把你脑子里原有的一套逻辑撕裂,然后再原有的逻辑体系的废墟中,再重新帮你塑造起一套更严谨的逻辑体系。

学会python,我明显感觉到过去自己有些松散的逻辑体系在发生变化……当然这只是我自己的感觉,可能要把时间拉长到两年后,我才能具体告诉你我发生了什么变化。

就像蔡康永说的:

“15岁觉得游泳难,放弃游泳,到18岁遇到一个你喜欢的人约你去游泳,你只好说我不会;18岁觉得英文难,放弃英文,28岁出现一个很棒但要会英文的工作,你只好说我不会;人生前期越嫌麻烦,越懒得学,后来就越可能错过让你动心的人和事,错过新风景。”

所以学会python,提高逻辑思考能力让我发生什么变化,我只能等到“有人来约我游泳”或者“有人请我用英文工作”才能清楚。

以上就是我14天学会python的总结,我认为的成功经验有如下几点:

1. 钞能力;

2. 澎湃的欲望;

3. 最小必要知识MKK;

4. 练!用!造!

5. 通过源码理解底层。



关注作者,看更多TA的好文章 个人展示
颜sir说 谁在评论里提醒下这位作者,懒得连名片都没填写。
举报
收藏
转发
0/500
添加表情
评论
评论 (143)
最近
最早
3天2夜学会建站

颜sir说

一个教人搞询盘的米课老师,询盘自由网站长「xunpanziyou.com」

向TA提问
置顶时间 :

设置帖子类型

普通
新闻
活动
修改

圈内转发

0/104

分享至微信

复制链接

举报

请选择举报理由

留联系方式
垃圾广告
人身攻击
侵权抄袭
违法信息
举报

确认要删除自己的评论吗?

取消 确定

确认要删除自己的文章吗?

取消 确定
提问
设置提问积分
当前可用积分:
-
+
20
50
100
200
偷看

积分偷看

10积分
我的积分(可用积分)
确认偷看

问题已关注

答主回复后,系统将通知你

不再提示