学习一项技能要花多少时间?
转载自: 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年的编程经验还是感到焦虑,那是因为之前的视野太小,现在就是踏入新天地的好时机,不要原地踏步。
当你拿出几个月前的代码,发现自己写得超烂的时候,那么恭喜你,你进步了!
最后
课时观念在真实世界不适用,在学校里之所以可以一个学期学习好几门课,是因为只需要学到应付考试的程度,这种知识是不可靠的。真正掌握一项技能,需要长时间的实践,或者说,需要终生学习。
没有人告诉你要走什么路线,什么时候前进,什么时候停止,一切都取决于你自己,志向决定高度。但也正是这么多的未知和可能性,产生了这么多的乐趣。
学习一项技能要花多少时间?相关推荐
- 超适合3D建模小白的技巧!学习一项技能,方向方法对了事半功倍
今天来为大家分享适合建模初学者学习的几个小技巧.想要学习一项技能,方向和方法对了才可以事半功倍. 制定合理地目标 想要快速学习建模,一定要给自己制定一个合理地目标,不然你的状况可能就是"今天 ...
- 如何快速学习一项技能-十步学习法
这是我从<软技能>这本书学来的,学的时候做的笔记,现在发出来,供大家学习,当然<软技能>这本书里还有很多其他值得学习的知识,比如理财.健身.工作.恋爱.作为博学多才的我,我都对 ...
- 有关系统学习的一些思考和总结,如何系统学习一项新的技能
前言 最近的一两年都在业余时间逼自己学习,对某个领域,项目进行高强度,系统地学习,并输出一定数量的文章.使用这个思路我写出了 <ThingsBoard系列教程> 与 <Node-RE ...
- 2021年,Java开发者值得学习的13项技能
本文分享自百度开发者中心2021年,Java开发者值得学习的13项技能 作者 | Olivia Cuthbert 译者 | 王强 策划 | 刘燕 如果你想在这个竞争激烈的世界里,成为一名熟练开发 Ja ...
- 学习一项新技能的公式
**学习一项新技能的公式** 一项新技能=(得核心技巧)+(入门)+(固定.持续.大量的训练)一项新技能=(得核心技巧) +(入门)+(固定.持续.大量的训练) 一项新技能=(得核心技巧)+(入门)+ ...
- 优秀工程师至关重要的一项技能,你解锁了吗?
来源丨阿里技术官方公众号(ID:ali_tech) 导读:很多程序员在工作一段时间后会遇到迷茫期,虽有技术傍身,也难免会产生焦虑,反复思考怎样才能快速成长.关于如何提高自己的思考力,运用思考的力量推动 ...
- 摘成功道路上容易被忽视的5项技能
本文摘自<电子工程师专辑>,来源:http://forum.eet-cn.com/FORUM_POST_10008_1200257568_0.HTM. 人人都渴望成功,在通往成功的道路上, ...
- 高效程序员的 7 项技能
软件工程师把大量时间花在练习 LeetCode 问题获得面试技巧和完善简历上.一旦他们最终在一家初创公司.谷歌.亚马逊或其他公司找到工作,他们可能就会发现,他们获得这份工作所需的技能与他们日常工作所需 ...
- python建站越学越累、感觉要学的东西太多_工作以后感觉需要学习的东西太多,但是时间和精力有限,如何才能更好的安排学习时间?...
刚好在微信上回答了一个类似的问题: 这个问题起源于一次一对一的聊天,后来发现很多人都会遇到这个问题: 可以花些时间把自己要学习的东西列个清单,按硬技能与软技能进行分类: 硬技能:通常具有可见的,可计量 ...
最新文章
- 如何把手变成手控_在这个模拟手的VR游戏里,你能体验到很多手控福利
- jsp实现日历(二)
- spring aop实现过程之二Spring AOP中拦截器链
- 当我们说“分类”的时候,我们到底在说什么?
- 效率提升工具Listary
- 虚拟机安装Linux(vmware + ubuntu)
- 公司里从员工到经理,不同层级应该关注的事情
- 这个只需一步就可做富集分析的网站还未发表就被CNS等引用超过350次
- OSChina 周日乱弹 ——局长才是真神
- 简单树匹配算法STM-理论篇
- 你知道谷歌有个社区叫 GBG 么?
- docker login Error response from daemon: Get http://ip:port/v2/: net/http: request canceled
- 泛微平台ecology8.0二进制文件流下载对接接口
- Linux如何在屏幕上显示ASCII/中文字符
- 用python绘制小猪佩奇
- Linux内核版本主要有,Linux内核版本号主要有几部分组成? 各代表什么含义?
- 网页版全景图服务器搭建,云服务器全景图
- HBUOJ--走台阶
- SaaS是什么?企业采购SaaS有什么好处?
- Java学习笔记(二十三)日志体系(logback)
热门文章
- ubuntu18里用python编写modbus-RTS
- Ubuntu Linux操作系统实战教程(微课视频版)
- 计算机组装与维修大学专业,计算机组装与维修 全套教案.doc
- 干货丨乔俊飞:面向污水处理过程控制的多目标智能优化方法研究
- 声音艺术(Sound Art)
- ArduPilot 编译选项
- 深度学习框架的来龙去脉——史上最全面最新的深度学习框架对比分析
- 基于区块链的医疗记录存储系统研究与开发
- home staging_【卖房流程指南3】HomeStaging——旧屋新装,投资回报大提升
- 基于java springboot音乐播放器小程序源码(毕设)