<-- home

How To Learn Technical Things(译)

这是一片翻译文章,在这里看到。

文章中讲到了很多我很信以为真的东西,为了更好的吸收,我决定翻译一下。


题目:技术应该怎么学?

作者:amison Dance

我见过很多开发者,尤其是初级开发者。对于学习新的东西很是头疼。他们经常拿自己跟老手相比,觉得那些老手是一蹴而就的。我以前也是这样。我知道这让人感觉到很难受。 对于同一个概念来讲,别人肯定也走过你现在所走的路,可能花费的时间比你还要多。

事实上,学习对于每个人来讲都是一样的。你在原地打转,有些东西超出了你的理解,你犯下错误,做了一些很傻逼的事情,甚至有些东西实在理解不了。你将这样的学习过程应用于你所感兴趣的事情,你就会学到东西。

似乎有些开发者更擅长学习新的东西,相对于另一些开发者来讲。然而这跟经验的相关性很低,或者说不是唯一的影响因素,那么那些擅长学习的人有什么样的技巧呢?以下是我根据自己的经验,和观察得到的一些想法。

努力犯错 善于学习的人,总是在犯错误。犯错能探索知识的边界,也能验证你假设的正确性。每个人在学习的时候都会犯错,但是那些最擅长学习的人会尽早地犯下这些错误。他们不害怕把事情搞砸,甚至有些要故意这样做的意思。通过犯错误,他们弄明白如何修复这些错误,通过犯错误,他们学习到做事情正确的方式。

关于这一点我最喜欢举的一个例子就是我的好朋友朱莉娅,他在钻研一些我认为很难的东西方面,让我觉得很惊讶。比如,linux内核,以及java的垃圾回收,还有很多我认为很酷的事情。他的博客里面介绍了很多这样的故事,他探索新的系统概念,也包括那些他尝试失败的东西,这些失败也都被他记了下来,他总是在文章的末尾列出来学到了什么,通过阅读他的文章,我学到了很多。

勇于提问 问问题,往往会暴露自己认知的不足。当你尝试你不了解的东西时,你可能会感觉到害怕,感觉暴露了你很多的弱点。虽然有些恐惧,但是问问题,确实是一种基础知识理解有误得到纠正的绝佳方式,同时也能让你意识到有些东西你不知道自己不知道!

拿我的朋友艾米来说吧!他把问题列在一张纸上,每周都会拉着人一起讨论这些问题,在我看来,这才叫会学习。

快速反馈 善于学习的人追求极快的反馈。如果你在学习一个新技术或使用一个新的库,那追求极致的反馈说的就是单元测试,如果你在学习一门新的语言,那么极致反馈也就意味着一个交互式编程环境,如果你在学习一个前端框架,那极致反馈就意味着快速创建一个demo,做这一切都是为了回答一个问题,这样做是对的吗?从而形成一种反馈循环。

我的朋友大林,在这方面做得特别好。他想学习graphql.我的习惯是花几个小时先阅读一下文档和理解一下概念。大连不是这样做的,他把精力集中于安装说明,以及马上创建了一个服务器和客户端上,因为他知道,他越是快速的让代码跑起来,他越是能简单的得到对于这个东西的理解的反馈,大理也是一个好的学习者。

走出舒适区 好的学习者知识是会升级的。他们接手他们并不知道最完美的方式来做某件事情,但是他们仍然,用已经知道的方式完成了这件事情。离开他们已经是专家的那些舒适区,而成为新手,会让人觉得不舒服,但是好的学习者会拥抱不舒适和主动走出那些舒适区。

对比你已经知道的东西 好的学习者能采取的捷径是去对比那些他已经学会了的东西。这是能获取帮助的一个经验,如果你学过许多不同的编程语言,你会发现,他们当中有很多相同的概念。 不过需要注意的是,这种捷径可能会误导你,因为你以前的经验可能是糟糕的,所以现在就可能错过一些好的东西,如果你觉得一个东西让你想起来以前学过的东西,那么你可能会直接跳过,只有等到,这两者的本质区别,难住你的时候,你才会重新回过头,仔细来看。

学无止境 好的学习者总是在不断的学习,从接触到一个知识到去理解到最后,真正的去理解了它,可能要尝试很多次。挣扎着学习,并不意味着你就一定会学会,但是一定意味着你在成长。react 我学了好几次,nodejs,在我学了几个月都没有什么感觉,Clojure,在前两次学的时候,感觉到莫名其妙,唉,总之,学习,不是一蹴而就的事情.