Skip to content

Commit

Permalink
Add asking effective questions page (#432)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ridleyyy authored Jul 29, 2024
1 parent 8c5c720 commit 904dc59
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
67 changes: 67 additions & 0 deletions source/docs/being-a-team/how-to-ask-effective-questions.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
.. include:: <isonum.txt>

How to Ask Effective Questions
==============================

Asking questions effectively is one of the most important skills to develop, especially for your life outside of robotics. Being able to learn from your questions properly is crucial and as such, you should be able to ask good questions, help those who want to help you, and make the most of what you are taught.

Research First
--------------

Before you ask a question, you should do your own research to find the answer. This will take more time and more effort, but it is crucial to learn to find solutions on your own, and learn how to research effectively to find solutions to your problems. In the end, this research will pay off in the long run, helping you to learn about topics relevant to your question, and often helping you to understand the roots of the problems you encounter.

Here are some steps that you could take to research your problem:

- **Checking Official Documentation** - If documentation or instructions are available, make sure to carefully examine the relevant sections of them. Your problem may already be addressed, or may be caused by you misreading something.

- **Google** - Simply search your problem. You will be surprised by how often this solves the issue. Try word the question in many different ways to find similar questions that may have already been asked. Focus on including keywords about your problem and if it is about programming, include relevant error messages and codes.

.. tip::
When looking for past documents or sections of textbooks, add "filetype:pdf" to the beginning of your search to filter the search results into only .pdf documents.

- **YouTube** - There are many great resources on YouTube which can help with even obscure problems.

- **Reddit and Discord** - The `FTC Subreddit <https://www.reddit.com/r/ftc/>`_ and Discord Server (:doc:`../useful-resources`) can also be useful places to find previous answers or to ask your own. Try searching through the past questions with keywords relating to your own.

- **Past Examples** - Try find past implementations of whatever problem you are trying to solve. This step may take more time, as it requires finding the example, and then deciphering how someone else figured out the solution, but this process can be super valuable. For programming, digging through another person's repository can be very insightful. Likewise, for mechanical design, taking a look at a teams technical binder or CAD release.

.. tip::
For programming questions, it can sometimes be helpful to find past implementations through `GitHub Code Search <https://github.com/search?type=code>`_. Note this currently requires a GitHub account. Even if you don't find the solution, examining other codebases can teach you a lot about general strategies and functions you may not have seen before.

Be Specific
-----------

For others to be able to provide a good solution to your problem, they need the specifics. This means doing the following:

1. **Break down the problem.**

You should try to pinpoint the problem as much as possible. For example, when encountering robot crashes, try to collect as much data as possible around the times when your robot crashes. You may not understand this information yourself, but it may allow others to solve your issue. It can also be useful to explain why you're asking. It can be easy to get stuck on a specific solution to a problem when it would be better solved in an entirely different way; this is known as the `XY Problem <https://xyproblem.info/>`_.

2. **Provide some context.**

It is often helpful to provide context for example, what skills you are new to and hence, could be the root of the issues. Furthermore, information about your resources can help others to determine solutions which are feasible and effective within your own constraints. For example, you might be competing within a week and looking for a quick fix; make sure to mention this in your question if so.

3. **Share your progress.**

Explain the steps you have already taken to address the problem. This may include specific troubleshooting methods, or examples of what you have been changing to try solve the issue. This helps others to gain a better understanding of the problem and avoid suggesting solutions that you have already tried.

4. **Don't just use words.**

You should always try to provide some additional media related to the problem. This may be relevant sections of code, CAD files, images or videos. All of these provide others with a much better understanding of your problem.


Understand the Solution
-----------------------

The final step for asking a question is understanding the solution. This is your own responsibility. No matter how good a teacher is, if you do not ask clarifying questions, you limit your own learning. To really understand the solution, you should do the following.

- **Understand why the problem is solved.** How was your problem fixed? Why does this fix work?
- **Figure out why the problem occurred.** What was the root cause of the problem? How can you stop it happening again?
- **Ask for an outline of someone else's problem solving process.** How did someone else solve the problem? How can you use this process to solve more of your own problems in the future?
- **Find gaps in your knowledge.** What information were you missing that led to the problem? How can you develop this area of your knowledge?

.. tip::
If the answer to one of these questions is not apparent, ask the person who helped you and have them provide some more insight. If they were willing to help you figure out the initial problem, they will probably help you to understand the solution as well.

.. important::
If you solve the problem on your own but already posted a question, post a response which describes how you solved the issue. This clarification can help someone in the future solve the problem in much less time.
1 change: 1 addition & 0 deletions source/docs/being-a-team/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ Some tips on how to start, run, and organize a team, along with some outreach/ma
collaboration-and-efficiency
outreach-basics
pitching-your-team
how-to-ask-effective-questions

0 comments on commit 904dc59

Please sign in to comment.