3

我认为的学习方法

 3 years ago
source link: https://zxs.io/article/819
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我认为的学习方法

2016-05-12 分类:总结 / 效率 阅读(4569) 评论(0)

  最近因工作上的变化,我所运维的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》也很能理解他们为啥这么去处理,所以能快速理解书中的内容。总结下就是先思考再学习,这点也可以归类到前文前置基础那一点,没有前置基础自己思考、自己创造,不管对与错。

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

应用+总结+分享

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK