学习学习

Avatar of Sarah Drasner
Sarah Drasner

DigitalOcean 为您的旅程的每个阶段提供云产品。立即开始使用 $200 免费赠送额度!

最近关于是否需要学位才能从事科技工作有很多讨论(剧透:你不需要)。但请不要因此就认为你不需要任何教育就能从事科技工作,因为不读学位,你就选择用自学来代替学院强制性的学习结构。

无论是否有学术背景,技术教育都不会在你找到工作后就停止。相反:科技领域中没有什么是静止不动的,**你拥有的保持长期就业能力的最有价值的技能就是学习如何学习**。

找出漏洞

你已经准备好出发了,准备挑战自己,学习你能学到的东西,并成长。但从哪里开始呢?有时候人们依赖于更正规的教育,仅仅因为那里有人在指引你的道路。

当你自学时,这部分有时会很困难——你不知道你不知道什么。如果你从头开始,学习网络开发或计算机科学,以下是一些可能对你有所帮助的资源

有时你也知道你需要学习什么,但你需要升级。在这种情况下,我在下一节中提供了一些关于如何组织自己的策略。

可能的策略

你绝对不需要像我一样正式地学习。我以前是大学教授,所以我现在仍然像教书一样组织自己的学习。我甚至仍然使用专为教师设计的纸质计划器。我会向你展示我的做法,以防对你有帮助。**几年前,我自学了ES2015/ES6,所以我将以它为例。**这种结构对有些人有用,对另一些人则没有用,所以用对你有效的方式学习。

如果我要学习一个API,我会访问主文档页面(如果有的话),并列出我要学习的每一项内容。然后我会将这些内容分成我认为可以管理的块,并在我的时间表中分配这些块,通常每天学习大约半小时。这样做是基于这样的理解:有些日子我可能没有时间,而另一些日子我会深入学习更长时间。通常我会争取每周至少学习2.5小时,因为我认为这个速度对我来说是合理的。

ES2015 main
学习ES2015时使用的功能列表 ES2015

然后我将所有这些功能写出来,并估计每个功能需要多长时间。这是一个例子,我写下了我需要学习的所有内容。侧面的黄色数字是我对时间的估计,以半小时为单位。

checklist of ES6 features

你也可以对来自在线研讨会的课程材料进行类似操作,写下各个部分并将它们分成块,每天复习。我真的很喜欢 Frontend Masters 这样的长篇学习平台,以及 EggheadWes Bos 的课程。

在这个阶段,我会将这些内容分解并安排时间。教师计划器让我能够将每天分成不同的主题,并将少量内容放在每一天。在第一个截图中你可以看到,我每天都在学习一些东西,指导一些人,并编写和构建我学到的东西。这种输入/输出真的帮助我在深入学习ES2015/ES6的过程中巩固了概念。

example of scheduling by theme, subjects broken down by day
example of scheduling by theme, subjects broken down by day

我尽量不要安排太久远的计划,因为我可能会放弃某些内容,或者我可能有一天会比计划中学习得更多。我会让时间表足够灵活,以便适应这些不可避免的不一致。这也让我不会感到太沮丧。如果我觉得自己“偏离了轨道”,下一周将是重回正轨的机会。

再说一次,你不需要像我一样正式,有很多方法可以有效学习。找到适合你的方法。我建议你偶尔看一下这些API文档的目录,主要是因为这样你就会知道你没有填补的知识差距。

抽出时间

在我们的繁忙日程中抽出时间可能很困难,但这是至关重要的。看看你的一周,你有多少时间?如果你没有刻意抽出时间,学习就无法发生。它不需要太多时间。如果你更习惯于按规律做事,你可以制定一个每日时间表。如果你喜欢埋头苦干,并且已经有工作了,那么你可能需要牺牲一些周日下午,或者可能偶尔下班后的一些时间。我们大多数人需要两者兼顾。☺️

如果你有社交方面的动力,你可能想找一个学习伙伴。工作中有没有人有类似的目标?也许参加编码聚会可以帮助你保持正轨。 Emma Wedekind 还会建立 Coding Coach,你可以获得指导性的辅导课程。

练习

归根结底,还是要靠练习。如果你学习过认知负荷理论(我强烈推荐这本书 认知负荷理论,如果你想了解更多),你会发现老话“熟能生巧”确实有道理。

diagram showing that practice helps us store long term ideas
信息处理模型(我们如何学习)——理查德·阿特金森和理查德·希夫林的认知负荷理论,1968年。

我真的很喜欢扎德·肖的《笨办法学Python》中的这句引言。

不要复制粘贴
你必须手动输入每一个练习。如果你复制粘贴,你可能根本没有做它们。这些练习的目的是训练你的手、大脑和思维,学会如何阅读、编写和查看代码。如果你复制粘贴,你就是在剥夺自己从这些课程中获得效果的机会。

