如何提问,是学习知识过程中必备的重要技能,最近,竟在DAX权威网站上SQLBI上看到国际级大师Alberto Ferrari(DAX圣经作者,神中之神!)一篇关于怎么提问的文章,是为大师的切身体会,特做粗浅翻译,不求信达雅,但求通俗易懂,供各位朋友借鉴。




老提问没人答?听听国际级大师是怎么说的!_ide

原文网址:https://www.sqlbi.com/blog/alberto/2021/01/22/on-how-to-ask-a-technical-question-if-you-really-want-an-answer/

How many times did you ask a technical question, to be met with a laconic “it depends”? Or worse, for your question to be totally ignored? This is so typical on Internet forums. I know it is depressing not to obtain an answer to your question, or to obtain a generic answer that does not really help you move forward. I may be guilty of this! Guilty of not answering, or of answering “it depends” quite frequently.

您问过多少次技术问题却只是得到 “看情况”这样简短的回答?或更惨,您的问题被完全忽略了?这在网络论坛上实在太常见了。我知道,得不到答案或没人帮你进一步解决问题很令人沮丧。有时,我也因为没有回答或只回答“看情况”太频繁而感到内疚。


In this post, I want to share my thoughts about the reasons why I answer “it depends”. Knowing the reasons might help you ask your questions the right way, so that you obtain your desired answer.

在这篇文章中,我将分享为什么我会回答“看情况”。了解原因可能有助于您正确地提出问题,从而获得想要的答案。


I answer tons of questions: from my students, from conference attendees or from anybody asking me about Power BI, Data Modeling and DAX both online and in person. To me, answering questions is a win-win. As a teacher, answering questions is partly my job, and partly a good means to learn more about the topics I teach. If I do not know the answer to something, that tells me what I still need to study. Moreover, answering means learning how to explain things, and again this helps me a lot. That said, I skip many questions. Really… a lot. I read them quickly and I decide to move on to the next, leaving the question to somebody else. The reason is that the questions are phrased in such a way that either the answer is “it depends”, or the question is the starting point for an endless exchange of information that I cannot commit to following. I don’t enjoy any of these scenarios, so I prefer to remain silent.

我回答过超多问题:有我的学生、参会的人或任何在线或亲自问我有关Power BI、数据建模和DAX的人。对我来说,回答问题是双赢的。作为老师,回答问题也是我工作的一部分,并且在某种程度上也是我学习相关知识的重要途径。因为我不知道答案的问题,即我需要学习的知识。而且,回答问题意味着要学会怎么做讲解,而这也对我帮助很大。然而,我跳过了很多问题,的确很多。我快速地瞄一眼并决定转到下一个,将问题留给别人。是因为这些问题的答案只能是“要看情况”,或者这些问题将是无休止交流信息的起点,我无法承诺有精力去跟进。我不喜欢这种情况,我只好选择沉默。


Let me give you a few examples of questions that – IMHO – are interesting, but not answerable:

举几个例子吧,坦白讲,这些问题很有趣,但没法回答:


  • Is it better to create one big fat model with all the business entities inside it, or to build several smaller models, one for each business role?

  • 创建一个包含所有业务实体的超大模型,还是为每个业务角色建立几个较小的模型更好?


  • Which one is the way to go, Power BI Premium, Azure Analysis Services or on-premises SSAS?

  • Power BI Premium、Azure Analysis Services或本地部署SSAS,选哪个?


  • Is it worth learning MDX in 2021?

  • 在2021年值得学习MDX吗?


  • Should I build two date tables in my model or is it better to build two relationships with one date table?
  • 应该在模型中建立两个日期表,还是用一个日期表建两个关系更好?


I wrote them off the top of my head, based on the ones that I read the most often.. All these questions have one single answer in common: “it depends

我会在脑海中迅速划掉这种问题,因为所有这些问题都只有一个共同的答案:“看情况”!


The reason I cannot answer these questions is because they are lacking the background information that is crucial to me providing any reasonable answer. Let me show you what I mean by providing a different set of questions, unrelated to Power BI. Try to answer them:

我之所以没办法回答这些问题,是因为它们缺少重要的背景信息,以至于我没有办法提供合适的答案。我提供一组与Power BI无关的问题,你试试回答就知道我是什么意思:


  • Is it better to use a sports car or a family car?
  • 跑车好,还是家轿更好?


  • What kind of clothes is better if I want to have a walk outside in January?
  • 如果一月份我想到外面散步,穿什么衣服更好?


  • How do I know when a task is completed?
  • 怎么能知道一项任务是什么时候完成的?


