掌握一门技术,到底需要多少时间?
21天?1年?3年?
不同的人可能心里有不同的信仰的答案。其中有一个叫做“一万小时定律”的理论,目前比较多人愿意相信,这个理论主要说的是:
“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成世界级大师的必要条件。”
如果按每天8小时的投入,周末不休息,10000小时就是3年半的时间,如果按每天3小时的时间投入进行计算,同样不休息,则需要9年的时间。
那如果一个人要从零基础开始比较熟练地掌握Python全栈开发,到底需要多少时间?
我们不可否认一万小时定律中所宣扬的时间投入与反复练习的重要性,但时间的投入是否是成为某个领域高手的最重要的因素呢?
其实不然,除了时间投入这一重要因素之外,其实学习方法、方向、个人对规律发现与总结的能力…等等都是非常重要的因素。
就像我们从小学开始学习英语,一直学到大学、硕士、博士,我们的英语就一定都很好吗?为什么?相信####对于这个问题,大家都会有所思考。
对于各个领域,同样适用,方向不对,方法不好,收效必然甚为,即使投入再多的时间。若方向没问题,方法较好,则必然事半功倍。
我可以很负责任地告诉你:从零基础到掌握Python全栈根本不需要10000小时。
在此将分享一些我个人的学习方法,仅供大家参考,大家多多讨论交流。以下将进入正题。
方法1:要学就成体系地学,不搞“题海战术”
记得高中的时候,有一种名为“题海战术”的学习方法,简言之就是不断刷题,反复练习。这种方法有效果吗?当然有效,但需要投入时间很多,并且也不是最有效的。实际上,就拿高中的数学为例,体系非常明确,题型也是万变不离其宗的,如果你可以把这些体系理清楚,并且把这些题型真正的深入掌握,而不是走马观花随便看看,想拿高分真不难,如果你把这些体系与经典题型都深入掌握了,题海都是浮云。
学习Python也一样,我们需要成体系地学,这样做有一个好处,就是你对Python的知识掌握不会凌乱,怎么学都不乱,如果不事先建立好Python知识体系,你会发现,越学得多,反而脑海中的知识越乱。比如,你学Python基础,无论怎么变化,肯定可以使用数据类型、基础语法、分支结构与循环结构、函数与模块、文件操作与数据库操作…等等这一套体系去理解。
值得说明的是,最开始的时候需要建立体系,但此时你脑海中的知识体系并不一定是非常完备的,比如最开始时,你的Python基础的体系里面可能没有关于迭代器与生成器的知识,没有关系,在遇到这些新的知识的时候,只需要在原有的知识体系中增加这一分支即可,就相当于你的知识体系是一本书,在遇到新知识的时候,可以增加章节,这样你的知识脉络会非常清晰。
关于Python的知识体系,大家可以自行搜索资料整理并建立,也可以参考我在阿里云社区上面的系列直播课程:https://yq.aliyun.com/promotion/543
方法2:不仅要“摹”,还要“临”
临摹是古代用于练习书法或绘画作品的方法。所谓临,就是指的是看着字的样子照着写,所谓摹就是在范本上面蒙上一层薄纸,然后照着写。
在学习Python编程的时候,现在很多人也能够去照着书或视频的代码自己敲一遍。这很好,但这远远是不够的,这其实只是完成了“摹”的环节,是的,你练了,但是你还没有将知识转化成你自己的知识。
如果,你在完成了一节知识的学习之后,再加上“临”的环节,就更好的。即这样做:你可以关上视频、关上书、关上笔记,靠记忆与印象再尝试着自己写一遍本节知识中的代码,这个环节是很重要的,你可能写出来的代码与原代码不一样,甚至出错,没关系,出错就调整好,如果功能实现是一致的即使代码写得有出入,这也是可以的。
这个过程是将知识转化为你自己的知识的过程,如果你按照这种方式进行训练,进步会很快。
就像学习任何一门知识,我们其实都提倡当你看完一节后,一定要关上书或资料,然后回想复述书中出现的核心内容与具体的知识点,这个过程如果你是刚开始训练,会感觉很苦恼,因为回想不出来,但训练久了,你就会发现,很容易回想起来,换言之,就是你很容易将知识转化为自己的知识,真正理解与吸收。
方法3:通所有不如精一物,精一物方可通所有
任何一门知识,其知识内容都是很庞大的,就拿Python爬虫来说,光相关的模块和框架就很多很多,比如urllib、requests、scrapy、Portia、newspaper…等等。
你到底该不该都深入掌握呢?
有的人喜欢大而全的东西,这没错,但对于学习来说,通所有不如精一物。
其实这些模块或框架基本上都差不多的,很多时候,A能实现的功能,B也能实现,所以我的建议是:深入精通掌握几个常用的。
只要你真正精通了一个,实际上其他的都不难掌握,而如果你一开始就希望所有都精通,那样花费的精力是非常大的,并且并不一定你就真正能精通所有。只要你真正精通了一两个,你不必精通所有,你实际上就是这个领域的高手。什么是高手?别人能解决的需求你能解决,别人不能解决的需求你也能解决,这就是高手。这些技术,都只是工具,而如果要做高手,工具要懂用,但不必要纠结于到底该不该所有工具都精通。就像孙悟空棍耍得溜,那就把棍耍精通,三尺钉耙他也能耍,只不过没那么溜而已罢了。
以上便是我的一些学习方法的总结,这些总结同样适用于其他领域的学习。希望对大家有所帮助。
大家有什么想法或者有什么学习方法,都可以聊一聊哦!走心的回复还有机会获得淘公仔、云栖帽衫、我的最新书籍《Python程序设计基础实战教程》等实物奖品哦!
另外,给大家推荐咱们云栖社区的编程语言系列讲座,由我以及付哲、陶大出讲,我负责Python专场,在课程中,我们不仅讨论方法,更多地,直接编程实战案例上手哦!
《2小时快速入门Python》课程(包括Python基础与网络爬虫部分):
最新书籍《Python程序设计基础实战教程》: