学习策略

有很多方法可以学习编程,还有更多的策略和技术可以使用。

根据我的经验,我列出了最有效的策略。 我在此列表中添加了不同的技术,以及使用不同策略的逐步指南。

您的个性和喜好将决定您要选择哪种策略,但是尝试我建议的一些策略,尽管起初并不自然。 谁知道,有时候您只需要一种新的做事方法即可。

自然,此列表不会涵盖所有策略,因此请随意尝试并根据您的工作方式添加/删除步骤。

闪存卡和彩排

使用Brainscape或其他一些闪存卡应用程序是构造和内部化新知识的好方法。 当然,您可以使用传统的笔和纸方法实现相同的效果。 但是,我的经验告诉我,使用移动或桌面应用程序会更容易。

战略:

  1. 保持记事本打开,并在遇到问题,概念或事实时将其记录下来。 不要制作抽认卡,而是在记事本中写下问题和答案。 在每个工作日结束时,在抽认卡应用中写下当天的所有笔记。
  2. 根据主题创建所有抽认卡的主列表。 尽量减少抽认卡收集。 您可以将它们划分为Ruby on Rails或JavaScript之类的语言或框架。 但是,请勿进行数组或方法之类的细分。 这样做的原因是,演练应针对整个语言或框架而不是小节。 抽认卡列表应为不断添加卡片的实时文档。 如果您保留小节的内容,将很快成为一个麻烦,只是记住要在哪里添加或编辑卡片。
  3. 每天至少两次检查您的卡。 进行排演的最佳时间是早晨的第一件事,而不是检查您的邮箱(无论如何应在办公室进行)。每次都要经过几张卡片,每次10-15。 如果您使用Brainscape,它将自动向您显示您需要练习的卡片。 而已。 每天排练并添加卡片。 我从这个策略开始,因为它可以帮助您轻松理解一个主题。

沿代码

这是一个非常有趣的策略,特别是对于需要尽可能多地编码的初学者以及支持和经验有限的初学者。 这对于在项目组合中添加项目也很有好处,您可以在其中向潜在的雇主展示您的项目。

战略:

  1. 转到Youtube并搜索“ clone”,您将找到大量指南和教程。 如果我搜索“ ruby​​ on rails克隆”,则第一个结果是“构建Pinterest克隆”。
  2. 采取步骤,并按照整个过程进行操作,并按照指导构建应用程序
  3. 仅以您的书面代码作为参考来重新创建应用程序。 尝试执行几次。 如果您在理解结构,逻辑或概念时遇到特殊问题,请重写零件

部署迷你应用程序

并非所有的应用程序都必须是具有复杂功能的宏程序。 为了开始和完成项目并掌握DevOps的部分代码,请创建并部署小型应用程序。 此策略很好地发挥了整个过程的作用。

战略:

  1. 使用测试框架设置整个应用程序
  2. 仅创建一项功能,例如基本的待办事项应用程序或投资组合页面
  3. 通过Heroku或AWS尽快进行部署

从内存输入

如果您想了解特定代码位的逻辑和语法,则可以使用此策略。

战略:

  1. 查找您难以理解的少量代码。 (好的资源是GitHub上的公共仓库或官方文档)
  2. 阅读代码并尝试重写它,而无需参考参考
  3. 一遍又一遍地做

用代码解决日常问题

要写购物清单吗? 为什么不创建包含不同项目的数组? 进行基本计算? 不要使用计算器,文本编辑器或控制台。

战略:

  1. 列出日常常见问题的清单,例如计算,清单,提醒等
  2. 写下一些可能的方法来使用编程来解决这些问题,例如
  3. 购物清单=写入阵列
  4. 计算成本=使用IRB
  5. 在需要时应用这些解决方案

保持专注

关于该主题的书籍很多,并且有许多策略和技术可以实现这一目标。 如果您在尝试学习时无法保持专注,那么您应该专注于建立“专注习惯”。

战略:

  1. 工作时请保留一个记事本,写下所有随机想法,完成会话后仔细阅读这些注释。
  2. 尝试集中精力或学习时,请坐在同一地点和同一时间。
  3. 确保关闭所有干扰功能(智能手机,通知等)
  4. 提前计划如果您分心了该怎么办
  5. 如果饿了就准备些零食
  6. 确保您穿着舒适的衣服
  7. 开始之前先去洗手间
  8. 尽可能长时间地工作,并跟踪每个会话的工作时间。 尝试每天增加这个数字几分钟

保留编码日记

对于更多的中级编码人员,最好保留一份日记,在其中记录您一直在使用的功能,以便将来为以后的项目牢记这些功能。

战略:

  1. 保留指定的编码日记
  2. 写下以下问题:
  3. 我今天在做什么?
  4. 使用此功能时,主要问题是什么?
  5. 如果我要再次执行此操作,我将如何更改?
  6. 将来我如何在其他项目中使用它(至少有两个示例)
  7. 在每个工作日结束时写上您的编码日记
  8. 每个星期结束时通读日记