Did you try answering? Now you know what I mean. Those questions are taken out of context. A sports car is better to run a race, a family car is better to go on holiday. Therefore, the answer is: “it depends”. If I want to have a walk outside, am I walking in January in Dubai or in Helsinki? The difference is quite relevant. Hence, the only reasonable answer is: “it depends”.

你试着回答了吗?如果试了的话我想你应该明白我的意思了。这些问题是脱离上下文的。跑车适合参加比赛,家轿适合度假。所以,答案是:“看情况”。如果一月份出去散步,是在迪拜还是在赫尔辛基散步?区别大了去了。因此,唯一能给的答案还是:“看情况”。


If you ask a question, it is your job to provide the context required to obtain a good answer. The context can be as short or as detailed as needed. Nonetheless, it should be neither too short nor too detailed. Both exaggerations are problematic. If I need to read three pages of a detailed description to provide an answer, it is unlikely I have the time to do that, therefore too much is as bad as too little. Just provide the minimum context required for me to answer you.

既然你提问,就应该同时给出问题的关键背景。问题背景可以根据需要或简或详。但不应太简短也不能太详细。两种极端都是有问题的。如果我要读三页详细说明然后回答一个问题,那么我不太可能有这么多的时间,因此,太多或太少都是不好的。提供给我回答所需的最低限度的背景信息即可。


Let me rephrase the previous questions, by adding some context:

让我给前面的问题加些背景说明,重新描述一下:


  • I am in charge of three departments with various different requirements. Each department has a data model with around 10 tables, three of which could be shared with the other department models. Each department model is around 5GB is size and takes around 20 mins to refresh. Is it better to create one big fat model with all the business entities inside it, or to build several smaller models, one for each department?
  • 我负责三个部门,要求各不相同。每个部门都有大约10个表的数据模型,其中三个可以与其他部门模型共享。每个部门模型的大小约为5GB,大约需要20分钟才能刷新。创建一个包含所有业务实体的超大模型,还是为每个部门建立几个较小的模型更好?


  • I need to build a BI model for around 10 users, 2 of whom will also be DAX authors. Our main database is stored in the cloud and we are also loading some data from CSV files stored on our local PC. Which one is the way to go, Power BI Premium, Azure AS or on-prem AS?
  • 我需要为大约10个用户建立BI模型,其中2个也是DAX专家。我们的主数据库存储在云中,我们还从存储在本地PC上的CSV文件加载一些数据。Power BI Premium、Azure Analysis Services或本地部署SSAS,选哪个?


  • I have allocated some time to learn a new language to improve my skills. I have no specific constraints; it is for my personal growth. Is it worth learning MDX in 2021?
  • 我已经分配了一些时间来学习一种新语言,以提高自己的技能。我没有特别的限制;这是为了我的个人成长。在2021年值得学习MDX吗?


  • I have a model with Sales, Delivery Date, and Order Date. I need to report the number of orders delivered and the number of orders placed. Should I build two date tables in my model or is it better to build two relationships with one date table?
  • 我有一个包含销售、交货日期和订单日期的模型。我需要报告已交付的订单数和已下达的订单数。我应该在模型中建立两个日期表,还是用一个日期表建两个关系更好?


Stated this way, all these questions have a clear answer that I can provide in a matter of a few minutes. And I will happily do that.

这样描述,所有这些问题就都有一个相对清晰的答案,我可以在几分钟内回答。而且我也很乐意去回答。


It is really important to comprehend that the person who asks the question is in charge of providing the context, and that this needs to be the first part of the question.If I need to ask for context, I do not ask. I have learned that it is wiser to skip the question altogether.

提问时先说明问题背景——这一点真的很重要。如果我还得去问问题的背景,我才不问。我知道跳过去才更明智。


Let me give you another example.

You want to compute a complex DAX formula. You have two options:

再举一个例子,比如:

您要计算一个复杂的DAX公式。您有两种选择:


1、You can publish the image of an Excel file with dozens of numbers, arrows, and colors, and then start outlining the algorithm required using your own business language – which by the way, I have no way of understanding.

您给我发个Excel文件的截图,其中有一堆数据、箭头和颜色,并且用你自己的业务用语来描述这个算法——去,我看不懂啊!


2、You can share your Power BI Desktop file that contains ONE page with a matrix with the calculations you have done, and a few notes about why your calculation is wrong. A text note in the report clearly says: “Look here: the number is 5, I need it to be 7”.

您可以发个只有一页的Power BI Desktop文件给我,里面包含一个矩阵表和所做的计算,以及有关为什么计算错误的一些说明。比如清楚地指出:“看这,数字是5,但我希望是7”。


