有时候,你必须去做该做的事

Lobsters Hottest 新闻

摘要

这是一篇关于学习 Rust 编程的个人反思,强调了克服完美主义、拥抱编程和写作中迭代创作过程的重要性。

<p><a href="https://lobste.rs/s/ry92nr/unfortunately_you_sometimes_need_do">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/08/21 18:58

# 有时你必须硬着头皮去做 原文链接:https://griffinberlste.in/blog/do-the-thing/ 在这篇文章中,我漫谈创作过程,并分享一些学习Rust代码(或其他任何编程语言)的建议。 --- 在我的研究中,我很幸运能编写大量代码。过去几年主要使用Rust,我非常喜欢这门语言,但它也以难学著称。那么,你该如何学习Rust,或是任何其他需要创造力的技能呢? 和许多人一样,我深受“完美主义心魔”困扰,这常常导致事情难以推进。这种心理麻痹效应在初期尤其明显。比如我现在从事的文字工作——将意识中翻腾的思想汤汁提取出来,用语言精准呈现,这个复杂混乱的过程总让我轻易感到沮丧。这种挫败完全源于一个认知:眼前成品并非我心中所想。它要么缺失某种本质的真实,要么显得自命不凡,要么需要读者具备文本未提供的前置知识,或是其他种种不可避免的存在缺陷。 这是无法逃避的现实。无论你创作什么,它几乎总能以某种方式改进,哪怕只有你自己能察觉。而一旦屈服于这种打磨优化的冲动,最终往往一事无成,甚至无法开始。最完美的版本只存在于想象中;遗憾的是,那个版本永远无法在现实中存在。 我的应对思路是:大脑本质上是懒惰的——或者说高效,取决于视角——对技能采用“用进废退”机制。不幸的是,这意味着你必须去做想学的事,而且初期必然做得糟糕。这确实让人沮丧。如果光靠深度思考就能掌握技能该多好。但我认为,若果真如此,艺术的吸引力将会大打折扣。 将创作行为拆解到最基本要素,无论艺术还是代码创作,通常遵循以下流程: 1. 从创意碎片开始 2. 尝试实现 3. 评估成果 4. 持续改进直至“足够好” 而根据我的经验,我的失败模式往往是:刚完成最微小的创作,就急着跳转到评估阶段。当作者尚未完成表达时,很容易戴上编辑的滤镜——因为创作本身往往充满挑战。虽然优质批评很难,但挑刺却很容易。这种失败循环通常表现为: 1. 有个想法 2. 做了*一点点* 3. 陷入思维漩涡 4. 干脆去刷网页 5. 暗想“以后再处理这个项目。一定。” 但关键在于:在完成第一版草稿之前,你几乎不可能真正理解自己正在创造什么。这点对写作和代码开发同样适用。在尚未把握作品形态——而非仅仅感觉——之前,批评大多具有麻痹性,它用“能带来改进”的承诺诱使你停滞不前。 换句话说,理解作品存在两个必要层面:宏观与微观。前者是整体愿景、大目标、核心方法;后者是实现愿景所需的具体工作,以及处理现实复杂问题的琐碎操作¹。宏观视角*必然不完整*,必须通过微观实践获得的认知不断修正。认识到这一点,我们才能取得实际进展,避免因宏观认知与微观实践冲突而气馁。如此,两个层面形成循环:实践优化宏观认知,宏观认知指引实践以防迷失细节。 这听起来越来越像自助哲学了。恶心。 说点实在的:如何学习Rust编程?简言之,我建议先至少通读《Rust程序设计语言》²的前几章,然后立刻开始写代码。做个简单的小项目实现任何你想尝试的有趣功能。可以试试rustlings³,甚至跟随这些教程⁴。网上有大量教学资源⁵,我相信总有一款适合你的思维模式。 但请记住:永远要亲手写代码。看代码时轻易觉得“我懂了”,却并未真正理解或记住——这种情况太常见了。顺带一提,这也是我认为LLM是学习编程极差工具的原因,尽管我承认自己对此类技术确实偏悲观⁶。 你写的代码很可能一开始无法正确运行、无法编译,或令你抓狂。这完全正常。你没有做错任何事。你需要深入细节泥潭,与之缠斗,才能真正掌握它。**不幸的是,你必须硬着头皮去做。**但幸运的是,代码可以运行验证,无需主观分析!能运行的烂代码依然是代码⁷。而这往往是写出优质可运行代码的第一步。虽然技术债务真实存在,但在初学阶段通常无需过度担忧。 先做出东西,再考虑如何优化。

相似文章

用 Rust 重写

Hacker News Top

本文评估了2026年的‘Rewrite It In Rust’运动,讨论了现实世界中的性能提升、诸如新错误和平台支持等挑战,并提倡增量重写而非完全重写。

Rust 中的进行中工作

Lobsters Hottest

本文介绍了一种在 Rust 开发过程中延迟错误处理的技术和库,允许开发者临时将错误降级为警告,从而在保持正确性的同时维持生产力。

把事情做完

Lobsters Hottest

一篇个人博客文章,反思完成项目的困难、放弃年度计划,并转向简单的实体项目清单。

正念编码:目的与意图

Lobsters Hottest

一篇鼓励开发者以清晰意图编写代码的文章,认为命名困难往往揭示了抽象设计的问题,并指出理解代码的“为什么”与“是什么”同样重要。