课程:工程师个人发展指南
https://time.geekbang.org/column/article/758484
技术知识的学习方法
软件开发是工作节奏快和学习压力特别大的职业,不少岗位的工作受制于实体物料不同,软件开发工作的关键物料是电脑,这家伙只要有电就根本不会累,计算什么也不受限,绝大部分情况下,成不了咱工作的瓶颈。
另一方面,软件行业自身的技术发展非常快,无论是编程语言、工具、开发框架、软件平台、方法论,在不断地出新与迭代,这就使得咱要学的东西自然就多了。甚至可以毫不夸张地说,如今软件承载了人类社会的科学与技术发展,不是有那句话吗,软件正在吃掉这个世界?
做中学
“做中学”三点好处:
- 通过实践加深理解,培养解决问题的能力。理论知识通过实践得到加强,这就让我们可以更深入地理解概念和掌握技能,读书百遍不如实干一遍。在实际的工作中,问题和挑战是在所难免的,做中学促使我们在面对问题时,通过思考和创新来解决问题,这是在职场和生活中都非常宝贵的一种能力。
- 即时反馈和调整。通过实践,我们可以立即获得反馈,了解自己的理解是否正确,检验技能是否得到正确应用。有助于及时调整学习方法和策略,避免在错误的路上走得太远。
- 提高和保持学习动力。将学习与实际的工作结合起来,可以让学习过程更有目的性和紧迫感。当学习者看到自己的学习能直接解决问题时,就更能保持学习动力。
总的说来,做中学是一种高效、实用且符合成人学习特点的学习方式,特别适合工作节奏快、知识更新频繁的软件行业。
在工作中得让工作任务多样化,这样除了更好地发挥做中学的作用,还能增加个人的经历密度。
不过,即便你采用了做中学的方法,但因为不懂的东西太多,行业又发展得那么快,在精力有限、学习又需要循序渐进的情形下,你很可能变得焦虑、患得患失,学着这个看着那个。有什么方法缓解这样的心理状态吗?我的解决思路依然是聚焦,只是这时得用上“先深度后广度”的学习方法。
先深度后广度
大体上,知识和技能的掌握存在深度和广度两个维度,那咱就会面临,先发展深度还是先发展广度的问题。为了更好说明,我画了下面这张图,为了简化,图中从 A 到 B 只画了两条路径,分别代表先深度后广度和先广度后深度两种学习模式。那从 A 到 B 走怎样的路径更好呢?我的建议是选择先深度后广度这条。为什么呢?
你想啊,如果是广度优先,功夫花下去短期内会让人觉得学了不少东西,可当要动手干时,发现那些料不够,不是说“魔鬼都在细节里”吗,结果慌了手脚,也容易打击自信心,变得焦躁也是难免的事。总之,这样的学习路径更不利于人的成长。
回到现实中,从 A 点到 B 点的路径,更像下图那样,是深度与广度的交替发展。
随着个人经验的丰富,对学习究竟是先深度还是先广度会有更清晰的判断,在两者之间也能适时地进行切换。那时不仅学习效率更高,因为能看懂新技术背后的所以然,也更能抵御新技术给自己带去的干扰,对于深度和广度的选择问题就会很自然地淡化。
好,现在咱又知道了先深度后广度的学习方法。不过,无论是扎深还是扩宽,如果所学知识不能马上用上而见效,由此而带来学习动力不足怎么办呢?
目标牵引
也是,在学习的过程中,有些是非技能型的知识,学习起来难免枯燥,比如网络原理、操作系统原理、软件工程方面的内容。有些虽是技能型的,但需要反复操练才能娴熟掌握,比如编程语言、数据结构方面的内容。
在 02 讲介绍职业发展四部曲时,我讲到的一个学习方法是,给自己定阶段性的学习目标,以学习目标做牵引,让兴趣最终变成热爱。当我们学习那些没能带来短期效益的技术知识时,同样可以采用设定学习目标的方式,以目标做牵引让自己更能坚持下去。
有了阶段性的学习目标,当目标达成时,即便一下子看不到明显的短期收益,但依然能起到激励的作用。还有,有了学习目标后,我们自然更容易聚焦,以目标滚动向前的方式去学习,而不是一会儿学这个一会儿学那个。
如果有了学习目标还是不能坚持那怎么办?这下你还真问倒我了,我也没有其他的好办法了。毕竟,学习可以有方法,但没有捷径。沉下心去学,是所有成为技术专家的工程师都必须经历的成长之路。
设定学习目标时,我有两个建议供你参考。第一个建议在 03 讲介绍专业化时讲到了,就是以提升自己的工作质效来设定学习目标,这个建议的背后,依然是做中学的方法。第二个建议是,确保学习内容有一定的体系化。比如编程语言、数据库原理、操作系统原理等,与之相关的每本书,都可以是独立的一个学习目标,而这些目标共同组成了专业体系。
所掌握专业知识的体系化是专业化非常重要的标志。专业化的背后,隐含了专业的深度与广度,体系化的知识体现的是广度,只有知道我们的视野才会开阔,才知道原来前人也碰到了与我一样的问题,并且已经有了相关的解决方法。换句话说,掌握体系化的知识,有助于我们站到前人的肩膀上做事而更有工作质效,而追求工作质效正是专业化的目的。
就我自己的学习经历,我发现每次积累的点滴知识,一定会在将来不知不觉地发挥价值。这也是天道酬勤的一种形式吧。
现在以目标牵引学习我们聊完了,接下来我想和你聊一聊学习习惯。
学习习惯
我在学习的过程中,形成了自己的一些习惯,我想分享出来看是否对你有所帮助。
- 第一个习惯是,使用电子表格记录下读完每本书的日期。列表的变长,会让我更有成就感,一定程度上也会激励我去读下一本书。这张表格中每年是一页,跨年新增新页时,也就知道了过去的一年读了多少本书,这样的行为还起到了警示的作用,如果发现自己一年下来没读几本书,就会形成积极且健康的焦虑。
- 第二个习惯是,我读书时会在书上画线,有精彩观点的那页也会折个角,方便下次回顾时能快速地过一下那些关键点。书读过后难免忘记,不时因为想到一件事或写作时,我会想到曾经哪本书讲到了相关的观点,这样翻阅起来效率就高了很多。我并不担心书读过后变得乱七八糟,保持书的整洁那不是读书的目的,读书是为了掌握和运用书中的知识且以更有效率的方式。
- 第三个习惯是,线上的那些好文章,我会分门别类做收藏。像 Medium.com 这样的付费阅读网站,本身就提供了这样的收藏功能,用好它就行了。
总结时刻
这讲快结束了,我得为你总结一下。这一讲我们讨论了学习技术知识的方法。软件行业是一个发展特别快的行业,对于我们来说,这意味着工作节奏和知识更新的“双快”。尽管学习没有捷径,但还是有一定的方法,帮助我们提升学习的专注力和坚持度。
聚焦有助于学习时的专注,于是我们有了第一个学习方法——做中学。做中学除了帮助我们学习时聚焦,还能让学到的东西马上能用,进一步形成学与用的正向激励。不过,做中学需要注意,避免因为长时间工作任务的单调让自己失去学习的动力。
任何技术知识无外乎深度和广度两个维度。采用先深度后广度的学习方法,一方面能让人聚焦,避免学着这个却盯着那个的患得患失;另一方面,深度的积累能让人对其他技术触类旁通,从而更容易扩展广度;还有,先深后广也能预防学得广但不精,进而导致挫伤个人自信心。
学习目标在我们的学习过程中起到了牵引力的作用。除了让人聚焦,还因为有阶段性的成果而给到自己激励,让我们更能坚持学下去。设定学习目标时,可以锚定日常工作中影响自己工作质效的那些点,发挥做中学的优势;同时考虑让自己的学习内容做到系统性,毕竟知识的系统性是个人专业化很重要的标志。
在这一讲的最后,我和你分享了自己的一些学习习惯。比如,用电子表格记录一年读了哪些书,阅读时注意标注关键知识点帮助后面复习,对线上的好文章做好分类收藏。希望这些习惯对你也有所帮助。
最后,我想请你思考,你有哪些自己实践下来很有效的学习方法呢?
问答
怎样才算到达了一定的深度呢😣。这个深度有没有一种衡量的办法…
我一开始想到的,是能高质效地应付工作,但细想了一下,这个好像也很难衡量,可能也只能个人根据自己的工作状态去评估。
另外,对软件行业的发展需要有很好的认识,比如,能明白软件设计能力和工程能力是软件行业的核心竞争力。我说的“明白”,不是停留于知道,而是要真正有实践体会。