Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add asking effective questions page #432

Merged
merged 9 commits into from
Jul 29, 2024
95 changes: 95 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,95 @@
.. 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.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved

Research First
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
--------------

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.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
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.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
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 <https://discord.gg/first-tech-challenge>`_ can also be useful places to find previous answers or to ask your own.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
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.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
This step may take more time to find the example, and then decipher how someone else figured out the solution, but this process can be super valuable.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
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&auto_enroll=true>`_.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
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/>`_.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved

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.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
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 is not immediately obvious to one of the steps above, ask the person who helped you and have them provide some more insight.
Ridleyyy marked this conversation as resolved.
Show resolved Hide resolved
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
Loading