使用费曼技术

费曼(Feynman)技术受到youtube剪辑的欢迎,指出理查德·费曼(Richard Feynman)使用该技术可以快速掌握和学习新的概念和思想。 如果您想掌握概念并填补知识空白,则此技术很好用。

战略:

  1. 选择一个主题,并将其作为标题写在一张纸上。
  2. 用简单的文字写下对主题的解释,即
  3. 请勿使用技术术语或复杂的用词
  4. 尝试使用现实生活中的例子
  5. 仔细阅读您写的内容,然后尝试向虚构的学生解释
  6. 询问有关细节的问题,并注意任何知识差距
  7. 复习教科书和文档,找到知识差距的答案
  8. 重写说明
  9. 一遍又一遍地做,直到您对概念有了很好的理解

教别人如何编码

这是非常容易且有趣的练习,当初学者入门时效果最好。 它建立了信心,是加深对编码的理解的好方法。

战略:

  1. 编写一个简单的程序,例如“ hello world”或其他更高级的程序
  2. 寻找可以教的人
  3. 有参考资料,如文档和您的代码库
  4. 让您的学生与您一起编写程序,指导他们的每一步
  5. 更正错误,并确保在卡住时参考材料

使用助记符

使用助记符记住事情可以追溯到上古。 在线上有书籍和课程,您可以学习如何自学,从一副纸牌到复杂的算法。

我们将研究一种更简单的方法来使用助记符,主要是单词助记符。

战略:

  1. 确定要记住的内容,例如Ruby中的操作顺序
  2. 写下顺序和操作括号,指数,乘,除,加和减
  3. 下划线标出操作P的首字母N,代表,弹性,多,Divide, A dd和S tract
  4. 用第一个字母创建单词,然后尝试将它们组合成一个令人难忘的句子,例如: P租赁用法用法助手

使用主脑图

心智图是通过映射知识的不同领域并同时查看模式和不同领域如何连接来巩固您的知识的一种好方法。那里有很多关于心智图的软件非常不错。 但是,我建议您手动制作心智图,以某种方式使事情变得更好。 确保使用颜色和图像。

战略:

  1. 拿出一大张纸,在中间写下您要处理的主题
  2. 从中心向外添加线条,每条线条代表主题的特定部分,请确保在自然想到的时候添加主题行,而不是从书本或某些指南中添加线条
  3. 主题行与相关主题的分支
  4. 浏览整个思维导图,并添加参考资料中缺少的主题和主题
  5. 绘制图像并为主题行着色,以方便记忆(请勿跳过此部分!)

不断提问

学习编码时,提出相关问题是关键。 在大多数情况下,观看视频教程或讲座时很容易流失。 我经常推荐我在大学时尝试遵循的复杂数学问题的这项技术。

策略

  1. 尝试查找有关该主题的所有内容,为演讲做准备。 您可以为此使用费曼技术
  2. 准备好记事本以写下随意的想法,并在需要时在其中写下
  3. 尝试跟随讲课,并不断问老师下一步将做什么?
  4. 当讲师按照您的预期做时,给自己一个肯定,例如“好,我明白了”
  5. 如果讲师做一些意想不到的事情,或者您忘记了某个步骤,则将其写下来并继续聆听
  6. 演讲后仔细阅读您的书面笔记,并修改费曼笔记。
  7. 如果是视频讲座,请再次进行尝试,并尝试预测下一步。 如果是现场讲座,请教员对缺失的部分进行澄清或确认您写下的步骤

编码片

编码katas非常适合扩展您的知识并获得一些解决问题的练习。

katas是您需要解决的小型编程问题。 程序员可以使用许多Kata网站,而Google的快速搜索将为您提供大量选择。

程序员喜欢或不喜欢编码kata。 我喜欢编码kata,因为它们迫使您离开舒适区。 如果做得正确,他们可以通过强迫您以某种方式思考和完善问题解决能力来提高您的技能。

战略:

  1. 选择一个kata来解决
  2. 写下问题并列出解决该问题所需的要求清单
  3. 按照您认为需要解决的顺序排列需求
  4. 写下每个需求的潜在解决方案
  5. 开始使用您的解决方案进行编码
  6. 如果解决方案失败,请在互联网上搜索新的解决方案,然后再次进行检查

速度编码

这是练习和游戏学习经验的好方法。

速度编码基本上是为了尽快完成问题集并跟踪完成问题所花费的时间。

战略:

  1. 找到一小段您想加快编码速度的代码,例如fizzbuzz,剪刀石头布或欧拉问题之一
  2. 对程序进行整体编码,并记下解决问题所需的每个步骤
  3. 设置计时器,启动计时器并尽快开始编码
  4. 尝试在时间用完之前完成程序
  5. 重做该过程,直到您可以在指定的时间内完成程序

最后说明:

这份清单并不全面,请随时尝试和修改策略!