Let me ask you: which one is more likely to get my attention? I’d say that I might spend around 5 seconds on the question in the first option, before moving along. I know, by experience, that the first question leads to this thread:

让我问你:哪一个更可能引起我的注意?在继续之前,我可能会对第一种花5秒钟左右的时间回答。根据经验,我知道第一种情况会引出以下问题:


  • Can you share your data?

  • 可以上数据吗?


  • No, it is private data, I cannot share it.

  • 不行,这是隐私数据,不能共享。


  • Then I don’t know how to help you.

  • 那我不知道怎么帮您哦。


  • Here, I prepared another Excel file with dummy data, screenshot attached.

  • 这样,我准备了另一个用虚拟数据做的Excel,并截成图片给你。


  • I don’t want to type in all these numbers, can you share the file?

  • 我还得输这么多的数字?可以上文件吗?


  • Sorry, I don’t know how to attach a file to this forum.

  • 不好意思,我不知道如何将文件上传到这个论坛啊。

  • ……


And so on. It may go on like this for a few days, and it is very unlikely I will be able to follow the thread for that long.

一个问题,可能会像这样吧啦吧啦好几天,而我真没那么多时间去跟。


The second option is so much easier: if I am intrigued by the question, I download the file and start playing with it. I look at the matrix, I build a measure and I test it. I know the expected result: it is provided right there! A few minutes later, I can proudly answer with my code. Anybody else in the thread can check, validate and correct my code, if needed.

第二种情况就简单多了:如果我对这个问题很感兴趣,可以下载文件马上研究,看一下矩阵表,写个度量并测试。而且预期的结果就在那,没几分钟,我就可以得意地上代码答完收工,如果需要,其他人也可以检查、验证或修正我的代码。


Now, I totally understand the various issues that can come with sharing your data. If you cannot share the data, then invest the time to build a simple model with a few rows to demonstrate your scenario. Again, the person asking a question is responsible for providing the context. The task of the answerer is just that: to answer.

由此,我深刻认识到共享数据这个问题带来的各种影响。如果您无法共享数据,就应该花时间来建一个简单的模型,其中包含几行数据来展现您的场景。再说一遍,谁提问,谁负责说明背景。而回答的人要做的只是:回答。


I think I know why most questions are impossible to handle, to the point where they receive no answer. We are used to talking in person: you can ask whatever question you want and if your question is not clear, the other person can immediately ask you to provide more details. It is what we call a conversation. In the real world, it works. On the Internet? It does not.

我想,我知道为什么大多数问题都没有解决,即无人回答。我们总习惯于对话式交谈,比如:您可以问任何想问的问题,如果您的问题不清楚,对方可以立即要求您提供更多详细信息。在现实世界中,这个很有效。但在互联网上呢?有蛋用啊!


Besides, depending on the context that year I might be in Italy, in the UK or in Seattle when I read your question. It is very unlikely that if I ask for further information I will obtain the answer immediately. Time zones, workload… There are a million reasons why we cannot engage in a real conversation. You need to provide the correct level of information right off the bat, so that I can work completely offline. And the place where to put this information is the first few lines of your question. Later than that, it is too late.

此外,当我看到您的问题那会儿,我可能在意大利,可能在英国,还可能在西雅图。如果我需要更多信息,我怎么可能都马上得到回复?时差问题、工作问题……有无数的原因会导致我们无法进行及时的对话。需要您提供合适的信息,以便我可以完全“脱机”工作。并且,在问题的前面几行就把信息写清楚,不然,没法整。


Let me conclude this post with the reason why I wrote it. I love answering questions. Really, I do. Questions are vital to my professional life; the more I can answer, the better I become as a teacher and as an expert. It hurts to have to skip an interesting question because there is not enough context and I don’t have the time to start a conversation.

最后说一下我写这篇文章的原因作为总结吧。我喜欢回答问题——真的,我真的很喜欢。问题对我的职业生涯非常重要,我能回答的越多,我作为老师和专家的能力就越强。因为没有足够的背景信息,我又没有时间进行来回交流,而不得不跳过一个有趣的问题时,其实挺痛苦的。


Help me with this. Don’t overestimate me. Write better questions, you will obtain your answers quickly and we both will be so much happier.

帮帮我吧!不要高估我。写清楚问题,您将很快得到答案。这样才:你好,我好,大家好!


谨以此译文

向大神致敬

迎接DAX圣经中文版

即将上市

老提问没人答?听听国际级大师是怎么说的!_ide_02