92

学习一项技能要花多少时间? - Rei

 6 years ago
source link: http://chloerei.com/2013/12/12/how-long-does-it-take-to-learn-a-skill/?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

学习一项技能要花多少时间?

Rei 写于 12 Dec 2013

前不久,一个技术 party 上有人问我:“我学习 Rails 已经2个月了,但还是对整个开发流程缺乏清晰的了解,我应该怎么学呢?”这不是个别现象,在 ruby-china.org 上也经常有人发帖,说自己学习了 1个月、2个月、半年了,还是不太清楚 Rails 的很多细节,不知道应该怎么学。

看到这样的提问,我第一反应是他/她们对自己的要求是不是太高了?

我学得很慢

我从没有什么 Web 基础开始直接学 Rails 框架,到找到一份 Ruby 程序员的工作用了2年半。此后在正职工作上编程1年半,自由职业编程9个月。现在我考虑开发什么的时间已经比要怎么开发多了,这个过程用了4年半。

如果平均每天有效利用时间是3小时,至今已经接近了5000小时的量,按照10000小时到专家的理论,我还有另一个4年半要学习,我感觉这个估算还是比较准确的。

我当然不是只学习一个工具,同时也学习前端、UI 设计、运维……但不会前3年学开发,后3年学设计分得这么清楚。有时我又会看看跟已有知识完全重合的工具,比如 Python 和 Nodejs,以免错过什么。总的来说,到现在的程度用了4年半,觉得自己学得慢的朋友,可以以此作为参照。

大学毕业以后最让我失望的一件事,就是发现自己不是天才。我身上没有特殊才能,跟大部分人一样,这多么令我沮丧!

世界上确实有些天才,像是 26 岁获得 Best Hacker 称号然后去开赛车,或是 21 岁环游世界同时成为 O’Reilly 的作者。而我只能坐在小房间里面做一些不知道有没有人需要的软件,看来“奇迹”是不会发生在我身上的了。

我经常犯低级错误,例如花一个下午发现一个拼写错误引起的 bug,或者花一两天时间搞明白一个问题,兴奋过后又沮丧,为什么花了这么多时间在这些浅显的问题上。

那么,既然我不是天才,就不要用天才标准要求自己了。花多少时间都好,解决一个问题就是一个收获。不再只看着那些天才,而是把昨天的自己作为竞争对手,今天比昨天有进步,那么这一天就是有意义的。笨人有笨办法,一步一个脚印往上爬。

能解决问题不是因为天资聪颖,而是因为已经花时间实践过了。如果有什么问题还解决不了,那是因为实践得还不够。

学习效率指数上升

万事开头难,对于技能学习也适用。起步的时候,不懂的地方太多,每解决一个问题都会引出很多新问题。随着知识面的增大,接触到的新知识也会随之增多,你会感觉自己永远学不完。

但随着知识积累的增多,吸收知识的速度也会加快,你会逐渐成为“花一个下午看文档了解基本用法”俱乐部的一员。这不需要什么魔法,你只要遇到一个问题,解决一个问题,效率自然会提升。我现在每半年学到的新知识的价值都等于过去学到的知识价值总和。

所以在入门阶段感到焦虑时,请从容的接受它,并且坚持下去,每个人都有这个阶段。如果你之前已经有1、2年的编程经验还是感到焦虑,那是因为之前的视野太小,现在就是踏入新天地的好时机,不要原地踏步。

当你拿出几个月前的代码,发现自己写得超烂的时候,那么恭喜你,你进步了!

课时观念在真实世界不适用,在学校里之所以可以一个学期学习好几门课,是因为只需要学到应付考试的程度,这种知识是不可靠的。真正掌握一项技能,需要长时间的实践,或者说,需要终生学习。

没有人告诉你要走什么路线,什么时候前进,什么时候停止,一切都取决于你自己,志向决定高度。但也正是这么多的未知和可能性,产生了这么多的乐趣。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK