工作之余的学习

一、引言

很多人都说程序员的薪资水平不错,可以媲美医生和律师。表现上确实是这样,然而程序员和医生、律师的不同点在于持续学习上。不是说医生和律师不需要学习,医生、律师能够凭之前的Case积累非常多的经验(这也是大家看病喜欢找年纪大的医生的原因之一),简单讲,人体器官总不能几年就多出一个,而且这些经验很大程度上可以被复用(很多病因和判罚案例带有相似性)。但程序员这个职业则不同,主要是因为行业更新得太快,积累的经验很快就不适用了。行业发展得太快,你必须学习,纯靠经验积累行不通,技术淘汰的速度远大于经验积累的速度。

程序员千万别谈自己的编程历史,很多经验在今天已经不适用了。只要2-3年不关注技术,就基本快和程序员及编程绝缘啦,虽然不是绝对,但是通常不会错。有一天我们忽然发现:自己越来越没竞争力越来越不值钱啦!于是,我们必须得学习提升啦!还只能利用业余时间,因为,白天应付各种任务,哪来时间给你学习啊。

二、学习

2.1 工具要非常熟练

有人会说:“你就是IDEA使用得再熟练,也没有必要将学习和使用工具挂上钩吧。” 听到这样的话,你不用理会。对比下那些IT牛人,看看他们对工具的熟练使用程度。例如:在排查问题和写代码上,如果你1个小时只能尝试一种方法,别人却能够尝试10次,那么别人就是比你牛。天下武功唯快不破,你后续写代码、查问题、工具的熟练程度都会决定你学习和尝试新事物的速度。

2.2 读书 & 看文档

多读书,多读有用的书,可以从 Amazon 上找书,IT类图书基本都能找到,而且更新速度非常快。除了图书,我们还需要关注技术文档(reference)。现在很多框架和技术的参考文档已经非常好了。另外一些新的技术,刚开始只有文档,在图书还没有来得及出版的情况下,你只能阅读文档。但这没有关系,会稍微难阅读点,但多读两遍就可以啦,毕竟我们不是天才,也不是这个领域的专家。

作为Android开发人员,时不时重新阅读一下Android官方文档,毕竟官方文档还是最权威的,也是最新的。

其实现代人阅读量是比以前多多了,每天打开手机,各种新闻、文章、视频和朋友圈,阅读量相较以前变大了。对比图书等,这些知识只是生命周期太短,而且营养不高,这也是为何大家觉得阅读少的原因,没有帮助你增长知识。

2.3 视频学习

之前个人是看书比较多,视频学习方面最多是在 51CTO腾讯课堂网易云课堂 上看的视频。

视频和图书有什么区别?

首先图书编写比较费时(有些烂书除外),图书作者要有一定的写作水平,这点对技术牛但写作不在行的人或者没有充裕时间的人就比较麻烦了。视频还有一些文字表达不了的功能:图书中只会贴一段代码,而视频中这些代码是需要输入的,这时你会发现作者很多的黑科技或者黑技巧,你也能学习到。另外图书中一些比较容易忽略的东西,在视频中可能会被很好地补充。而且很多的视频制作者,本身是来自框架和技术的开发团队,而不是第三方的图书作者,所以新鲜度和技巧性都非常明显。

网上有一说法:

下班没事的时候,找个会议室,几个志同道合的人,搞点点心,播放一个跨界或者新技术的视频,看完20分钟,大家讨论一下。英文好的、有技术功底的同学多发表一些观点,其他的同学都也都能了解。

图书、文档和视频教学,让我们可以了解和深入某一项技术,对付工作应该没有问题。但如果要紧跟潮流,获取灵感,还需要关注一些技术新闻。

2.4 做项目 & 写代码 & 看源码

作为IT人员,不管是一线开发还是技术总监,都不应该离开Coding。预研项目中可以考虑尝试新的技术,不一定所有的技术都能用到项目中,新技术直接用在工程项目中,还是有一定的风险。有些是启发性的或者触类旁通的,需要写Demo,磨磨刀没有错的。读了很多,看了很多,如果再用代码验证一下,就更好啦。

看源码是非常重要的一个技能,至少code review技能提升,刚入行时,一位前辈跟我说,多读源码,特性是经典源码。

在预研项目中多尝试一下你学到的新知识,不能惯性使用你熟悉的技术,要知道你熟悉的东西很快会被淘汰,被淘汰后再调整就来不及了。对你本行业的技术,一些源码还是要能看懂的。至于跨界技术,阅读源码量力而为。

三、总结

互联网信息技术的迭代周期快是有目共睹的,因此,学习、更新知识这件事就变得相当重要。--记得做好知识整理及时间管理法。


后记

前面谈的是学习的途径,但要落实及完整系统的学习,还是需要有有些步骤的:

  • 设立明确、具体、让你动心的学习目标
  • 分解学习任务,标记任务的时间粒度
  • 寻找可以多场景使用的学习工具,形成套件,随用随取
  • 记录你的时间消耗,看清楚时间都去哪儿了
  • 提前做学习计划,结合任务和时间粒度,执行学习计划