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