做家格拉德威尔在《异类》一书中指出:前端
人们眼中的天才之因此卓越非凡,并不是天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成超凡的必要条件。程序员
他将此称为「一万小时定律」。面试
要成为某个领域的专家,须要10000小时,按比例计算就是:若是天天工做八个小时,一周工做五天,那么成为一个领域的专家至少须要五年。这就是一万小时定律。编程
在中国,IT 行业广泛加班严重,先不说行业特征与企业文化。
就我最近面试的经验来看,不少程序员的开发效率实在是低到不忍直视。后端
因此「效率」是一个致使加班的重要因素。
若是你效率高,但迫于企业有加班的文化,你彻底能够用加班的时间来学习一些新的技术,进一步提升本身的效率。编程语言
效率低会引发下图的怪圈:
效率低 -> 没法按时完成工做 -> 加班 -> 没有时间练习 -> 效率愈来愈低。编辑器
要打破怪圈,有效的办法就是「刻意练习」,今后进入一个正向循环:
效率高 -> 提早完成工做 -> 练习提高 -> 效率愈来愈高。学习
演员在台上的表演算是练习吗?球员在比赛场上算练习吗?不算。
那么对程序员而言,工做上作项目算刻意练习吗?大数据
我之前以「能边学边作」为荣,API、语法之类的不必看,反正咱们有 Google 和 Stack Overflow 嘛。
直到我参加了 Hackthon 以后改变了这个观点。在极短的时间内,要把一个创新的想法,用技术手段实现出来。
这个时候若是你还在查某个接口应该怎么用,某个语法应该怎么写,能竞争得过别人吗?编码
现实工做中未尝不是如此?商业竞争如此激烈,假设你要作个推荐系统,你是找作过的来作,仍是边学边作?
因此我认为练习应当发生在工做以外,一旦上了战场,不是你死就是我活。
并非全部的练习都是有效的,没找准地方,只是在浪费时间。
好比,我用吉他弹一首曲子时,某个小节总是弹很差,我就会单独把这一个小节拿出来重复练习,而不是把整首曲子一遍一遍地重复练。
专家研究代表,只有在「学习区」练习才最有成效。
咱们应当走出温馨区,多在学习区练习,将其变成温馨区;
接触恐慌区,将其慢慢变成学习区。
这样才能避免原地踏步,持续提升。
首先要走出本身的温馨区,接触一些不熟悉的技术领域。好比后端很熟悉了,去写写前端试试。Web 很熟悉了,去写移动端试试。
业务开发很熟悉了,去研究一下搜索,推荐系统,大数据试试。OO 很熟悉了,玩 FP 试试。
老守着本身会的那点儿东西,总有一天会坐吃山空。
有如下方式:
录视频
Code Review
结对编程
参加编程道场
没有对比,很难发现本身的不足,因此把本身的代码和编码过程展现出来,必定会发现许多能够改进的地方。
只有菜鸟才会以为本身特别牛,由于物以类聚,他的圈子里全是菜鸟。
你越牛,接触的圈子也越牛,你越会以为本身眇小。
程序员要练习东西不少,一些基本功以下:
打字
编程语言
编程范式
编辑器
快捷键
TDD
Clean Code
重构
...
我第一次组织 Code Retreat 的时候,到 QQ 群里宣传活动,结果获得的是嘲讽:
周末还在写代码,确定是屌丝。
不少人没有时间练习,却有大把的时间打 LOL,大把时间在群里吹水,大把时间讨论楼市股市。
固然,人都有选择本身生活方式的权利,并无谁对谁错。
说这么多,只是但愿真正热爱编程的同窗们知道,只有经过刻意练习,才有可能成为顶尖的程序员!
在 CodingStyle.cn 这个社区里,咱们会组织 Code Review,Code Retreat,Coding Dojo。
但愿咱们一块儿成长,成为顶尖的程序员!
「软件匠艺社区」旨在传播匠艺精神,经过分享好的「工做方式」和「习惯」以帮助程序员更加快乐高效地编程。