编程,从入门到精通究竟需要多久?

编程,从入门到精通究竟需要多久?_第1张图片

参加全栈营已有一个多月,过年在家的两个星期里,状态有所松懈,又开始要掉队了。

在过去的一个月学习过程中,按照Xdite老师的指导,跟着教程反复练习,再加上Job-Listing的魔改尝试,居然做出了个有点模样的网站,以此慢慢克服了对代码的恐惧,甚至开始热爱上了编程这样的一件事情。

2017年2月6号的课上,Xdite 又给我们打了一针鸡血。

学习编程,从入门到精通究竟需要多久?

作家格拉德威尔在《异类》一书中指出:人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成超凡的必要条件。

我们都听说过这个一万小时定律, 要成为某个领域的专家,需要10000小时,按比例计算就是:如果每天工作八个小时,一周工作五天,那么成为一个领域的专家至少需要五年。

要这么久,五年太长,一万小时是针对专家的标准,那如果我不想成为专家,只想成为一名合格的普通程序猿,能大致实现我想做的网站项目,或者说能达到足够应付编程岗位的工作,那需要多长的时间呢?

这里不得不再提“德雷斯模型”。

“德雷福斯模型”分为五个成长阶段:

编程,从入门到精通究竟需要多久?_第2张图片

新手(Novice)

  • 经验很少,或只是没有经验。
  • 打算找到一本绝世秘籍,觉得看完就能成为高手。
  • 事实上他们也只能靠SOP。
  • 输入 X => 得到 Y。

SOP即标准作业程序(Standard Operating Procedures),即通过别人写好的标准教程来实现:输入X 达到输出Y 的效果。新手就是这样通过实践别人的教程来达到目的,但缺乏经验与思考,积累不够。

高级新手(Advanced Beginner )

  • 了解基本规则
  • 会阐释用现有规则去解决问题
  • 变成想快速找到能够解决问题的答案
  • 对宇宙观(原理)不感兴趣
  • 教他们基础,还是会被忽略掉
  • 至少能够独立解决许多基本问题

高级新手尽管忽略了很多背后基础的原理,但这个层次已经具有了一定的经验,解决问题的能力大幅提升,高级新手这样的程度也可以独立地debug一些小问题。

胜任者(Competent)

  • 经验够多到可以把规则融合起来变成模型
  • 可以独立解决自己遇到的问题
  • 或者是之前没遇到的问题
  • 去找答案
  • 去找专家

胜任者可以总结出自己经验、方法,以独立解决没遇到过的问题。胜任者不仅能解决问题,还能发现新的问题,他们遇到问题的时候能够将问题层层肢解,并相应解决。

精通者(Proficient)

  • 可以自己提炼出一般的指导架构与方法
  • 可以判断大部分情况的可能性
  • 并且针对各种可能性设计解法
  • 整体视角思考
  • 熟练运用pattern

精通者可以自己总结套路,熟练运用套路。精通者对自己所处的技术领域具有全局思维,能够充分理解情景,把握情景的细节,自如地运用所掌握的技能,能够通过有效的反馈与思考调整自己并不断进步。

专家(Expert)

  • 可以用直觉去面对未知问题
  • 推进该学科前沿
  • 跨领域融合创造新的火花

专家有时候可以用直觉揣测你的疑问,知你所想,你连问题都问不清楚的时候,专家就可以“你是不是想问....”, 如此帮你提问帮你解答。
专家将所有的情境和方法都内化,融汇贯通,专家解决问题更多是根据他们的直觉。
专家可以多维度跨界整合创新,比如既会编程,又会项目管理,那就机会成为很厉害的项目经理。

很令人意外的是,几乎在各领域,这五种类型的人中,最多的不是新手,不是胜任者,而是高级新手。

  • 超过50%的人只有高级新手水平
  • 几乎绝大多数工作,不会超过胜任者阶段
  • 精通者的比例大概是该领域的10%
  • 专家人数大概是该领域的1%以下

如果是需要学到求职的程度,那需要达到什么水平呢,事实上,绝大多数工作只需要高级新手的水平。在各大互联网公司,BAT可能是需要很多的精通者和专家,但是绝大多数普通的互联网公司只需要胜任者以下的程序员。

通常一个程序员:

  • 第一年新手(初级工程师)
  • 第2-3年 高级新手(工程师)
  • 第3-5年 胜任者、精通者(资深工程师、架构师)
  • 专家

一个领域内,绝大多数的从业者都只有高级新手的水平。在编程领域里,从入门到精通需要多久我们不知道,但如果只是想快速成为高级新手,通过练习专家设计的高频小套路,你不需要4000小时,或许只需要400小时以下。

学习Ruby on Rails 刚入门一个月,我尚且还在新手的阶段,但也看到了成为高级新手的希望,现在还是老老实实积累实践,总结经验,反复练习高手所教授的套路吧。

学习编程是一样非常耗费时间精力的事情,但同时也十分有趣,开始了就停不下来,虽然前期的积累很缓慢,但我也认同它跟英语、写作一样,是一件值得长期学习的事情,是一件未来价值很大的事情,是一件能够产生复利效应的事情,是一件很容易跨界多维度打造竞争力的事情。

保持学习的热情不容易,在这个阶段同时分心学太多其他的课程可能精力不够,此时要保持绝对的专注放弃一些别的同时兼顾的事情,不然再次入坑,再次由入门到放弃。

打得好一针鸡血!
共勉!

你可能感兴趣的:(编程,从入门到精通究竟需要多久?)