这篇文章大致标志着我开始Udacity的Front Web开发者课程一周年。 我已经在Free Code Camp上度过了几周的时间,并且拥有开始所需的所有工具,或者我想。
原来,我需要的重要内容不是Codepen,Github或我的文本编辑器。 相反,我所采用的学习方法最能决定我在课程中的表现。 尽管这对所有学习都是正确的,但我认为对于在线自动学习这是双重的。
“第一个原则是,你绝不能愚弄自己,而你是最容易愚弄的人。”-理查德·费曼(Richard Feynman)
以下只是我去年在尝试自学编程和前端开发时犯的一些错误。 而且,如果您正在通过MOOC学习,我强烈建议您参加短期课程“在Coursera上学习如何学习” ,以找出自己的实践中可以改进的领域。
我在线学习的第一件事就是努力应对Javascript算法挑战。 我喜欢解决问题,而Free Code Camp的游戏化本质确实使我兴奋不已,当然我学到了很多关于方法和语法的知识。
实际上,有时候我做不到的是放弃。 当问题困扰我时,我要么采取了散弹枪的方法,要么尝试尝试不同的方法,直到出现任何东西单击,或者有几次我查看了解决方案。 学习时,前者很少是一个好主意。
同样,我不应该太害怕退出,看着答案然后继续前进。 这样做确实会最终教会您该练习的目标,前提是您可能在一旦了解了有关相关主题阻碍进度的更多信息后便记下了返回本主题的笔记。
另一方面,在我的第一个个人项目中,我真的很想让一个完整的堆栈应用程序运行。 无论多么基础,我都只想运行一个可以调用自己的完整应用程序。
我选择了一个使用Node.js,Express和MongoDB的简单数据库输入系统,该系统允许用户使用HTML表单在系统中输入名称,然后在单独页面的表中返回列表。
尽管这是自上而下学习的一个很好的例子,但从一个大创意开始,然后将所有部分付诸实践。 如果我抽出时间了解某些不同的技术是为什么设计的,那我将受益匪浅。
我对Express的灵活性进行了假设,并错过了使用NPM的Request包时了解更多有关HTTP标头的机会。
构建事物是学习事物的好方法,但不必是完整的应用程序。 如果在开始项目之前无法轻松地写出有关将要使用的组件的句子,那么您可能很难在更广泛的上下文中使用它们来学习有意义的东西。
缩减雄心壮志,使用一些您已经熟悉的事物,也许是一件新事物。 因此,如果它是网页,并且您已经知道HTML / CSS / Javascript,则可以添加一个新的前端框架,例如Foundation。
我有点强迫性,尤其是在观看视频内容时。 当我开始在线学习时,这导致笔记本上满是这样的页面。


这主要表明我既惯用左手,又是绘制箭头的忠实拥护者,并且告诉我有关Java语言功能的闭包的知识少得多。
当我仍然沉迷于强迫性时,我会尝试并建设性地去做。 随手拿起我的笔记本,我会记下简单的短语,即使这样我也只能说出它们对我理解当前主题或整个编程/技术主题至关重要。
然后,如果在课程材料中对它们进行了适当的说明,我将尝试为它们编写自己的定义。 如果我不记得或没有完全解释,我可以将该词写在一张学习卡上,以备以后参考。
该实践利用了其他强大的学习方法。
- 回想一下,研究表明,重新阅读并尝试将现有知识转化为大脑的效果有限。 取而代之的是尝试从内存中调出信息,然后写下来以帮助嵌入想法。
- 重要的主题可能会在科技领域兴起。 为了避免感到不知所措,重要的是尽可能地分解事物。 通过以这种方式做简短的笔记,您可以跟踪很多事情,而不会集中精力。 一旦您开始真正掌握某些信息,就可能需要绘制它们之间的关系图。 但是,在您的研究中过早进行这种思维导图并没有什么好处。
- 交织,这有点违背我的本性,因此我没有做太多尝试,但这意味着它是一种强大的学习技术。 通过将学习分为不同的主题,可以提高长期记忆力和解决问题的能力。 与在类似情况下进行操作相反,您对当前部分所做的操作可能会使您成为新的简短笔记,成为完成该主题的理想选择。
一直努力应对挑战和教程会很有成效,但重要的是要真正反思您用来保留所有这些新信息的方法。
只有经过一年的深入学习,我才可以考虑所有我已经忘记的东西(您好,ES6生成器!)和卡住的东西。 继续使用上述技术以及我从“ 学习方法”中学到的其他技术,我希望自己对自己更好。