味道是唯一剩下的
在我大部分的编程生涯中,最困难的部分是让事情存在。你有一个想法,而在这个想法和一个可工作的程序之间,有时需要输入数小时——有时数周——的代码,查阅手册,误解API,并且缓慢地将错误的版本磨成稍微不那么错误的版本。生产是那个障碍。每个人都碰到了它。这是将能够实现的人与只能谈论它的人分开的界限。那个障碍现在不复存在。或者说,它已经被租出。你现在可以描述一件事情,并在你能够手动输入第一个函数所需的时间内获得一个看似合理的版本。想法到产物的距离,也就是定义整个工艺的那个距离,已经缩小到几乎为零。不过,你没有被警告一个小事:你通过学习攀登那堵墙而建立的价值并不会消失。它在移动。墙消失了,我们不停地问机器是否有用。这是个错误的问题。输出已经足够好——这就是问题所在。足够好是一种溶剂。它溶解了追求更好的理由。只要制造东西的成本高昂,这种成本就会在我们的努力下静静地发挥作用。它限制了产出。这意味着任何存在的东西,至少在最小程度上,经历了制造的成本。你懂我意思吗?努力是一种过滤器,和所有过滤器一样,它在被去掉之前是看不见的。没有人会发出一千种平庸的特性变体,因为一千种平庸的变体成本是一个的千倍。经济学强制执行了一个底线。底线现在没有了。当底线消失时,决定什么是值得保留的东西不再是制造它的成本,而是你。你自己的判断。当你看着三种看似合理的相同功能版本时,你就能以某种方式知道其中两个是错误的。这个判断有个名字,我们在工程圈子里稍显尴尬地使用它,因为听起来软弱、不可验证且略显贵族气息。品味。品味究竟是什么 我想在这里小心一点,因为“品味”在这里承载了很多内容,很容易被解读为装饰。一个偏好的问题。你喜欢你的括号在同一行。这不是我的意思。罗伯特·皮尔西格在一本书里围绕一个他拒绝定义的词打转,因为他让自己相信,定义它会扼杀它。他称之为质量。他的论点大致是,你在能解释之前就会认识到质量——这种认识是在前面的,而理由是事后才到的,如果它们到的话。一个好的机械师会在知道为什么之前就知道发动机是错的。一个优秀的编辑在能命名出失败的从句之前就能感觉到句子的沉重。品味就是这样的。它是你比能够理性辩解更快得出的简洁、无言的判断。这是你对自己毫不妥协、没有任何论据的“又不行”的回应。它一点都不软弱。它是工作的最难之处,因为这是唯一一部分从一开始就不是机械的。判决之后的一切——打字、语法、一个库与另一个库之间的连线——原则上总是可以自动化的。我们只是在那之前还没有做到。判决是机器无法替你完成的事情。它仍然无法做到。它只能让忽视它的代价变得更便宜。品味是摩擦之后的产物 这是一个令人不安的机制,我宁愿不去思考。你的品味来自哪里?不,真的。它来自哪里,是基因决定的吗?某天你是否被外星人绑架,强行将你的品味注入你的脑海并抹去你的记忆?我可以告诉你这一点:这不是通过消费优秀的作品获得的。你不能阅读一百个优秀的程序并通过渗透吸收这种判断,正如你不可能通过在好餐厅就餐成为一名厨师。品味是通过慢、愚蠢和羞耻的方式建立起来的:你制造一些糟糕的东西,你被迫与之共存,它在你面前失败,你的某部分记录下这个失败。然后你再做一次。味蕾是你自己错误的累积,坐下去足够久以至于刺痛。摩擦不是发展品味的障碍。摩擦是课程。每个我在攀爬时咒骂的墙,在我未注意的情况下,教会我哪些墙值得攀登。限制我的输出的成本也教育了我的判断,因为一遍又一遍地支付这个成本就是你学习什么值得支付的方式。所以当你为下一个人去掉摩擦时,看看会发生什么。他们可以从第一天流利地生成代码。他们永远不会发出糟糕的版本并被迫忍受,因为这个工具免费为他们提供了一个合格的版本。他们将攀登不到任何墙,因此也不会从攀登中学到任何东西。他们将流利地达到某一水平,跳过曾经需要的整个学徒期——并且在各个指标上都会比我在他们这个阶段时更高效。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