当学习一种新的编码语言时,大量的在线资源可能是压倒性的。 对于编程新手来说,各种各样的StackOverflow交流,免费教程,youtube视频,MDN文档和代码挑战网站可能会令人生畏。 关于学习一种语言的最佳方法和特定资源有很多不同的意见,但总的来说,许多人最终会同意一门可能的课程的巨大好处-用新语言简单地构建某种东西并参与其中以创新和有机的方式展示其工具,挑战和优势。
我进入编码和学习我的第一语言的第一步就是使用Codecademy,该网站提供有关不同语言和框架的许多免费课程。 Codecademy在教授语言的语法和基本原理方面做得非常好,但是并没有比这更深入,总的来说避免了语言的意图和潜力的更广泛范围,以及避免任何形式的深入研究语言的实际专业实现需要什么。 很高兴向我介绍了基本编程的外观,但它从未真正为困难的实践提供任何好的机会。 因此,我在他们的课程中会学到的东西并没有真正使我记忆犹新。

然后,我决定在Learn.co上尝试Flatiron训练营的预备课程。 我真的很喜欢课程的累积性和苛刻性,感觉就像我正在努力使用其所介绍的材料来提高自己的水平一样。 我已经在Flatiron学校学习了JavaScript备考课程,为期数周,并且达到了可以创建一个简单的JavaScript游戏“ Rock Dodger”的地步。 游戏的操作很简单-您可以使用左右箭头键控制“躲闪者”,以免与顺着屏幕层叠的岩石元素发生碰撞,但是代码的实现非常棘手。 这是在比以前更复杂的程序中处理事件和实现控制流的好练习。

虽然我能够启动并运行该项目,但我仍然感觉不到要真正使用我一直在阅读的新工具。 该项目有很多入门代码,并且绝对可以将其引导至控制游戏流程的各种功能的理想实现样式。 为了更自由地了解类似材料,以便更深入地了解工作原理,我决定扩展Rock Dodger背后的一些功能,以开发自己的语言以及与HTML和CSS交互的方式。 为此,贝尔文特诞生了!

游戏从Rock Dodger的开始方法中汲取了很多东西,但目标是通过许多新方式扩展其功能。 在游戏中,玩家在屏幕上移动熊图标,尽最大努力吃掉尽可能多的蜂蜜,同时避免数十名猎人穿过森林。 为了实现游戏,我通过程序流程解决了不同功能之间的相互作用,以及引导游戏玩法和/或使其停止并完全重置初始条件所需的不同条件。 我渴望让元素随机弹出,让熊往任何方向移动的目标,以及通过获取更多的蜂蜜和躲避猎人而呈现的两种不同形式的“碰撞”,都使我走上了不同的道路,使我面临着不同类型的DOM的动态操纵,用于特定目标的更好,更清洁的方法,并促使我将功能捆绑在一起,以使游戏顺畅而逻辑地运行。 这使我花了很多时间来搜索和挖掘文档,花大量时间在stackOverflow上,研究不同人员针对不同问题的创造性解决方案,当然,很多情况下,实际上并不能真正找到我目标的精确提示,并且不得不将不同的知识组合在一起,形成我自己的直观解决方案。 考虑到一个有趣的想法,我想以自己的方式进行构建并反映自己的风格,这也使我非常在意其表示,并促使我更深入地参与CSS和HTML。 我还努力使用实际的git flow开发项目,在新分支中创建新功能,并且只有在对它们的功能充满信心之后才将它们合并到主项目中,这是一种很好的习惯,习惯了GitHub,以确保项目安全避免任何永久性错误或错误的代码路径。

在没有通常的测试和教程指导的情况下进行项目工作的方式仅仅是破解我的方法。 现在回头看代码,我可以看到它是多么杂乱无章。 我可以看到不必要的代码,对变量范围的理解不清反映在我的变量声明中,与DOM交互的直接方式以及初学者犯下的其他一些非常常见的错误。 源代码本身绝对很粗糙。 但是,目标更多是让自己对语言及其交互作用的可能性敞开心open,并让自己处于一个可以快速,广泛地尝试和即兴创作新想法的空间。 它帮助我学习了正则表达式,jQuery,以及我在研究中遇到的许多真正有用的新JavaScript方法,并为我介绍了这种高级方法以及对开发人员所遇到问题的看法。我在JavaScript博客和StackOverflow上看到的建议。 由于我遇到的所有问题,以及当下的最初不理想的做事方式,当我后来深入研究我所接触的概念时,我有了一个参考框架,我可以利用这些经验来使自己的技术比以前更加有效。 最后,Bearventure是一款功能性游戏,但更重要的是,它提醒我自己一种学习新技能或新语言的非常有益和重要的方法; 直接参与具有挑战性和乐趣的项目。