Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

你应该写不好的代码

Posted on 2022-10-01

你应该写不好的代码

本文包含附属链接。有关更多信息,请参阅我的附属公司披露。

这听起来可能很疯狂,但是……我喜欢练习有荒谬的想法。

我选择一个问题或一个问题并集思广益荒谬的解决方案。任何事情都会发生,无论多么疯狂。这对代码来说特别有趣。这不仅仅是为了转移注意力。

练习荒谬有助于解决现实世界的编码问题。

✉️
这篇文章最初发表在我对代码的好奇时事通讯中。永远不要错过任何问题。在这里订阅→

玩得开心,激发创造力

我让 Twitter 上的人们分享他们能想到的最荒谬的方法,即在 Python 中不使用+运算符来添加两个数字。

Fluent Python (任何中级 Python 开发人员的必备读物)的作者 Luciano Ramalho 对此进行了回应:

pic.twitter.com/ZhgS88vfND

— 卢西亚诺·拉马略 1️⃣3️⃣ ?? (@ramalhoorg) 2022 年 9 月 28 日

我喜欢 Luciano 的解决方案,因为基础相对温和。

他没有将两个数字a和b相加,而是从b中减去-a 。然而,正是递归将它带到了一个新的水平。我什至不介意它只适用于整数!这简直太荒谬了。

但是写这样的代码有什么意义呢?

对于初学者来说,荒谬很有趣。

你应该写不好的代码 Gerard van Honthorst,公共领域,来自维基共享资源

快乐和乐趣与创造性的产出有关。所以想出像卢西亚诺这样荒谬​​的代码示例是一种为创造性工作做好准备的方法。它让你进入一种创造性的心情。

好处还不止于此。

建立令人惊讶的概念联系

荒谬的代码以不同寻常的方式将概念联系在一起。

大脑形成记忆的一种方式是通过突触可塑性。神经元之间的突触——即连接——在它们一起发射时得到加强,而在它们不一起发射时减弱。更强的连接会增加特定神经模式响应给定刺激而触发的可能性。

换句话说:

?
编写荒谬的代码可以加强概念之间的联系,否则这些联系可能不会得到加强。

并非所有这些连接都是有用的。

许多不会持久。但是当他们在严肃的编码会议中突然出现在你的想法中时,有些人会让你大吃一惊。突然间,你有了一种新的、可能富有成效的方法来解决问题。

有时你会以重要的方式破坏事物。

暴露系统中的弱点

荒谬的代码有多种形式。

有像卢西亚诺这样的例子,他们用一种愚蠢的方法来解决一个简单的问题。然后是Obfuscated C Mandelbrot- 和 Julia-set Generator 。它是用 ANSI-C 编写的,它的源代码类似于 Mandelbrot 集:

你应该写不好的代码混淆的 C Mandelbrot 和 Julia 集生成器

对食谱是有效的“Hello Word”程序的巧克力蛋糕爱不释手?有它。

当你编写荒谬的代码时,所有的规则都不适用。

荒谬之处可能在于问题解决方案的愚蠢。或者它可能在代码本身的呈现中找到。有时,它是关于编写带有险恶秘密的看似无害的代码。

这就是 Linus Åkesson 在赢得2015 年 Underhanded C 比赛时所做的。

Åkesson 的代码利用浮点类型的微妙混淆来歪曲核弹头的能量谱。核武器检查员可能会被频谱所迷惑, 据核威胁倡议的技术顾问佩奇·斯托兰 (Page Stoutland ) 所说,“可以让各国在没有真正解除武装的情况下为裁军而努力。”

严重地。

一场糟糕的代码竞赛暴露了核不扩散的一个关键缺陷。

把创意变成习惯

感觉自己不够聪明,无法编写“好”的坏代码?

我有好消息要告诉你。你不是天生就有有限量的“创意果汁”。你出生在一片广阔的创意潮流的海洋中。您可以学习如何驾驭这些潮流并探索您的想象力的深度。创造力是一种可以练习的技能。

你可以从小处着手。

以下是帮助您入门的五个编码提示:

  • 你能想到的最荒谬的打印"Hello world"的方式是什么?
  • 编写一个使用大量资源但什么都不做的程序。
  • 编写一个以两种不同的编程语言编译和运行的程序。
  • 用代码解决一个真正不应该用代码解决的问题。
  • 编写一个没有无限循环但永远不会停止运行的程序(如果它停止运行也没关系,但是从现在到宇宙热寂之间没有足够的时间。)

每月处理一次或两次新提示。

不要忘记为荒谬的喜悦举杯。

你应该写不好的代码 Gerard van Honthorst,公共领域,来自维基共享资源


想了解更多关于编码和创造力的交集吗?

Manning 刚刚在他们的抢先体验计划中推出了The Creative Programmer 。

当你在做的时候,看看 Dylan Beattie 的经典演讲The Art of Code 。

对于荒谬的灵感,我强烈推荐 XKCD 创作者 Randall Munroe 的书籍How To 、 What If和What If 2 。


想要更多这样的吗?

每周六发送一封电子邮件,其中包含一个可操作的提示。
总是少于你的 5 分钟。

现在订阅

处理您的申请检查您的收件箱并确认您的订阅发送电子邮件时出错

原文: https://davidamos.dev/write-bad-code/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme