对于一个程序员来说,学习的重要性相信大家都能意识得到。如何才能有效地学习,高效地学习?探讨下这个问题,我认为很有必要。
每个人学习的方法和习惯可能都不尽相同,很多人习惯了在学校的学习方式,特别是很多刚出校门的人。在他们潜意识中,学习只是应付考试的一种手 段,考完就一切OK了,全部还给老师了也无所谓,反正考完之后下次不会再考这么课程了(大学尤其如此)。长期的应试教育会让很多人以考试的心态来对待学 习,我也是受害者之一,翻翻我硬盘中散落的各种语言编写的”hello world”,各种半成品,它们就像一张张60分、80分的试卷悄无声息地躺在某个昏暗的角落里。
职业生涯的学习一个最大的特点是具有持续性,你需要在某个知识或技能上花费你大部分精力。这时候,应付考试的学习方法已经不再有效了,而知识积 累显得尤为重要。如果没有积累,所有的学习的成果都是一张60分的试卷。当你下次使用所学知识的时候,你手头有的就只有那张60分的试卷,你的学习将重新 从0开始,由于时间关系或其他原因,你这方面的学习可能在你达到可以考60分的水平时又戛然而止,当你后面又需要使用时,又从0开始学习…如此循环往复,一定时期内,你的水平将永远停留在0-60分中间。
职业生涯学习的另一个特点是,你有机会去教。“The best method to learn is to teach”,你可以将你的所学通过各种形式的分享传授给他人。通过教的方式你不仅能够巩固你所学的知识,更能够推销自己、结交志同道合的朋友。
那么,基于职业生涯学习的特点,应该养成哪些好习惯呢,本人愚见,提出几点:
一、积累:
1、使用note。比如evernote,one note(个人推荐神器evernote)。作为一名程序员,如果你不使用note的话,显然你已经out了。你可以使用note来在任意时间记录你的想法、学习笔记、分享、待办事项等等任意你想记录的。
2、经营好你自己的资产。你的作品、代码、idea、你搜集到的资料都是你的资产。对其进行分门别类,同步到网络硬盘(注意信息安全)、多备份都是很好的选择。
二、分享:
1、将自己的知识总结成ppt、写出demo。要养成这种意识,当你形成ppt、demo的过程中,你将站在更高的层次去看待你学过的知识、加深你的理解。当然,如果有机会一定要去讲,不管是何种级别的分享,哪怕是自己给自己讲或是讲给自己身边的朋友。
2、写技术博客。博客有很多种,对博客的定位,决定你写什么样的博文。如果你的博文每篇都作为一个研究课题来写,我相信你打造一个精品博客一定 是早晚的事情。当然我们可能没有要求这么高,那么博客也可以当note来使用(记录你每天的所学所想),这样可能有好心的人会指出你博文中的错误,和你探 讨相关的技术等等。
三、技术书籍、博客订阅和技术社区、QQ群
现在社会的信息非常大,你可以通过很多渠道获得你想要的信息。但是,问题是信 息的质量良莠不齐、信息量巨大,如果每天都把时间花在自己熟悉的信息上、每天都参与各种无意义的讨论(如语言之间的优劣),那么反而学不到东西还会把自己 弄得心烦意乱。
技术书籍:技术书籍应该是最严肃的获取信息方式,你可以通过对优秀技术书籍的研读、思考(特别注意思考这个词),形成你知识的框架,这应该是一个稳固的结构。
技术博客和社区:这里是指订阅业界的博客,参与相关博客社区的技术交流。订阅业界、牛人的博客是获得最新、最前沿的知识和技术的方式,应该每隔一定时间段(如每天、每周2次等)研读这些文章、做好笔记。
QQ群(或其他即时通讯群组):即时通讯是最直接的技术交流工具。通过这种工具交流技术、扩大职业圈子是一个很好的选择。但是鉴于目前,很多技术群很少谈论技术、或技术含量较低等情况,建议加入后仔细甄别,不要因为大量垃圾信息浪费宝贵的时间