分享一篇自己的博客:)
在互联网时代,我们有学不完的新知识,特别是处于软件行业,每天出现新的语言、框架、领域。比如 Vue 、 Spark 、微服务、 React 、机器学习、 Sass/Pass 都是最近才火起来的。我时常怀疑一个程序的一生到底能够学习多少编程的知识,而学习多少才算是足够,这个领域有学不完的知识,而且在不断的更新。
直到前一段时间我在知乎上看到一个答案: The first 20 hours-How to learn Anything 以及相应的 TED 演讲。学习一个完全陌生的领域到足够使用的程度仅仅需要 20 个小时的练习。
重点在于足够使用, 20 个小时的学习不可能让学习者成为这方面的专家,但是足够掌握其中最核心的概念,熟练最常用的操作。如果是学习编程语言,足以拿一门语言的最核心和常用的特性来进行开发。我们需要的仅仅是 20 个小时。另外一个同样重要的点在于练习,单纯的接收信息和记忆不足以使你真正的理解和掌握它,必须靠足够长的练习来锻炼自己的大脑或者身体来掌握这些新技巧。
链接: http://mrlongx.com/index.php/2016/10/19/how-to-learn-new-thing-in-20-hours/
1
KenGe 2016-11-07 11:11:37 +08:00
1W 小时理论听过没?虽然也不完全正确
20 小时只能了解 |
2
chanlion OP @KenGe 这里的 20 小时是练习时间,并不包括阅读、看视频的时间,达到的程度是足够使用来做事。 1W 小时理论达到的是专家级别的了,跟这个有区别 :)
|
3
gainsurier 2016-11-07 13:59:36 +08:00 via Android
还是不要浮躁为好。
|
4
chanlion OP @gainsurier 文章的重点不在于该不该花 20 小时学习新的东西,而是可不可以的问题?
|
5
ljcarsenal 2016-11-07 15:12:33 +08:00 via Android
20 个小时只是 demo 水平 各个工程领域都有或多或少的坑 没有一定的经验 根本搞不定
|
6
chanlion OP @ljcarsenal 这个问题对于每个人的情况都有所不同, 20 小时不能认为是固定的时间,而是少量的时间,相比需要 21 天才能学会 C++,或许,通过 2 天的练习就能撸 C++
|
7
menc 2016-11-07 16:11:15 +08:00
@chanlion 如果一切顺风顺水的话,或许可以短时间入门。
可是问题在于,计算机能力的关键在于解决问题的能力,你每遇到过让你心力交瘁的问题,一个坑废掉几天时间,这方面的能力才会提升。 这就是书本和实践的区别 |
8
chanlion OP @menc 仔细想一下在这么长使用一门编程语言的时间内,遇到心力憔悴的问题发生的概率是比较小的,也许一个星期才会遇到一个。大部分的时间是在运用最常用的那部分功能,而我所希望的 20 小时能够解决的问题,就是掌握这些最常用的部分。如果真的遇到心力憔悴的问题,可以说这个问题已经超出了 20 小时学习的范围。比如:不能把 IDE 或者编译环境的问题归咎于编程语言的坑,不能算法的问题归咎于编程语言的坑。
|
10
menc 2016-11-07 17:13:04 +08:00
@chanlion 坑多坑少和你处于什么样的阶段也密切相关。在业务快速成长阶段,随着流量或者需求的不断增多和精细,遇到的问题简直是井喷式的。
|
11
zhangfanfan 2016-11-07 17:29:11 +08:00
这个看个体差异。
如果有基础的理科生学 PHP ,给 20 个小时,应该可以了。 如果无基础的文科生学 PHP ,甚至连“变量”是什么都不知道的,给 200 个小时都未必能入门。 如果有人带,随时答疑, 20 个小时的确是可以了。当然这 20 个小时并不一定就是连续的,可以分拆 20 个。大学里面一节课也才 45 分钟, 20 节课可以排一个学期了。 |
12
CruelMoon 2016-11-07 18:01:17 +08:00
听起来和“快速阅读”之类的技巧有些像,不是很实用的样子..
|
13
wc996 2016-11-07 18:40:30 +08:00
有点像学生时代,最后百分之二十的时间掌握百分之八十的考试内容,目标是期末不挂。但是学的快,忘的也快。
|
14
chanlion OP @menc @zhangfanfan 与编程语言不想关的问题已经属于独立的问题,它可能是高并发、安全、快速算法、协议底层,但是这个跟语言独立,如果把计算机所有问题都包括进来这个命题就变成了「用 20 小时学习整个编程领域」了。我所想表达的不是快速学习所有东西,核心在于对于完全陌生的领域,只要花比想象的少的时间就能够达到整体了解并运用的程度。当然,我承认很多领域是很庞大,系统的了解是要花费非常多的时间的。至少我有一个信心就是学习新的狭窄的领域只需要花费很少的时间的。
举个简单的例子,游泳,如果想像菲尔普斯游的那样好,当然 20 个小时是不够的,但是想要从完全不会到能够游泳我想 20 个小时肯定够了。相应的,编程,如果想像 C 语言之父那样精通(他也不是所有领域都精通,任何人只能在狭小领域精通), 20 小时肯定也是不够的,但是想从完全不会到能够用 C 来解决问题肯定是够的(具体能够解决什么问题,受限于学习者对问题领域的知识丰富程度,但使用 C 语言的最常用的特性肯定是够的)。 所以我真正想表达并不是快速学习,而是我们能够用少量的时间就掌握任何一个全新的领域的最常用最核心的技能。 |
15
Marfal 2016-11-07 19:36:07 +08:00
LZ 说的没问题啊,这本来是 20 小时就能解决的事情,不过学到的东西也比较狭隘就是了。
说一万小时的和 LZ 讨论的不是一个层次的东西。 |
17
inisun 2016-11-08 02:28:56 +08:00 via iPhone
一屋不扫何以扫天下,成大事者不拘小节,这两句话之间的争辩而已。要先有坑,才有坑填的机会,也就是上手了,才有可能接触这些坑,才有后面的 1 万小时…
|