转载自: 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. 超适合3D建模小白的技巧!学习一项技能,方向方法对了事半功倍

    今天来为大家分享适合建模初学者学习的几个小技巧.想要学习一项技能,方向和方法对了才可以事半功倍. 制定合理地目标 想要快速学习建模,一定要给自己制定一个合理地目标,不然你的状况可能就是"今天 ...

  2. 如何快速学习一项技能-十步学习法

    这是我从<软技能>这本书学来的,学的时候做的笔记,现在发出来,供大家学习,当然<软技能>这本书里还有很多其他值得学习的知识,比如理财.健身.工作.恋爱.作为博学多才的我,我都对 ...

  3. 有关系统学习的一些思考和总结,如何系统学习一项新的技能

    前言 最近的一两年都在业余时间逼自己学习,对某个领域,项目进行高强度,系统地学习,并输出一定数量的文章.使用这个思路我写出了 <ThingsBoard系列教程> 与 <Node-RE ...

  4. 2021年,Java开发者值得学习的13项技能

    本文分享自百度开发者中心2021年,Java开发者值得学习的13项技能 作者 | Olivia Cuthbert 译者 | 王强 策划 | 刘燕 如果你想在这个竞争激烈的世界里,成为一名熟练开发 Ja ...

  5. 学习一项新技能的公式

    **学习一项新技能的公式** 一项新技能=(得核心技巧)+(入门)+(固定.持续.大量的训练)一项新技能=(得核心技巧) +(入门)+(固定.持续.大量的训练) 一项新技能=(得核心技巧)+(入门)+ ...

  6. 优秀工程师至关重要的一项技能,你解锁了吗?

    来源丨阿里技术官方公众号(ID:ali_tech) 导读:很多程序员在工作一段时间后会遇到迷茫期,虽有技术傍身,也难免会产生焦虑,反复思考怎样才能快速成长.关于如何提高自己的思考力,运用思考的力量推动 ...

  7. 摘成功道路上容易被忽视的5项技能

    本文摘自<电子工程师专辑>,来源:http://forum.eet-cn.com/FORUM_POST_10008_1200257568_0.HTM. 人人都渴望成功,在通往成功的道路上, ...

  8. 高效程序员的 7 项技能

    软件工程师把大量时间花在练习 LeetCode 问题获得面试技巧和完善简历上.一旦他们最终在一家初创公司.谷歌.亚马逊或其他公司找到工作,他们可能就会发现,他们获得这份工作所需的技能与他们日常工作所需 ...

  9. python建站越学越累、感觉要学的东西太多_工作以后感觉需要学习的东西太多,但是时间和精力有限,如何才能更好的安排学习时间?...

    刚好在微信上回答了一个类似的问题: 这个问题起源于一次一对一的聊天,后来发现很多人都会遇到这个问题: 可以花些时间把自己要学习的东西列个清单,按硬技能与软技能进行分类: 硬技能:通常具有可见的,可计量 ...

最新文章

  1. 如何把手变成手控_在这个模拟手的VR游戏里,你能体验到很多手控福利
  2. jsp实现日历(二)
  3. spring aop实现过程之二Spring AOP中拦截器链
  4. 当我们说“分类”的时候,我们到底在说什么?
  5. 效率提升工具Listary
  6. 虚拟机安装Linux(vmware + ubuntu)
  7. 公司里从员工到经理,不同层级应该关注的事情
  8. 这个只需一步就可做富集分析的网站还未发表就被CNS等引用超过350次
  9. OSChina 周日乱弹 ——局长才是真神
  10. 简单树匹配算法STM-理论篇
  11. 你知道谷歌有个社区叫 GBG 么?
  12. docker login Error response from daemon: Get http://ip:port/v2/: net/http: request canceled
  13. 泛微平台ecology8.0二进制文件流下载对接接口
  14. Linux如何在屏幕上显示ASCII/中文字符
  15. 用python绘制小猪佩奇
  16. Linux内核版本主要有,Linux内核版本号主要有几部分组成? 各代表什么含义?
  17. 网页版全景图服务器搭建,云服务器全景图
  18. HBUOJ--走台阶
  19. SaaS是什么?企业采购SaaS有什么好处?
  20. Java学习笔记(二十三)日志体系(logback)

热门文章

  1. ubuntu18里用python编写modbus-RTS
  2. Ubuntu Linux操作系统实战教程(微课视频版)
  3. 计算机组装与维修大学专业,计算机组装与维修 全套教案.doc
  4. 干货丨乔俊飞:面向污水处理过程控制的多目标智能优化方法研究
  5. 声音艺术(Sound Art)
  6. ArduPilot 编译选项
  7. 深度学习框架的来龙去脉——史上最全面最新的深度学习框架对比分析
  8. 基于区块链的医疗记录存储系统研究与开发
  9. home staging_【卖房流程指南3】HomeStaging——旧屋新装,投资回报大提升
  10. 基于java springboot音乐播放器小程序源码(毕设)