引言

向他人提问,尤其非即时通讯时,我时常会在发送信息后产生微妙的恐慌感:我的问题描述得准确吗?我真的已经尝试了所有我能找到的解决方案吗?

这种心理固然有着自身经历的原因,毕竟我曾多次向年长者发出疑问,却被认定为挑衅,若是在课堂上,免不了要被当成典型批驳一番。

那么,要怎么提问呢?

什么才算是好的提问方式

一本书专门教人如何提问。 1

个人总结如下:

  1. 预先查阅资料、寻找并尝试解决方案
  2. 使用通俗、清晰、准确且合乎语法规范的语句详细描述问题
  3. 在合适的场合提问
  4. 锚定问题,而非倾诉情感
  5. 保持礼貌

当然,如果只需知晓上述5条,就不会有这本书的诞生。

第1条就让人感到为难,原文对此的表述是:

  1. Try to find an answer by searching the archives of the forum or mailing list you plan to post to.

  2. Try to find an answer by searching the Web.

  3. Try to find an answer by reading the manual.

  4. Try to find an answer by reading a FAQ.

  5. Try to find an answer by inspection or experimentation.

  6. Try to find an answer by asking a skilled friend.

  7. If you’re a programmer, try to find an answer by reading the source code.

什么程度的查找才能满足上述要求? 以查找网页为例:只查找一个网页算,遍历查找每个页面当然也算。而这意味着后者一定比前者好吗?2

如果完全按照上述要求并做到能力范围内的最好,大部分问题并不会走到不得不提问这步。

想见作者对此也并不抱有期望,因此详实地举出各种事例,力求让读者知悉什么是好问题

许多人并不知道自己需要问什么

假设你完全没有接触过编程,而现在,你需要写一个简单的程序,例如:

print("Hello World")
# output: Hello World

即使你将代码完整地复制下来,并尝试运行,也可能出现各种错误:没有配环境、缺失某个依赖、版本不支持……甚至是因为在 IDLE 里直接粘贴代码3

而一无所知的情况下,提问时我们能做的只有:贴上代码、贴上报错截图,并希冀着碰上某个闲着没事干又相当热心肠且耐心的好人你问我答。

当然,你还可以立刻去找一门课上以及询问 LLM。

这是否是一个悖论?我有一个问题➞我不知道要怎么描述这个问题➞因为我甚至不明白到底哪里有问题。

而当我能准确地描述这个问题时,核心难点已经被解决。他人或许能开拓解决问题的思路,或许提醒我们有什么因素被忽略,又或者提供一下邪招。比如把 Kindle 放进冰箱冷冻层。

既然他们自己都不知道自己要问什么,难道这些问题就毫无意义吗?

当然不是。

如果以巩固知识为目的,初学者的问题无疑能加深你对某些知识的理解甚至拓展思维,前提是对方乐于交流、目的明确、用语礼貌且表达清晰。 谁会不喜欢跟说话得体且好听的人聊天呢?

只是线下交流中这种人都较少,何况网络上。

LLM 带来什么

在引言中我曾提及一些糟糕经历使我恐慌“向他人提问”。 信息检索能力也因此大幅提高,这或许算一件好事吧,只是过程相当痛苦。

但身为一个极其爱刨根问底的人,又幸运地较早了解到 LLM 的存在,那么……

早期的 LLM 并不如现在“通人性”,聊不到几个回合我就会厌倦,不过只要不主动结束会话,我们就可以一直聊下去。

它曾大幅缓解我的孤独感。

但随着它越来越“聪明”,起码有很长一段时间,我很难不把本该由自己思考的事情外包出去。课业、决策,甚至是那些关乎我自身存在的疑问。

它在这里替我思考,那我呢?我去哪儿了?

现在也不乏有人将 LLM 的输出内容奉为圭臬,用一个比较恶心的形容就是:LLM 吃了许多东西,无论品质好坏,你用它与人争辩,于是 LLM 吐出来的词句被你吞进脑子里消化吸收。

从此,LLM 成为你意志的代言人,你是它的肉身,它是你的大脑。4

题外话

  1. 一旦提及到 LLM,就会被 LLM 入侵(各种意义上)
  2. 在联邦宇宙上看到小氯吐槽园子被异常高频访问,「树」才上线两天访问量就破千(¬_¬)
  3. 写长文时写着写着就会戛然而止,只好努力搜刮自己的大脑再写点什么出来

  1. 你可以在GitHub上找到中文翻译,见下:

     ↩︎
  2. 于此,或许又可以专开一篇文章「如何搜索?」 ↩︎

  3. IDLE是Python内置的开发与学习环境。来自 Python Docs ↩︎

  4. 理解为某种「降临」也不是不可以呢(・・;) ↩︎