我认为的学习方法

  最近因工作上的变化,我所运维的200个应用即将交由其他团队运维,而我也会由运维转开发。已经一年多没写过代码的我重新拾起了我不是很熟悉的Java,主管也仅给我一个月的时间,期间还有其他乱七八糟一堆事。 在这种情况下,我只能寄希望于我是否能高效且快速地学习。从过去3周的情况来看,我在开发能力上的进步是可以达到我最初期待的水准。 另外这几周我也在总结自己在过去一年运维相关的文档(毕竟交接出去还是要把相关的事说明白的),同时也在看Google的新书《Site Reliability Engineering》、docker、zookeeper,还有坚持半年多的英语学习。 所以今天我会结合最近我一直在做的一些事来谈谈我对学习的体会。

  我自认是个学习效率不高的人,之前不是,现在依旧不是,但我在过去一年多的工作中还是有了一些小小的想法。感谢大家看了前面那么多废话依然坚持到这,接下来就直奔主题了。 直观的可以把学习的整个生命周期分为三个阶段,每个阶段应该具备以下几个特点。

学之前

前置基础

  还记得一年前实现的时候,最开始看了半个月的文档,收获甚微。 直到后来,瞎搞了半年,再回头去看那些文档,基本上都能理解了,那一遍看过去的收获要比我最看是看那半个月的收获多多了,现在觉得最开始觉不应该看那半个月的文档,直接从简单开始入手运维,最后到理解全局,效率应该高很多。 可能大家对我的经历没太多的体会,我举个简单可能不太恰当的例子,但很能说明问题。你让一个初中生去学习微积分,和让高中生学习微积分,肯定两人都会有一定的成果,但多与少可想而知。导致差异的原因在哪?仅仅是在那三年基础数学了。 在学习数据挖掘和机器学习方向的研究生中,本科计算机的学生相比数学专业的就会显得力不从心,对于DM&ML,计算机专业的仅是数学基础薄弱(来自某数学专业学数据挖掘的学姐的经验)。
  好多知识体系都是有个发展过程的,可能一门课程依赖于另一课程作为基础,这种现象在数学中非常明显。所以在学之前,先看下自己基础是否足够了。 学习过程中感觉好多东西都不理解了,赶紧补下相关基础,虽然可能会花时间,但肯定花的时间能带来额外的收获,磨刀不误砍柴砍柴工就是这个道理。    

目的

  你学一种东西肯定是会报有一种目的的,我觉得对达到目的意愿强度,是你坚持的动力,更是决定最终结果的根本原因。从我自身的经验来看,我只也想过学很多东西,可以简单分下类。有些是纯粹是兴趣(比如算法),有些是想要炫耀一番(曾有想过学一门乐器),有些是当前需要(java linux……),有些是未来需要(sre、docker、英语……),有些可能是未来需要(数学、机器学习),还有最后一种是被忽悠(比如看篇文章一时兴起,谁谁谁告诉你怎么样)。
  然后在看下我自身对于这几类的情况。关于兴趣方面的,虽然精力不是很足,但遇到的情况下自己仍会花时间去了解,总之不缺乏动力去做这事。想炫耀一番的,我知道好多人都有这种心态。如果是因炫耀而学习,最好还是趁早放弃吧,没准哪天你的心态变了,学到一半的东西不再有动力去学,最终不仅没啥成就,而且还浪费时间,另外有啥可炫耀的,你比别人优秀,并不代表你比别人幸福,放平心态。现在和未来的需求,都是外界促使你去做的,建议还是结合自己的兴趣去学,提高自己的积极性。比如我现在需要学java,所以我在leetcode上用java刷题,回顾之前算法的同时练了java,也为将来跳槽做准备(哈哈),同时不会的题也看下discuss顺便学下英语,简直一石n鸟。 关于最后一点,最不可取了,不要听信一家只言,最好结合多人的看法,结合自己的需求和兴趣来决定自己要学什么。 我告诉你,未来是AI的天下,你会去学AI吗?听信一家之言,小心一误误终生啊! 

学之中

