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

9 篇文章 0 订阅

转载自: Rei(Ruby-China 创始人)   http://chloerei.com/2013/12/12/how-long-does-it-take-to-learn-a-skill/

前不久,一个技术 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年的编程经验还是感到焦虑,那是因为之前的视野太小,现在就是踏入新天地的好时机,不要原地踏步。

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


最后

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

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


学习一项新技术可以让个人能力得到提升和拓展,以下是我对学习新技术的建议: 1. 设定明确的目标:在开始学习之前,明确自己的学习目标和动机。确定想要达到的技术水平和应用场景,这样能够更有针对性地选择学习资源和路径。 2. 制定学习计划:制定一个合理的学习计划,包括学习内容、时间安排和进度控制。将学习任务分解成小步骤,逐步完成,避免因过大的学习任务而压力山大。 3. 寻找优质资源:选择权威、系统性强的学习资源,如官方文档、教程、书籍、在线课程等。可以从在线教育平台、技术社区、博客等途径寻找合适的学习资源。 4. 实践和项目应用:理论学习只是第一步,更重要的是进行实践和项目应用。通过编写代码、解决问题、参与开源项目等方式,将所学知识应用到实际项目中,加深理解和掌握。 5. 找到合适的学习方法:根据个人的学习风格和喜好,选择适合自己的学习方法。可以是自学、结对编程、参加培训班等,找到最适合自己的方式。 6. 不断练习和总结:持续练习是巩固所学知识的关键,通过不断实践和总结经验,提高自己的技术能力。可以通过解决实际问题、参与开源项目、写博客等方式来进行练习和总结。 7. 与他人交流和分享:与他人交流和分享学习经验是提高学习效果的重要途径。可以参加技术社区的活动、加入开发者群体、参与讨论等,与他人互相学习和成长。 8. 持续学习和跟进新动态:技术发展日新月异,要保持学习的持续性和跟进新动态。关注行业动态、参加技术会议、阅读技术资讯等,保持对新技术的敏感度和学习动力。 最重要的是保持积极的学习态度和持续的学习动力,坚持不懈地学习和实践,才能在学习一项新技术上取得良好的成果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值