paint-brush
无作弊代码挑战 - 我如何在 Odin 项目中幸存下来经过@codebyblazej
248 讀數

无作弊代码挑战 - 我如何在 Odin 项目中幸存下来

经过 CodeByBlazej5m2024/06/08
Read on Terminal Reader

太長; 讀書

在我的首篇文章中,我深入探讨了学习编程的起起伏伏,包括棘手的斐波那契数列和坚持的重要性。我的目标是通过分享我的经验、技巧以及偶尔嘲笑我自己的挣扎来激励和娱乐同行,尤其是那些刚开始学习编程的人。和我一起探索令人兴奋的编程世界,并记录每一步。
featured image - 无作弊代码挑战 - 我如何在 Odin 项目中幸存下来
CodeByBlazej HackerNoon profile picture

大家好,我是 Blazej。在我开始学习编程的旅程时,我就向自己保证我不会作弊。

我所说的作弊是什么意思?

在解决任何练习时,我向自己保证,在我的代码运行正常之前,我不会查找解决方案。

选择奥丁项目

我决定参加 Odin 项目,因为我厌倦了 Udemy 课程和 YouTube 视频,虽然它们无论如何都不算糟糕,但我觉得它们对我没有任何帮助。


我发现,每看一个视频三分钟后,我就很难集中注意力,思绪开始飘忽不定。不过,这是另一篇博文的主题了。

深入探究 Odin 项目

Odin 项目课程基于阅读文档和解决练习、制作项目、阅读更多文档、解决更多练习以及构建更多项目,正如您所猜测的,随着您的进步,这些项目会变得越来越困难。


一切都很顺利,直到我到达这一点:


热门作业



回文和斐波那契的挑战

我记得那是一个漫长的周末,我花了整整四天时间试图解决所有问题。前几项练习进行得很顺利,但我被回文(我最终解决了)和斐波那契数列难住了。


哦,是的……那真是太棒了。但你可能会问,上图中没有列出这样的练习,对吧?是的,但当你进入提到的存储库时,你会发现它们排在第 8 和第 9 位。


我花了很长时间才解决以前的练习,以至于我忘记了应该在哪里停下来,只是继续下去。


杀手



与斐波那契的斗争

我苦苦思索,一饮一茶。随着时间流逝,我的想法开始发生巨大变化,从“这很简单,我会做”到“可能有些地方不对,我的思维过程似乎是正确的,练习本身一定存在一些错误。也许我应该查找解决方案?”


我的几次尝试


我学习的时候,会使用番茄工作法:集中学习25分钟,然后休息5分钟。


番茄工作法正在过去,我设法达到了能够得到某种斐波那契数列的程度......但它似乎仍然不正确。


斐波那契破灭



诱惑的时刻

这时,我想,“好吧,我到了这一步,以后可能还会学到一些东西,所以我可以看看解决方案然后继续前进。”


我按照自己的想法去做了……当然,我当时想,“哦,是的,就是这么简单,而且经过深思熟虑。好吧,那我们继续吧!”

意识到错误

在斐波那契之后,有一个对象练习需要解决,我感到很困惑,因为我们在 TOP 中还没有接触到对象。

而我的猜测是对的,我错误地提前了几节课……


它只是让我确信作弊是正确的,而且我很快就会学到一些新东西,让我以后可以更轻松地解决问题。哈哈!

回到回文和斐波那契数列

几节课过去了,我花了大约一周的时间才完成,然后我又回到了回文和斐波那契。不过这一次,我有点紧张……


回文运算很顺利,然后我坐下来做斐波那契数列。这里必须提一下,当我打开练习文件时,它当然已经解决了,所以我尽量不去看代码。


我只是标记了所有内容并删除了它。但是,我记得第一行是:


 let fib = [];

最后的斗争

我开始解这个数列。但毫无进展。我决定做晚饭然后出去散步。每次离开电脑,我的大脑就会回到斐波那契数列。


我感觉 VSCode 在我的脑海里运行。我发誓,我看不到空气炸锅里炸薯条的画面,而只能看到一行行斐波那契代码(尤其是那个该死的循环和“if”语句)。


当然,有趣的感觉是,想象一些解决方案只是为了在 5 秒后意识到我已经尝试过这个,或者只是意识到 JavaScript 根本不是那样工作的!!!

突破时刻

我吃完饭就出去散步。散步一小时 = 深思一小时。我在笔记中写下了 3 个新解决方案,并且 100% 确信它们会奏效。


手机上的笔记



猜猜哪个方法奏效了。是的,你没看错,没有!我得到的还是同样的结果。那一刻,我想到在数组中添加一些东西。


我知道我需要一些东西。但在我的大脑深处,我得到的答案是:“当你删除之前解决的练习时,那个数组是空的。”我只是对自己撒了谎。

坚守我的原则

我回去阅读文档和一些文章,但我知道这次不能作弊。我已经知道作弊从长远来看没有帮助,如果我现在作弊,以后我只会面临同样的问题。


三个小时过去了。我不再沮丧了。我希望这个问题能得到解决,我想了解我做错了什么。我还觉得好像我知道这个循环是如何工作的,而且我觉得我已经尝试了每一个带有条件语句的配置。

寻求帮助

我脑海中唯一的解决方案是通过 Discord 频道寻求帮助。


请求帮助


请…



我的大脑放弃了



耶!



谢谢你!!!



解决方案和经验教训

我解决了!!!!看,我必须将值放入该数组中,并在循环之前提取条件。这正是我的大脑在 10 多个小时前告诉我的。


但因为我已经看到了一点解决办法,所以我一直欺骗自己不要这么做,相信它会有所不同。呃。


解决方案!



结论

我在这一天学到的第二个教训当然是寻求帮助。但我强烈建议每个人都阅读文档并尝试自己解决所有问题,尤其是在他们仍在学习的时候。


在这个过程中我学到了很多东西并且相信我不会再犯同样的错误。


现在,我更愿意尝试其他练习。我现在对这个过程很熟悉了!