Advent of Code 2025:与谜题一起醒来

发布: (2025年12月14日 GMT+8 01:51)
6 min read
原文: Dev.to

Source: Dev.to

为什么我参加 Advent of Code

Advent of Code 已经成为我每年的固定活动。它是保持我的算法和数据结构技能锋利的方式,也是我每年十二月期待的事。多年来,我利用它学习新编程语言——我曾用 Elixir、Java、TypeScript 等语言完成过题目。最近几年,包括今年,我一直坚持使用 Python。

对我来说,Advent of Code 的另一重要部分是社区:与同事分享解法、在社交媒体上发布、以及看到别人是如何攻克这些谜题的。这种互动往往是整个活动最有趣的地方。

我的规则

我总是尽量走得更远,但我有一条规则:我应该能够在当天发布的谜题上完成解答。经验告诉我,让谜题拖延太久会占用过多时间,最糟情况下甚至会支配我的生活。今年的形式——只有十二天而不是常规的二十五天——在完成谜题后为十二月提供了呼吸的空间。

早晨例行

在 Advent of Code 期间,我的早晨遵循相当固定的流程。谜题在我当地时间上午 6 点解锁,这给我大约一个半小时的时间在上班前完成。 我常说 Advent of Code 是最好的闹钟。解一道题能让你快速清醒,并且恰好配合我的咖啡时间。与此同时,这个活动有时也会侵占我的睡眠,这也是今年更短的形式对我有帮助的另一个原因。幸运的是,我们有一个周末(第 6 天和第 7 天)让我得以补觉。

写博客文章

今年我为每一天都写了一篇博客。写关于谜题的文章大大提升了我对它们的理解——在我能用文字解释一个解法之前,我必须先真正弄懂它。教学和解释本身也会促使你学习。在写文章的过程中,我一直在纠结该写些什么:完整的谜题故事还是仅仅核心的算法思路?最终,这些文章在两者之间找到了平衡,兼顾了两者。

挑战性的一天

有些天相当艰难。第 9 天,需要把形状相互嵌套;第 10 天涉及整数规划——这是我以前从未实现过的——尤其突出。这正是 Advent of Code 的意义所在:通过实现新事物来学习。在这些更难的日子里,我改用已有的库,而不是从头编写所有代码。我并不介意;作为软件开发者,我经常使用库,只要我理解其工作原理以及算法的整体步骤。

AI 辅助

我也有意识地加入了 AI,主要是 VS Code 中的 GitHub Copilot 集成。我想看看在与 AI 合作的情况下,我能写出多少代码,利用它来推荐库或编写小的辅助函数。对我而言最重要的规则是必须理解所有生成的代码。以这种方式使用 AI,感觉它不像是捷径,而更像是一个思考工具——一个可以对话、讨论问题的开发者伙伴。

轻松的日子

也有一些相对轻松的日子。例如第 11 天,是一个相对简洁的图论问题,我很快就找到了答案。回想过去我在这类问题上曾经的挣扎,这样的时刻清晰地展示了我的成长,也让我感受到现在处理这些问题的轻松感。

反思

回顾整个 Advent of Code 2025,它为我确认了许多事情:

  • 解释事物仍然是我学习的重要方式。
  • 在合理的情况下,我乐于使用工具和库。
  • 明确的边界——比如更短的活动时长以及在当天完成谜题——帮助保持 Advent of Code 的乐趣,而不是让人感到压力。

最重要的是,我仍然喜欢在十二月清晨醒来解谜。这大概是我年复一年坚持参与的最佳理由。

Back to Blog

相关文章

阅读更多 »

从算法到冒险

《From Algorithms to Adventures》的封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-...