译介|请跟我说人话——程序员的隐秘世界
在 HN 上看到了这篇文章,它主要描述了程序员在和正常人的沟通上所经历的挣扎。也许有不少内容是只有经历过才能体会的。但是如果你刚好不是程序员,也许能够一窥程序员的心境。我为其中一些描述增加了注释,希望能帮助你理解。
有时候我感觉,程序员和正常人在使用完全不同的语言,并且在用完全不同的方式使用计算机。有些事情你和多少学过点编程的程序员或者系统管理员能轻松讨论,但是对在你世界之外的那些人来说可能就完全是在听天书。这里就是一些我经历过的例子。
「为啥要搞这么复杂?我就是想安装一个程序而已」
当我想给一些人安利某个能精确解决他们问题的程序的时候,经常会遇到这个问题。我让他们去执行一个非常简单的步骤:$程序管理器 install $程序名
1,然后他们就会拒绝。
「这很简单」我说。「你要做的就只是打开终端2……哦对,你可能需要先知道怎么打开它……然后,打开它之后,你要做的就是执行……哦对,好吧你需要先安装那个程序管理器」
「好了你装完程序管理器之后,你就只需要……哦对了,他们刚更新了这个,你需要先更改你的当前路径到……」
「算了。你还是去 https://软件主页 下载安装吧。」3
「 Word 怎么了?」
我喜欢 markdown
,我几乎所有东西都用 markdown
来写,它很好用。你可以轻松的添加链接、表格、标题,然后在任何你想加点料的地方插入一些 HTML 标签。不止如此,你还可以通过类似 Pandoc 的工具把它转换为任何大家习惯的文档格式4。不过当我想要分享这些文档的时候,问题就来了。我认识的非技术人员不知道应该如何处理这些 notes.md
5 文件。他们的操作系统可能会弹出一个「如何打开」的对话框,然后列出一堆无关程序。如果我给他们一份转换好的,他们肯定会发回来一份他们修改过后的文档,然后我就得用 Word 或者 Adobe 之类的程序打开,然后把文件内容复制/粘贴到我原本的 markdown 文件。
「不过艾拉斯」你会说,「他们就只需要用任何文本编辑器来编辑它不就行了?」
我给了它们一份 Markdown 指南 ,告诉他们用 Word 来编辑,然后我每次都会收到同样的三个问题。
「你为啥要我学编程?」「Word 是你说的那个啥文本编辑器吗?」「你为啥就不能用点像 Word 一样简单的东西?」
我尝试解释过很多次,说这个看上去神秘又普通的文本渲染系统在事实上要比 Word 简单得多,但他们只会充耳不闻。
「你为啥要在命令行里面做这件事?用 $某个程序 要简单多了」
我随便就能说出无数小事,让我面对这种质问。我一解释用 convert -density 300 input.pdf -resize 50% output.png
6,肯定会遭白眼。
「可是我不是黑客」,他们还挺委屈,「它应该是一个简单点的程序。」
这当然就是一个简单的程序。不过只要第一步需要打开终端,那它就不再简单了。
「哦,你是程序员,那你能不能做 $这件事」
如果给我足够的时间和精力,也许我确实能够做 $这件事,但这并不是我的专业。 「但是这是一个 Windows 程序」他们会泪眼汪汪地看着你,「你难道不用 Windows 工作吗?」
「首先」我说,「我不用。其次,你让我干的这件事涉及到了博士水准教育背景,以及一门我从未涉听说的语言的高深知识。」
「行了,你不愿帮忙可以直说。」
「你能帮我修打印机吗?」
不能
为什么要写这篇文章?
我也不知道。有些时候我会感觉很挫败,对自己很失望,因为我没能想出一个办法说服那些人,这个世界其实是按照我所理解的方式运转的。另一些时间我会觉得解决方案就在我们手中。也许通过多一点编程和 UI 设计,我们能让普罗大众也用上那些改善了我们生活的工具,如此便能彰显我们所信之道。有时我也会想公众计算机教育应该彻底翻新来支持我这种工作流程。
又或者,我只是需要对正常人抱有更多的同理心(或者同情心?)
-
程序员通常会选择使用一个「程序管理器」的东西来安装/卸载程序。(这里的「程序管理器」只是一个统称)你需要做的就是只是执行一条简单的命令
$程序管理器 install 程序名
。这样可以避免去网站上寻找下载链接,下载安装文件,安装程序这一系列麻烦。在卸载的时候也不用担心你卸载了一个程序之后其他程序就不工作了。要升级程序的时候也只需要$程序管理器 update 程序名
↩︎ -
终端,就是很多人对程序员的刻板印象中出现的那个黑色的窗口,里面会滚过很多神秘的代码。 ↩︎
-
这里我不的不吐槽,很多人其实是连软件的主页都找不到的的。 ↩︎
-
一旦你用
markdown
写完之后,就可以把它转换为 网页/图片/PDF/Word文档 等各种文档格式。 ↩︎ -
md
是markdown
文件的常用后缀名 ↩︎ -
这条命令的意思就是,把一个
PDF
文件缩放50%
然后导出为图片。在大部分 Linux 系统中都可以直接使用这条命令。如果碰巧没有convert
这个程序,只需要用前文提到的$程序管理器 install convert
就可以安装好了。 ↩︎