我也很喜欢《艺术与恐惧》中的这句引言,经常会想起它,因为它一直是我的指路明灯

陶艺老师在开学第一天宣布,他要把班级分成两组。他说,工作室左边的人只根据他们生产的作品数量进行评分,右边的人只根据作品的质量进行评分。他的评分方法很简单:在课程结束的那一天,他会把他的浴室秤拿进来,称重“数量”组的作品:50磅陶罐评为“A”,40磅评为“B”,依此类推。那些根据“质量”进行评分的人只需要生产一个陶罐——即使是完美的陶罐——就能获得“A”。到了评分时间,一个奇怪的事实出现了:高质量作品都是由根据数量评分的那组人制作的。似乎“数量”组一直在忙着生产大量的作品——并从错误中学习——而“质量”组一直在理论化完美,最后他们除了宏伟的理论和一堆废土之外,没有更多东西可以展示。

学习方式

实际上有很多不同的学习方式,将它们结合起来甚至可以有所帮助。有时我会坐下来练习 将其他语言的代码重构为JavaScript(现在这是一个非常老的项目),或者反向工程一些东西来学习。我喜欢反向工程,因为人们解决问题的思维方式不同。这让我可以窥视其他人的大脑,看看他们如何处理问题。我甚至有一个 私人收藏 在CodePen上,我收集了其他我认为可以让我和我的学习受益的作品。

就我个人而言,我认为没有什么比构建更能激励人了。你实际上可以通过构建东西来学习大量的东西。

故事时间:很多年前,我参加了一个会议,与几位参与 SVG 规范制定的人员在一起,包括 SVG 的发明者本人。当时我完全默默无闻,但几年来一直在制作大量的 SVG 动画,这些动画 *非常不受欢迎*。我们谈到了规范中的一种特定行为。我提到,是的,它应该那样工作,但不幸的是 Firefox 的行为是 *x*,而 Chrome 的行为是 *y*。

小组中没有人知道这一点,这也是我第一次意识到,我所做的所有那些愚蠢的、有趣的尝试实际上是在教育我;虽然我没有以正式的方式去寻求它们,但我了解了实际的、真实世界的边缘情况。我非常兴奋!我并没有计划成为 SVG 专家——它在我不经意间就降临了,因为我喜欢享受它,通过构建一些东西来缓解压力和玩乐。

这是一个好消息!通过创造一些你认为有趣的东西,你可以学到很多。我喜欢先学习一段时间,然后通过制作一些东西来练习我学到的东西,只是为了确保我巩固了这些概念。

你可能会发现,通过教学你学到的最多。如果你确实有一个可以指导的人,它实际上也会对你有益。撰写技术文章或帮助编写文档可以帮助你具体地学习一些东西。

认知负荷理论

我之前引用的那本书,认知负荷理论,有一个很棒的部分,分解了学习方式及其要求。这本书的中心主题是讨论将信息从来源转移到我们自己的脑海中,以及在学习结构的设计特点和我们自己的认知能力的影响下,某些能力和局限性。

  • 内在负荷是由材料的难度造成的。
  • 外在负荷是由教育和材料类型的设计特点造成的。
  • 相关负荷是投入的脑力劳动量。

下面的图表探讨了我们学习的不同方式的影响,以及上面列出的三种主要认知负荷是什么。

table of human cognition and learning modalities
来自 认知负荷理论

这种对学习所需事物的元理解可能对你有帮助,因为你可能会发现你在某种学习方式中比另一种学习方式具有更少的认知负荷。你可能还会发现,当你遇到一些相关负荷较高的主题时,你需要更长的时间来理解,而另外一些主要是记忆的主题则需要更短的时间,这时你可以对自己宽容一些。

要知道,学习风格确实会影响我们理解事物的能力,而降低自身障碍是关键。你是否一直在有大量噪音和干扰的咖啡馆里学习?考虑一下,你缺乏专注力可能更多地与环境有关,而不是你处理材料的能力。

关于这一点,还有一点需要说明:学习是困难的,而且令人谦卑。它也很令人兴奋,但如果你感到吃力,或者你需要多次重复才能真正理解,请不要感到孤单。即使在处理完认知漏洞之后,扩展知识也不一定容易,但确实会带来丰厚的回报。

终身学习者

选择成为一名开发者,就是选择学习。这太棒了。我们的领域不仅重视我们的知识,而且我们可以避免无聊,因为它不会停滞不前。我的建议是把所有需要学习的东西都看成是一张自助餐桌。你可以做很多事情,可以使用很多工具。你不需要学习所有东西,而且 *没有人知道所有东西*。这可能让人感到不知所措,但试着将其看作是一段持续的旅程,而不是一场通往终点的比赛。

记住:没有人天生就什么都知道。即使是你认识的专家也是从零开始的。如果你有这个目标,没有什么可以阻止你成为他们的同龄人。或者,如果你只需要做到这一点,那就简单地学习足够的知识来完成工作。