作为软件工程师加速自主学习的 8 种方法
作为软件工程师加速自主学习的 8 种方法
每天提高你的技能
Photo by 克里斯蒂娜@wocintechchat.com on 不飞溅
作为一名工程师,您将不断学习跟上技术变革的步伐。你怎么能以最适合你的方式做到这一点?
花时间提升你的自主学习技能。
“自主学习是学生主动学习的一种学习方法。这包括选择、管理和评估他们自己的学习活动等活动。” — 莎朗 K 安德鲁斯, 动机驱动的作业设计模型
学习如何学习是一个重要的话题。作为一名软件工程师,你可能会花费大约 20% 的工作时间来学习。一开始,这可能会更高。因此,制定有助于充分利用这段时间的策略至关重要。
Image from 像素
1. 记录你正在学习的内容!
您很容易被想要跟踪的“事物”的数量所淹没。
不仅是代码语法,还有技术概念、命令行快捷方式以及可能适合主题组合的内容。
以对您有意义的方式对这些内容进行分类并使其易于检索信息,就像您可以将信息输入到现有部分一样容易,这一点很重要。
当您反复遇到相同的问题时,这将变得越来越重要,如果您陷入类似的问题,就会发生这种情况。你记得如果你能找到它,你已经“在某个地方找到了这个确切问题的解决方案”。
对其进行编目,以便您“一目了然”地查看关键信息。将笔记划分为易于识别的部分将使您能够查看您访问过的概念。理想情况下,您可以回到这些并随着您理解深度的增长而添加它们。
记笔记的方法有很多种。这篇博文进入 七种不同的记笔记方法 .
尝试并找到最适合您的方法。
对我来说,除了更详细的笔记之外,我还喜欢记录我一整天学到的小知识。例如,我看到一位同事在 PR 中使用有趣的代码片段或在“今天我学到了”页面上编写特定查询的新方法。
以下是我用来划分笔记的部分示例:
快捷方式和命令
对于 CLI(我使用的都是 欧米兹 和别名'我已经创建)。对我的 IDE 也很有帮助。
“棘手的码头工人问题”
对于我遇到的问题以及如何解决它们。
“我试过了吗……”
对于一般问题,我有特定于 Python/Django 编码的问题,我可以在寻求帮助之前完成这些问题。
我用来做技术决策的资源
对于未来类似的问题,我可能会参考这个。如果有人问我为什么做出特定的设计决定,这也非常有帮助。
技术书籍概述
将一大堆技术信息与一些有用的摘要整合在一起,这意味着您无需重新阅读整篇文章即可找到对您最有帮助的部分
代码片段
我经常发现自己查找的东西。
2. 不要试图写下所有完成的事情
一开始,很难知道什么会坚持,什么不会坚持,以及你想要回顾的事情。
也不要强调立即修剪所有内容。
但一定要保持清醒并意识到试图限制你记笔记的数量
减少笔记饱和度可以做的事情是保留指向您引用的资源的链接。对于文档来说尤其如此,文档可能会随着时间而变化,因此参考更新的事实来源可能不太可能变得过时。
这并不是说根本不做笔记!
总结你在“尤里卡!”中理解的关键概念如果你能把它简化成你自己的话,那一刻将帮助你充分巩固你的理解。
随着时间的推移,您将直观地了解您以后可能想或不想参考的内容。
3. 尝试不同的学习方法
您不仅通常会拥有首选的学习方式,而且您可能会使用不同的格式更好地学习某些主题。
本文 进入四种不同的“学习者类型”。
- 视觉学习者
- 听觉学习者
- 读写学习者
- 动觉学习者
我相信对于所有概念和信息类型,您不一定是同一类型的学习者。
例如,在大多数情况下,您会发现自己是一个视觉学习者。但是,看了很多视频后,你并不能完全掌握递归的概念。相反,作为一名读写学习者,阅读几篇不同的文章,你就能理解。
花时间探索其他学习方式,尤其是在您努力巩固的内容上。
4. 寻找/创建一个社区来学习相同的概念
在小组中学习有很多好处。我想强调一些,以及您可以成为小组学习一部分的一些方式。
Image from 像素
减少拖延
作为一个神经发散者,我在时间管理和拖延方面遇到了很多困难。小组学习可能意味着让其他人帮助我专注于该主题。很容易分心。与其他积极进取的人在一起可能意味着我更有可能在任务和分配上取得良好进展。
获得更全面的了解
每个人都可以对一个主题有自己的看法,这非常适合小组学习。它带来了不同的角度和意见,并支持创意和 分析思维 .
向同行学习
小组学习还将提供一个安全的空间来练习谈论和教授某些主题。
有很多形式可以鼓励小组学习。我最喜欢的一些是:
- 在技术读书俱乐部( 在这里阅读我是如何开始的 这帮助我处理了冒名顶替综合症)
- 在黑客马拉松中(有很多对初学者友好的!)
- 通过结对编程会议
5. 定期回顾你学到的东西
参与反思你的自主学习是确保它得到巩固和更新的关键。
Image by 像素
在一周和一个月结束时,我喜欢回顾我学到的一些主要内容,并尝试了解我需要在哪些地方进行一些修改或深入研究。
复习时可以问自己一些问题:
- 我怎么知道我学会了这个? (我有没有将它应用到某个地方?我可以使用这个概念/方法解决编码 Kata 吗?)
- 我可以灵活地适应和应用它吗? (我能想出用例和/或这些知识可以在所研究的原始上下文之外应用的方式吗?)
- 我有信心解释这个吗? (我可以用其他人容易理解的方式来分解它吗?)
- 有没有人可以问谁是这方面的主题专家来澄清我的理解是否正确? (我可以向谁寻求反馈?)
6. 将理论应用于真实环境
启动那个项目。即使它没有上线并且从未完全完成,这个过程也是值得的。
一旦你理解了一个技术概念,一个很好的例子是异步函数,通过将它应用到一个真实的项目中,把这个理解提升到一个新的水平。
7. 将“可怕”话题视为机会
如果您最初接触的主题令人生畏,则无需一开始就理解它。这通常表明您可能想回到更基础的主题以朝着它前进。
如上所述,您可以先记下第一次没有完全掌握的主题,以在返回之前建立先决知识。
这些可怕的话题可以成为很好的动力和目标。不要灰心丧气。当你得到它时,你已经找到了另一个在未来给自己留下深刻印象的机会!
8. 努力寻找替代意见和观点
当您正在学习一项新技术以吸收您正在学习的材料的作者、策展人或创作者的观点时,这很容易。
这可能不是全部。
在积极寻找替代观点的过程中,您可以找到有助于丰富您理解的上下文。这可能在论坛的深处,通过作为主题专家的不同人的讨论。或者通过寻找相同问题的替代解决方案。
这将有助于以更全面的方式大量告知您的观点。
您不仅会加深对正在研究的主题的理解,还会加深您的技术讨论技巧。这对于使您能够理解和参与技术辩论至关重要。
这不仅是作为一个积极的参与者,而且是作为一个倾听者考虑和权衡其他人提出的观点。
最后的想法
让它变得有趣!
如果您想最大限度地提高学习机会,请增加乐趣。
公开学习
通过博客、视频或其他方式分享您所学的内容。这不仅是一个帮助他人的机会,而且你会再次发现你需要发展你的理解来进一步简化或调整你的解释。
关于这一点,您是否找到了其他特别适合您的方法?请让我知道并在评论中分享!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明