成为一名摄影师
摘要
Stanko 反思了 DHH 在 Rails World 的主题演讲以及编程的未来,认为 AI 之于程序员,就像相机之于画家——他还分享了与 Rob 和 Jason 一起用 vibe coding 方式开发 HEY CLI、TUI 和 SDK 的经历,这让他意识到:专业能力依然重要,但想象力如今才是真正的瓶颈。
<p><a href="https://lobste.rs/s/svjojg/becoming_photographer">评论</a></p>
查看缓存全文
缓存时间: 2026/10/05 09:10
# 成为一名摄影师 - Stanko
来源:https://stanko.io/becoming-a-photographer-tIKMwUVuHnHG
上周,编程的未来似乎是大家都在热议的话题。我的朋友们在讨论,我关注的人在讨论,我自己也在思考。随后 David(DHH)在 Rails World 的主题演讲 (https://www.youtube.com/watch?v=vDjW_dRyKXY) 更是给这场讨论火上浇油。
他的演讲对我来说并不意外。Rails World 期间,我刚用 Rust 重写 HEY 第一周。而 "Pencils down" 只是把我们几个月以来的工作方式正式确立了下来。(https://www.jorgemanrubia.com/2026/08/23/oh-my-craft/)
**David 说得对。** 无论喜欢与否,我们程序员,就像曾经的画家一样,正在慢慢消失。AI 就像相机一样,彻底改变了游戏规则。你可以为此闷闷不乐,也可以拿起相机,开始学习,成为一名摄影师。
我今年最喜欢的照片,摄于索查河谷(Soča Valley)的一个傍晚
### 完美的融合
我曾对 AI 和 vibe coding 持怀疑态度。我最初的尝试效果并不好 (https://stanko.io/clean-air-ai-AHcddmIf21lt)。那些 agent 需要大量的人工引导才能产出像样的结果。但模型的进步速度快得惊人,我也越来越擅长使用它们,了解它们的局限,学会了如何表达我的意图。
对我来说,这种新工作方式的第一次真正考验是 HEY CLI (https://github.com/basecamp/hey-cli)。
Rob (https://www.zolkos.com/) 和我用了大约一周时间搭建了它——包括 CLI、TUI (https://www.hey.com/agents/)、配套的 API、SDK (https://github.com/basecamp/hey-sdk) 和 ActionCable 客户端 (https://github.com/basecamp/actioncable-client)——那段时间他在旅行,而我还在为 Basecamp 发布并打磨一个重大的定价改动。这完全是 vibe-coded。除了最初的项目设置,没有任何人看过代码里的那些细节——而它真的能用!
在那个项目里,某个东西突然开窍了。**我突然意识到,现在我唯一的限制就是我的想象力。**
Jason (https://jasonzimdars.com/) 在那一周的晚些时候加入,把我们程序员式的"艺术"变成了令人赏心悦目的东西。他只用了一天就做到了——在一个完全陌生的媒介(ASCII 艺术)、一门他不会的编程语言、一个从来没有人读过的代码库上。
这让我开始思考:*"也许我可以设计日历?"*
我对日历 TUI 最终的样子有一个构想,所以我决定试一试。
设计日历的过程充满挑战。中间有死胡同,有被放弃的想法,但我最终完成了,我对结果非常满意,而且我作为设计师也升级了。
我的编程技能在过程中帮了我大忙。我能看出哪些行不通,并引导 agent 找到更好的解决方案。我不需要自己写代码,但理解软件的工作原理仍然让我更擅长得到想要的结果。设计也是如此。我对排版、布局和终端界面了解得越多,能想象的尝试就越多。
**AI 移除了速度限制,但没有移除我想象力的限制。** 你知道得越多,能想象的就越多。
以前被严格定义的角色之间的墙已经倒塌了:程序员、运维、设计师、QA、移动端、Web。这并不意味着专业知识毫无用处。恰恰相反。我多年来学到的很多东西都派上了用场,帮助我看到原本不会注意到的可能性、问题和取舍。Merlin Rebovic 做过一个关于这个话题的精彩演讲 (https://www.youtube.com/watch?v=mb45bFqiILk)。
但今天,对每样东西都略懂一些,比只在一两件事上精通,能走得远得多。每一项新技能都给你另一种思维方式,另一套你知道该去关注的东西,最重要的是,给你更多可以想象的事物。**未来需要的是更均衡的技能融合。**
### 最终的卓越
如果我告诉你,上面那张照片是从五张里选出的第三张,你会怎么想?这会损害照片的价值吗?因为不是第一次拍就完美、因为前后还有另外两张照片,它就被玷污了吗?
当然不会。没有人看着一张照片会问:"好吧,你拍废了多少张?"
拍虚的照片、不同版本、反复的尝试,都是过程的一部分。需要品味才能挑出最好的那一张,并把它打磨完美。
和 agent 合作也是如此。
我们过去会把一个想法变成代码,然后一丝不苟地把代码打磨到卓越,再发布出去。每个想法都必须证明自己的价值;每一行代码都必须值得花在编写和思考它上面的时间。**过去写代码很贵,但现在不了!**
现在我可以在几分钟内把一个想法变成真实的东西,玩一玩,感受一下,然后继续迭代或者直接丢弃。第一次尝试很可能很烂。这没关系。每一次尝试和迭代都让我学到了一些东西,知道下一步该往哪走。
会有失败的开头,会有钻进去出不来的兔子洞,会有 bug。会有东西从缝隙中溜掉。**卓越不一定在第一次尝试时发生。它可以是最终的。**
我过去证明一个想法所需的时间,现在可以尝试五个想法。其中四个可能行不通。但就像那些你从未见过的四张照片一样,这不会减损那张成功的照片。
**目标仍然是卓越。我们只是不再需要在每一步都达到卓越了。**
### 土木工程师算不算在做工程?
如果我不再亲自写代码,我到底在做什么?如果你思考这个问题,让我再问你一个问题:土木工程师算不算在做工程?
我妈妈是一名土木工程师。我有大量关于她在那张巨大的绘图桌前的记忆——铺着宣纸,摆着尺子、钢笔和美工刀——为人们设计住宅。她用她的笔挖沟渠、排钢筋、砌墙、选定混凝土的类型,而从未拿起过一把铲子。她是在做工程。她在用严苛的约束解决困难的问题。别人拿起铲子、切割钢筋、搭起模具、浇筑混凝土,这并不能否定她做的这一切。
**所以,不要把写代码和工程混为一谈。**
随着 agent 负责浇筑混凝土,我们现在可以专注于整体。不只是如何实现它,还包括如何设计它、测试它、部署它、让它变得可访问、将其带到其他平台、发布公告、推广它、以及为它收费。我们不再只是设计墙,而是设计住宅。
程序员会消失,但做软件工程这件事不会。它会演变成更广的东西,变成有点像全能型的东西。**我们必须成为制造者。**
### 结语
拿起相机并不会让你立刻变成摄影师。我们大多数人都随身揣着一台出色的相机,却很少有人真的擅长使用它。
如果你只拍了一张照片,和拍摄对象一比,就下结论说"这也太烂了",那并不一定说明相机不行。你需要学习如何使用它。了解它的局限,以及如何克服这些局限。
摄影也是一门技能。它需要练习、探索和打磨。
就像 19 世纪的画家一样,我们正处在未知的领域。没有人真正知道自己在做什么,甚至不知道擅长摄影意味着什么。我们都在探索这个新的空间,试图把事情搞清楚,只是有些人比另一些人成功一些。
要弄清这一切的走向,只有一种办法:**拿起相机。**
相似文章
放下铅笔,睁大眼睛:Rails 开发者在 Rails World 之后
本文回顾了 DHH 的 Rails World 主题演讲,讨论了 AI 代理对编程的影响,并强调了软件开发中自动化与开发者理解之间的平衡。
Rails World 2026 Opening Keynote [video]
本主题演讲通过摄影技术革命的历史类比,探讨AI对编程的深远影响,并展望Rails社区在AI时代的新机遇与挑战。
@kentcdodds: 开始有这种感觉了
Kent C. Dodds 同意 DHH 的观点,认为 AI 模型擅长架构等任务,而不仅仅是代码编写,挑战了从编码中退缩的想法。
从编码者到策展人
André Staltz 反思了从手动编码到 AI 辅助开发的迅速转变,认为工程师的角色将从构建者演变为决定什么值得构建的策展人。
DHH 采取了“放下铅笔”的策略。现在,“AI 无法编码”这个说法还站得住脚吗?
DHH 透露,37signals 已经大范围转向使用代理进行 AI 辅助编码,增加了代码产量,并对 AI 在实际编码任务中的有效性的持续辩论提出质疑。