专注

  学习不是一蹴而就的事,好多东西都需要长时间的思考才能明白的,这点应该大家都能理解。但很少人能做到专注,总有客观或是主观的因素打扰。 就比如我自己,因为我岗位的性质,确实有一大半时间在被别人打扰,很难有时间专注去做一件事或者去学个啥东西,这就导致我这一年工作中经常会学到一些小知识,比如某个shell命令的某种功能、nginx的某项配置、网络的某点知识…… 所以导致我知道的杂而不精,这样可能对初出茅庐的手可能有好处,但长期绝对会毁了自己的。 另外还有一些自身的原因导致无法专注,看会书就想刷下微信、玩会游戏、看会视频,总觉得自己已经看了好久的书了,拿起手机发现才过了十几分钟。
  其实对于客观影响,我也没什么好办法,我自己也被这些困扰着。但对于影响学习的主观因素,我有一些小小的建议。 有个小app叫番茄土豆免费,也可以以很低的价格买到会员,用这个软件来强迫自己专注下来,锻炼自控力,如果你有看过《自控力》一书的话,你就会知道自控力和力量一样也是可以锻炼的,没看过也没关系,现在你不也知道了吗!另外你也可以找个环境和学习气氛好一点的地方,比如图书馆,周围的人都在看书,你会好意思一直玩手机吗? 之前一直去首图,确实是一个学习的好地方,不过要去得趁早,最好9点多就去占个位,如果下午去不一定能找到位置了。

实践

  有句话I hear and I fogert, I see and I remember, I do and I rember. 字面意思很简单,我拒绝翻译。不知道为啥总感觉同样一句话,用英语比汉语说出来更具说服力,可能是大家崇洋媚外的心态比较重吧。 凡是程序猿,都能理解实践的重要性。结合自己最近学SSH的体验,借了舍友的《java编程思想》用了半天翻了一半。又上网买了《轻量级Java EE企业实战》,过了一遍struts,最后发现还不及看着同事的代码认认真真实现一个新功能上手的快,用两天时间具备基本开发能力(本来开发的东西需求比较简单,或者我比较聪明,虽然我更倾向于后者,但实际上,我就是比较聪明)。所以还是实操上手快,再加上看书加深理解。xindoo曾经说过,天才就是99%的实践加上1%的理论。

提效

  关于提效,我只有两点体会。第一点 并行学习,就如同我上文中举得例子,刷leetcode学算法、学java、学英语,此处不再赘述。第二点就是学之前自己对相关的知识有自己的想法,不管对还是错都可以。比如最近的看的Google《Site Reliability Engineering》,因为自己身处在类似的岗位(阿里的PE,很大程度类似于谷歌的SRE),对于书中讲述的一些问题还是有一定的了解。同样的问题,我知道我们怎么处理的,看了《SRE》也很能理解他们为啥这么去处理,所以能快速理解书中的内容。总结下就是先思考再学习,这点也可以归类到前文前置基础那一点,没有前置基础自己思考、自己创造,不管对与错。

坚持

  这点真是老生常谈的点了,我之前也在很多篇博客中谈过这点了,总之一句话,你坚持不到结尾,做啥都是浪费时间。

学之后

应用+总结+分享

   这三点其实是为了验证自己是否真的学会了。感觉这三点一点比一点扯淡,其实会用不难,证明你知道用法了。但总结你得花时间吧,你得认真思考吧,这就是一个你思考其原理的过程。而分享,我觉得是让别人帮助你思考,分享过程中,别人可以告诉你一些你没有想到的东西。

适时回顾

  温故而知新很难做到,但至少可以做到不忘。以我多年的临床经验,好多东西不用就忘了,你再想用的时候就得花好多时间重学了。就比如英语,你能保证自己毕业两年后重新考过四六级吗?我平均每天花半个多小时学英语,我都保证不了两年后还能考过四六级。知道为啥吗?因为我四六级压根就没过,所以根本不可能『还』 哈哈哈!!!

结语

  码这么多字好累了,花了我一个周六下午,还得改啊改啊改啊。。。。不管怎么样还是写完了,自己从头到尾看一遍,简直了……这辈子没看过写得这么烂的文章,呵~~

打赏

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.