新员工成长-如何提出问题

100 阅读3分钟

提出问题的方式

使用这3个步骤:做研究,提出明确的问题,并恰当地安排解决你的问题所需的时间。

动手调查

尝试自己寻找答案。即使你的同事知道答案,你也要付出努力,这样你会学到更多。如果你没有找到答案,当你寻求帮助时,你的调查仍然会成为你的起点。不要只是在互联网上搜索。信息还存在于文档、内部论坛、自述文件(README)、源代码和错误跟踪器中。如果你的问题是关于代码的,试着把它变成一个可以演示的单元测试。你的问题有可能曾经被别人问过:查看邮件列表或聊天记录。你收集的信息将会引领你到那些可测试的方案中去。如果你找不到任何线索,试着自己通过实验来解决它。记录下你在哪里寻找过,你做了什么,为什么这么做,发生了什么,以及你学到了什么。

写下全过程

在提出问题时描述你已经知道的情况。不要只是分享你的原始笔记。简要地描述你所做的尝试和发现,这表明你已经花了很多时间去试图自己解决这个问题。这样做也会给别人一个回答你的起点。

最佳实践

嗨,艾丽斯。我在调查为什么testKeyValues在TestKVStore中会失败时遇到了一些麻烦(在DistKV的代码库中)。肖恩建议我来问问你。希望你能帮助我。在我看来,这个测试差不多每执行3次就会失败1次。这似乎是随机的。我试着单独运行它,但还是失败了,所以我认为这不是测试用例与测试用例之间的问题。肖恩在他的计算机上循环运行了这个测试,但仍无法重现它。我在源代码中没有看到任何明显的东西能解释这个测试失败的原因。这似乎是某种竞争条件。有什么想法吗?有人告诉我这不太可能影响到生产环境,所以并不十分紧急。但是,每次发生这种情况,拍打测试都会花费我们20到30分钟,所以我很想知道如何解决这个问题。我附上了显示测试失败的日志和我当前所有的环境设置,以备不时之需。谢谢!

别打扰别人

就像你一样,其他人也在努力完成工作,他们需要专注,当他们进入状态时,不要打扰他们。使用群发邮件列表或群聊,以一种大家都能看到的方式来发出问题,这样当你得到帮助的时候就很显眼。解决办法也会变成可被发现的,所以其他人以后也能找到当时讨论的内容。

《程序员的README》