上次有一读者震惊地问为什么ta的导师也关注了本公众号,当然是
我也不知道(优质回答)

image
言归正传 做科学研究,提问题几乎是你每天都要做的事情。但提一个好问题本身是一种能力。
近期我看wrf论坛里的一个交流,整得我无语了。所以觉得很有必要聊一聊:怎样才算“会提问”。
首先我们来看看一段真实的场景。
一位同学在wrf论坛上问:
“我使用 wrf_cape_2d 函数计算 JJA 季节的 LFC,但有差不多 50% 的值,LFC 都非常高。不过当我只看 CAPE>0 的 LFC 时,它们的高度就合理了。希望能得到一些建议。”
版主跟帖回复:
“你给 wrf_cape_2d 的输入是什么?” “你说 LFC 值很高,是比正确值高 50% 吗?还是总是这么高,还是只在某些特定时刻出现?” “能不能把你的脚本传上来让我看看?”
很明显,信息含量低的提问浪费双方的时间,由于信息太少,即使强如版主也只能用问题回答问题。
下面就以它为例,拆解一下问题的问题在哪里,以及正确的提问应该长什么样。
提问的同学说:“我得到了几乎 50% 的值的非常高的 LFC 值。”
问题出在哪儿?“50% 的值”是指有 50% 的格点 LFC 异常高,还是 LFC 数值大了 50%? “非常高”又是多高? 500 hPa? 700 hPa? 还是几公里? 对于回答者来说,这完全是摸不着头脑的。回答者只能靠猜,甚至需要反过来反问你“到底是哪种情况”。
正确的做法是:给出定量描述。例如:
“在我的输出中,约 50% 的格点 LFC 在 xxxx与xxxx 之间,而根据探空经验,这个季节的典型 LFC 应该在xxxx 左右。我觉得这不合理。”
把“很高”变成具体的数值和参照,别人一下就明白你的困惑在哪儿。同理,你在问ai问题的时候,大模型无法确定你在讲什么鬼,就会开始胡编乱造。
提问者提到:“当我考虑 CAPE>0 的 LFC 值时,它们处于合理的高度。”
这其实是一条关键线索,但被轻描淡写地带过了。回答者需要从这个线索反推:是不是 CAPE<=0 时 LFC 被定义或计算为某个极大值? 是不是你后处理时没做掩膜?
如果你能在提问时,主动说清楚:
那么,回答者就省去了大量猜测的时间,可以直接说:“没错,这个函数的源码就是这样的,你需要用 CAPE 做筛选。”
提问之前,先把自己的排查过程写清楚,等于把回答的门槛降低一半。
你可以想象一下,一个医生收到病人来信:“我不舒服,能给我建议吗?” 却没有说哪里不舒服、什么时候开始、吃过什么药、做过什么检查。
这个帖子也一样,回答者最后只能无奈地说:“你能上传脚本让我看一下吗?”
在你问关于 WRF 后处理的问题时,至少应该附上:
wrf_cape_2d 的那段关键代码(尤其你如何定义输入变量,如何提取 LFC)print(np.min(lfc), np.max(lfc)))你只需要花 2 分钟复制粘贴一下代码,而回答者就可以根据经验做出更准确的回答。
你说“我做了 JJA 的季节模拟”,然后问 LFC 为什么异常。你只需要提问,而回答问题的人要考虑的可能原因太多了:是模拟本身不稳定?是参数化方案的问题?是后处理读变量读错了?是函数需要特殊输入单位?
一个好的提问,会主动缩小诊断范围。 比如:
“我已经用单点探空数据手动计算了 CAPE 和 LFC,和
wrf_cape_2d的输出对比,发现当 CAPE 大于 100 J/kg 时 LFC 能对上,但 CAPE 很小或为零时 LFC 出现 8000 m 以上的值。是不是这个函数在 CAPE 为零时会给 LFC 赋一个固定的高度上限?”
你甚至不必完全确定自己的猜想正确,但这种“提出假说”的提问方式,会极大激发回答者的兴趣,并能非常快速地定位问题。
火箭队的那句台词怎么说的?“既然你诚心诚意地问了,我就大发慈悲地告诉你”。
科研圈里,大伙都很忙。别人愿意无偿帮助你,要么是因为你的问题有普遍意义,要么是因为你展现出了足够的诚意和努力。
这个帖子里的回答者算是很有耐心了,还反问了三个问题。但更多情况是,这样的帖子直接沉掉,没人理睬。将心比心,你如果问得随便,那么得到的回复也很大可能是随便的。
在发出问题前,你可以在脑子里复盘一下:
在这个过程中,让自己思路变得更清晰。
最后我想说:学会提问,不是为了“索取答案”,而是为了更高效地思考。 一个好的问题,往往答案已经隐约浮现了。
下次提问之前,想想今天这个帖子的例子,别让回答者反过来追问你那些本应你自己先说清楚的事。这才是一个pro的素养。