原创: 阿拉神农 神农和朋友们的杂文集
本篇接上一篇《关于学习的三个终极问题》(以后简称它为“三个问题”)
缘起
如果说“三个问题”还有什么大遗憾的话,那就是它并没有提出问题的解决办法,甚至没有探讨一条可行的道路。确实如此,2015年我反思了三个问题后,直到去年才幸运找到一条对我而言目前看起来至少是可行的道路。注意此处的多个限定词。正如在“三个问题”里提到的那样,在学习的问题上每个人都在自己的无人区里探索。所以,我找到的道路需要每个人自行体会,消化、转换,直到最后变成自己的道路。
那么,我幸运找到的那条道路是什么呢?可以用三个词来描述,就是一专多能、刻意练习和终身成长。下面我会详细讲讲它们并尽量控制篇幅的长度。
什么是“一专多能”
“三个问题”里,我提到了长江后浪的事情。在技术更新超快的年代——比如最近因Google I/O 2019又引起的对Kotlin、Flutter的追风潮,甚至还有预测恐怕连面都没见过的Fuschia将干翻Linux、Android之类的风声(BTW,Fuschia真的会在以Android为主角之一的大会上说自己要干翻Android?),对于有一定工作年限(一年、两年工作年限都算)的人来说,很大的困扰就是要不要All In新的技术?一想到自己将在不久之后沦为过时的人真得是非常恐慌。
毫不掩饰得说,我自己正是技术更新换代的受益者。2010年前我还没做Android的时候,Symbian正如日中天,我想去投个塞班开发的简历都不可能被选中。短短2到3年后,我居然就和一群老牌做塞班的兄弟们一起干Android了。还好我从来不认为这是个人能力的问题,而是大势所趋。既然是趋势所致,那么,哪一天某个趋势会不会给我(或者我的朋友们)带来同样的逆转?应该如何构筑适合自己的护城河?
我相信这是个老生常谈的问题了,而国内普遍的解答无非是两个,一个是转做管理,一个是打业务知识+技术的组合拳。此处我们不讨论在技术上做到出神入化的这种解答,毕竟那只适合少数人。
如果你暂时还没有考虑使用上述两个解答方法的话,本文要说的“一专多能”恐怕是另外一种比较好的解决办法。什么是一专多能?简单来说,就是你有一项专长,然后在其它方面也做得不错。注意,一专多能比全栈更全面,更符合规律。
第一,全栈从来没有说过全栈中各个方面应该有怎样的技能水平。
第二,就像我们一贯说的那样,没有人是各方面的专家。
那么,何为专,何为能?18年我有幸看到了吴军老师的《见识》一书,里边有一章节画了这样一个图:
吴军老师将IT工程师分为五个级别:
第五级:能独立解决问题,完成工程工作。
第四级:能指导和带领其他人一同完成更有影响力的工作。
第三级:能独立设计和实现产品,并且在市场上获得成功。
第二级:能设计和实现别人不能做出的产品,也就是说他的作用很难取代。
第一级:开创一个产品。
大部分人都在第5和第4级。没什么惭愧的,我在本职工作中也就是接近第四级。不过从出版书籍的角度来看,我勉强还能算上第三级。BTW,吴老师说自己在2.5级。
接着,《见识》里还有这样一段话:
按百分制来算,我们在技术领域里做事可以做到三个境界:
从0到50分属于常识。要做到这一点并不难,也不需要花太多功夫,多了解一下,多找人问问差不多就行了。比如,每个人都能对手机的参数说上一两句,就好像北京出租车司机指点江山一样。再比如一个经典的案例就是爱因斯坦的司机代替爱因斯坦去演讲。
50分到90分靠技术。在这一境界中,我们需要投入时间和精力,有效投入越多,分数越高。再次注意这里的限定词——有效投入,这和下文的“刻意练习”有密切关系。
90分到100分靠艺术。这一点只适合大师,不用讨论,我也不配讨论。
遵照上面的百分制,我对“专”和"能"进行了一个划分:
专:指在某个方向上能做到80~90分。
能:在某个方向上能做到60~80分。
在我不知道吴军这个百分制之前,我对“能”这一条是这么要求自己的——我一定要做到能听懂你们在说什么。显然,这一条其实是0~50的常识阶段,还够不上“能”。后来我决定把能看懂人家的代码作为“能”的基本要求,最好还能自己写几个Demo,给相关工程贡献一些代码。
一专多能以及吴军老师上述说法对我影响很大(一专多能一词源于工作中某个领导对我提出的要求,这个词我是第一次从他那听到),彻底的解放了我的思想。
在不知道一专多能之前,比如2016年到2019年我在编写《深入理解Android JVM ART》一书的时候,历经人工智能和区块链风潮的兴起。我想,我也不能看着自己过时啊,所以极其别扭并挣扎得学习了AI、Blockchain。但我却一直很纠结,感觉自己背叛了Android Framework这个已经爱了多年的“志玲”去寻找另外一个志玲(关于志玲的梗,可看公众号的首篇文章“深入理解”的目标是什么?”)
有了一专多能作为思想指导,我就彻底放开,敢去追求不同的东西了,比如下面是我追求各种志玲时留下的心得:
书单
2018到2019年我根据工作需要,在JS前端、Java后台开发、项目管理、领导力、MBA、安全技术、iOS等方面放开了学(我甚至把所有学习的笔记全部挪到一个叫“一专多能”的文件夹下了——左下角的图)。
有人说,你学了也是半桶水。有什么关系呢?在这些领域中,有一些我是要了解常识,有一些我是要做到“能”。半桶水就半桶水,我本来也没想替代谁,怕甚?
经常会有人吐槽,说XXX啥也不懂,瞎指挥,其潜意思不正是说XXX没有这方面的常识吗?所以,如果你是做技术人员的领导,恐怕要重新规划下,先掌握下相关技术领域内的常识。
还有人说自己不适合做管理,一点和管理沾边的文章,书都不想看。现在,我觉得你没有任何理由了。不做管理大师,懂一点管理常识总可以吧?另外,如果真要想做管理,通过努力学习,实践,做到70~80分也还是可以的吧?
听君一席话胜读十年书,一专多能让我这个圆脸中老秃胖的技术春心再次荡漾。我已经瞄准了Kotlin、Flutter、iOS(为此我还专门虚拟机安装了一个黑苹果)。最好再多来几个,学学学,能成为王语嫣(王语嫣的梗也请参考公众号的首篇文章“深入理解”的目标是什么?”)也很有价值啊。所以,现在大家明白这个公众号的名称里压根没Android几个字的原因了吧?——为什么我只能和大家交流Android呢?
什么是“刻意练习”
那么,如何才能在新领域里从50分做到80甚至90分呢?答案是“刻意练习”。刻意练习来源一本书,全名是《刻意练习:如何从新手到大师》。大家一定听过一个10000小时的理论,意思是什么东西只要坚持搞10000个小时,就能成为专家。不过,这个理论有一个极大的误区——那就是它只强调了时间上的投入。
继续拿我自己举例。大学考研的时候,我是复习最用功的,但却是全系考外校研究生里成绩最差的。我们本科学校另外两个同学,考研成绩一个比我高40分,一个高70分。我绝对比他们用功,是什么原因?原因很简单,因为我是个急性子,不管是看书还是做题,我都下意识得图个快,所以,碰到稍微需要深度动脑,需要深度想一想的知识,题目我都跳过去了。然后反反复复记的都是自己已经会的知识,做得都是自己会做的题目——嗯,这就是码农界所谓的Copy/Paste手法。显然,一个Copy/Paste熟练工即使坚持10w个小时,其结果和坚持10个小时没什么差别。
我到现在依然是个急性子,这可能已经无法改了。为了缓解无效学习的问题,我的解决方法很简单,就是凡学到看不懂的地方,一律强迫自己不能跳过去看后面的内容。从研究生开始,一直到工作十二年,一直是这样过来的。压抑自己的天性是一件很痛苦的事情,但恰恰只有在这种时候才可能成长。学习的过程从来不快乐。注意,当下流行学习碎片化知识,如果是要了解常识,我觉得没问题,但要做到50分以上,不投入是不行的。
刻意练习这本书就说得很清楚,如果你要真正成长,你必须刻意去练习。什么是刻意呢?简单点说,就是每一个阶段的目标都要比上一个阶段高一点,难一点。刻意练习并不是什么新鲜事情,从你读书开始就一直是这么个套路。比如,从小学,初中、高中,每一次升级都是会有新的难度。所以,10000个小时的Copy/Paste就和小学重读10遍一样——也还是个小学生水平。
很值得警惕的是,到了工作之后,人们反而忘记自己一直以来的学习过程,转而去追求快餐式、碎片化式的学习——不过这到也没错,看你想达到哪个分数段。
刻意练习的过程中一定会碰到很多困难,但我觉得主要是心理和精神层面上的。作为过来人以及继续在这条路上前行的人,我想给大家一点心得——这非常重要。因为无人区里,我们互相鼓舞,打气以及能指明前进方向或目标是至关重要的。温伯格在《技术领导者之路》的“真实世界成长”一节中有这么一个图:
这个图意思是,每次进入一个更好成绩之前,必然会经历一段下滑,困难时期。在刻意练习的过程中,这也是经常会出现的。因为你在追求更高一级的目标时,往往以前的经验,方法不能马上用上,所以会迷茫,会沉闷。这时,只要你坚持探索,努力寻找适应新目标的方法和策略,就一定能爬出来。图中的凹陷区域就是我前面说的无人区。
知道自己在哪个区域是非常有用的。我在写《深入理解Android JVM ART》一书时,非常非常孤独,心中无数次想过“算了,不搞了”。好在我早已有这种经历,知道只要坚持下去就行了。不需要大智慧,也不需要小聪明,只要坚持。基于这样的认识,所以我前几天才和一个小伙伴说,你现在碰到困难,感到痛苦是好事,这意味着你要起飞了。
最后,总结一下:
如果想做到50-90分区域,需要刻意练习。
刻意练习的过程中会经常进入无人区。没关系,这是正常现象,坚持下去就好。
终身成长
终身成长来源于一本叫《终身成长:重新定义成功的思维模式》的心理学方面的书籍。我从这本书里学到的东西可见当时做的总结:
注意,上面图片里把书名写错了,是终身成长,不是终身成就。
文字版如下:
周末阅读了一本好书,《终身成就》,主要是介绍固定型思维模式和成长型思维模式, 显然,我们看待这个世界的事务,人等需要使用成长型思维模式。其中有几个关键点:
看起来有些人在某些方面是很有天赋,但实际上是需要努力来维持这种能力的。以前讲PPT,总是会紧张,后来发现乔布斯每次都要准备很长时间。所谓台上一分钟,台下十年功,正是如此。
我们看待事物不能以能力为准绳,谁都不会天生就会什么,一定要努力去争取。碰到困难,挫折,应该想办法去解决,而不是说我没这个天赋,一切原因都是因为我没这个天赋,能力。能力是可以培养的,是需要花时间,精力去学习和研究的。
努力的过程中,要注意方法,不能用蛮力,一条筋,这样的努力其实也是固定思维。应该想着解决办法,多尝试不同方法。
教育孩子也是,注意鼓励他们钻研的精神,而不是片面强调多聪明(防止将失败原因归结为不聪明) 。
实际上,每个人都有少数几个比较精通的方向,而其他方向也是差不多就可以了。并不是要求样样顶尖,也不可能这样。
我个人情况来看,某些方面有成长型思维,某些没有。还是要在自己喜欢的方向上搞事情。其他的,反正也能做(不能拒绝不做)。
最后
还有,前几天和小伙伴交流的时候,给他大概看了下我对一专多能和刻意练习的总结。现在也拿出来作为本篇的结尾。
上面图片的文字版如下:
2018年6月29日, 星期五
最近有开始有点烦。烦的内容一样,即不知道下一步该干什么。这里需要系统评定下当前的自己
在技术上,感觉到了一个无人区。并不是说自己很厉害,而是在这个环境下,技术上还没有碰到吸引自己继续很投入的内容。 之前花了半年时间研究了ai、区块链花了2个多月(没彻底研究完),go语言,python、nodejs等。大概都有了一些了解。 后面该干什么?后面学习东西时应使用什么策略?不知道。今天仔细思考了下,可能要一专多能了。一专:是指自己对以围绕android系统 为核心,包括设备端的系统,应用,底层,虚拟机的深入研究。多能:技术上应该包括对前后台内容、运维等各个方面的一定程度的了解。 除技术之外,包括MBA等各种非技术外的知识也要充分了解和掌握。技术之外的能力,需要结合工作需求来发展,不能脱离工作需求。
两个底线:有时候想不清楚自己该干什么,不如先随它去,然后把底线卡住。这里有两个底线是要坚守的:
保持技术上的专注:目前中短期看是要完成java虚拟机。后续想把几门语言(go,erlang,js等几种语言搞一个三周x语言这样的东西出来)
保持职场上的专业精神(be professional):认真对待工作内容,积极响应。一旦领导确认方向,努力并完善实现。
最后的最后
我期望的结果不是朋友们从我的书、文章、博客后学会了什么知识,干成了什么,而应该是说,神农,我可是踩在你的肩膀上得喔。
关于学习方面的问题,我已经讨论完了。后面这个公众号将对一些基础的技术,新技术做一些学习和分享。也欢迎你的投稿。不过,正如我在公众号“联系方式”里说的那样——郑渊洁在童话大王《智齿》里有一句话令我印象深刻,大意是“我有权保持沉默,但你说的每一句话都可能成为我灵感的源泉”。所以,影响不是单向的,很可能我从你那学到的东西更多。