我们从开始学习程序,到工作十来年,中间可能会出现几次自我感觉技术停滞。而在这个过程中,我们也会不断地学习很多新技能,但而后其中的不少也会被淘汰在时间的旅程中。
一方面,我们在不断地打磨、提升技能,去解决工作中的问题,但久而久之,就会发现技能的提升速度越来越慢,竟渐至停滞,感觉不到进步了。
另一方面,程序员所处的这个行业,技术的变化很快,潮流此起彼伏,难免产生技能焦虑。
有时,我们会不免幻想要是学会什么屠龙之技,从此高枕无忧,该多好!但这终究只是幻想,哪里又有什么屠龙之技呢?那面对技术停滞,技能过时,又该如何保持更新,与时俱进?
技术停滞
技术停滞是如何发生的?
程序员,最重要的就是编程技能。每天的工作可能就是编程写代码,在早期还不够熟练时,你还能感觉到进步,这种进步就是从不熟练到熟练。进入熟练期以后,你可能感觉这项技能就提升得很慢,甚至一度停滞了。
单纯的编程实战其实并不能持续地提高一个人的编程技能,想想体育运动员,又有哪一个每天的日程就只是参加比赛。运动员平时都是在进行刻意地训练,而关于习得甚至精通一门技能,最著名的理论应该是 “刻意练习”,如果非要在这份练习上加上一个期限,那就是:一万小时。
关于 “刻意练习”,不少书或文章中都讲了很多案例来说明它的有效性,但总结起来关键就下面三点:
只在 “学习区” 练习,练习时注意力必须高度集中。
把训练的内容分成有针对性的小块,对每一个小块进行重复练习。
在整个练习过程中,随时能获得有效的反馈。
刻意练习是为习得真正的技能所设计的,它和获取知识不同,知识就是那些你知道即为知之、不知即无知的东西,这可以通过读书获得。但技能是那些你以为你知道,但如果你没做过,就永远不会真的知道的事情。