mirror of
https://github.com/smartcontractkit/full-blockchain-solidity-course-js.git
synced 2025-04-27 07:36:45 +00:00
how to ask and answer
This commit is contained in:
parent
2aa58475e6
commit
0d7913c389
41
how-to-answer-a-question.md
Normal file
41
how-to-answer-a-question.md
Normal file
@ -0,0 +1,41 @@
|
||||
# How to answer questions
|
||||
|
||||
Thank you for wanting to answer questions! This is how we grow as a community :)
|
||||
|
||||
1. Make sure the question follows the "how-to-ask-a-good-question" guide
|
||||
2. Make sure your answer unblocks the user
|
||||
3. Remember, this is living documentation!
|
||||
4. Format your answers, like in the `how-to-ask-a-question` guide.
|
||||
|
||||
|
||||
# 1. Make sure the question follows the "how-to-ask-a-good-question" guide
|
||||
|
||||
If the question is poorly formatted and you know how to reformat it reformat it and ask them next time to format their code.
|
||||
|
||||
If the question is posted in the wrong place (like a theoretical question posted on stackoverflow) kindly let them know that it's in the wrong place.
|
||||
|
||||
If the question has already been asked and answered, answer with a link to the question that has already been asked and answered and ask if that solves the problem.
|
||||
|
||||
If the problem has a poor title, doesn't make sense to others, etc, feel free to edit the question to what does if you can understand it. If not, you can answer saying "I don't quite understand what you're asking, could you reformat your question following the "how to ask a question" guide?
|
||||
|
||||
If they used screenshots, feel free to ask them to copy-paste the code.
|
||||
|
||||
Or, feel free to ignore it. This is a community run forum and no one is "entitled to" answers! Be nice, be respectful, and have fun. But if you do know how to help someone, a little "could you please refactor your question" can go a long way!
|
||||
|
||||
### Don't feel obliged to help right away if they are not asking well-formatted questions. Make them ask a well-formatted question first before you answer!
|
||||
|
||||
But don't be a jerk about it. If they just need a little formatting touch up, just touch up their question for them.
|
||||
|
||||
# 2. Make sure your answer unblocks them
|
||||
|
||||
Often times, people will ask questions where the answer might be X, but they are trying to do Y. Try to anticipate what people are trying to do. Answer the question at face value, and then maybe give more information on where to go next.
|
||||
|
||||
Often, giving a summary of your answer at the top with copy pasteable code, and then a "more information" is a best practice.
|
||||
|
||||
# 3. Remember this is living documentation!
|
||||
|
||||
Treat it as such. Go back and update answers if you find them!
|
||||
|
||||
# 4. Format your answers, like in the `how-to-ask-a-question` guide.
|
||||
|
||||
See that guide for more information.
|
166
how-to-ask-a-question.md
Normal file
166
how-to-ask-a-question.md
Normal file
@ -0,0 +1,166 @@
|
||||
# How to ask a question
|
||||
|
||||
> Note: Before reading this, you might want to read my guide on [top 6 tips to solve any software engineering error](https://medium.com/better-programming/top-6-tips-to-solve-any-software-engineering-error-a794a162fcaf).
|
||||
|
||||
Also note, take this pledge: "I solemnly swear that after asking a question I will spend at least 5 minutes trying to answer someone else's question. I will consult the 'How to answer a question' page before I do so. "
|
||||
|
||||
The internet is our documentation, and we want to treat is as such. **Every** *specific* question we have *should* be able to be found by typing it into a web search bar.
|
||||
|
||||
Now, there are no "bad" questions, but there are poorly-formatted questions. A poorly formatted question has a low chance of being answered, poor chance of being discovered, and can "clutter up" forums and discussion boards. So let's make sure we strive for well-formatted questions!
|
||||
|
||||
# Full Examples at the bottom!
|
||||
|
||||
Here are the steps to ask a well-formatted question:
|
||||
|
||||
1. Search to see if the question has already been asked
|
||||
2. Know where to post your question
|
||||
3. Make a title that summarizes the problem
|
||||
4. Introduce the problem before writing any code
|
||||
5. Make sure you format code using backticks (```) and a language tag
|
||||
6. Make sure you copy paste your code instead of using screenshots
|
||||
7. Make sure your code is a minimal example
|
||||
|
||||
|
||||
# 1. Search to see if the question has already been asked
|
||||
|
||||
## Do not skip this step!
|
||||
|
||||
We should think of the internet as one giant document. If a question has already been asked and you can find it on the first page of your search engine, it's good! Don't ask the question again!
|
||||
|
||||
And if it's not on the first page of your search results, then **yes, you should 100% ask the question on a forum even if you know the answer.**
|
||||
|
||||
We want every tech question ever to be:
|
||||
|
||||
1. Indexed by search engines
|
||||
2. Easy to find
|
||||
3. Easy to reproduce
|
||||
|
||||
So that in 6 months when you forget the answer, you can just google it and it'll show up!
|
||||
|
||||
We don't want there to be multiple questions, because that can fragment where people look! We want to add answers, comments, etc all in one place
|
||||
|
||||
# 2. Know where to post your question
|
||||
|
||||
I categorize questions into one of three:
|
||||
|
||||
- Specific code based questions
|
||||
- Generic theoretical questions
|
||||
- "In the know", support, or emergency questions
|
||||
|
||||
## Specific code based questions
|
||||
|
||||
These are what we strive for. These are reproducible questions that help the world. You'll want to put these questions in places like:
|
||||
|
||||
- The "Q&A" discussions section of this course
|
||||
- stackoverflow
|
||||
- stack exchange ETH.
|
||||
|
||||
These are questions that typically can have a "right" or "many right answers". Generally, these are not very opinionated questions.
|
||||
|
||||
These are questions like "How to convert bytes32 to uint256".
|
||||
|
||||
## Generic Theoretical Questions
|
||||
|
||||
These are questions that likely do not have a canonical answer. These are questions like "which blockchain should I deploy to?" or "How could I make a game that involves many random characters?". They belong in places like:
|
||||
|
||||
- The "General" discussions section of this course
|
||||
- A generic forum like Reddit, Twitter
|
||||
- Discord (like some of the ones people have started here)
|
||||
|
||||
Ideally, you put these on an indexed forum like reddit and the general discussions section instead of discord so others can do a web search for the problems.
|
||||
|
||||
## "In the know", support, or emergency questions
|
||||
|
||||
These are very specific use cases and 99% of your questions will not be these kinds. These are questions like "we just got hacked, can you help us?", "Want to join my team", etc. They are questions that likely only apply to your situation and what you are doing. They belong in:
|
||||
|
||||
- Discord DMs
|
||||
- Email
|
||||
- etc
|
||||
|
||||
And should be used *very* sparingly.
|
||||
|
||||
# 3. Make a title that summarizes the problem
|
||||
|
||||
It should be minimal, searchable, indexable (by search engines).
|
||||
|
||||
## Examples:
|
||||
Bad:
|
||||
- I'm stuck, please help
|
||||
|
||||
Good:
|
||||
- Could Not Detect Network using WSL & Ganache
|
||||
|
||||
Bad:
|
||||
- hardhat error
|
||||
|
||||
Good:
|
||||
- TypeError: Cannot read property 'length' of undefined - when deploying contract
|
||||
|
||||
Bad:
|
||||
- hardhat error
|
||||
|
||||
Good:
|
||||
- TypeError: Cannot read property 'length' of undefined - when deploying contract
|
||||
|
||||
|
||||
4. Introduce the problem before writing any code
|
||||
|
||||
In the body of the question, say what you're trying to do, what you've done, and give a summary of your problem.
|
||||
|
||||
With this course in the discussions tab, you may also give a timestamp of where you're getting the issue (in fact, please give a timestamp with a link to the location in the video).
|
||||
|
||||
5. Make sure you format code using backticks (```) and a language tag
|
||||
|
||||
You'll want to format your question so it's as easy as possible to read! Especially with your code snippets.
|
||||
|
||||
Your code should show up like this:
|
||||
|
||||
```javascript
|
||||
// my code here
|
||||
```
|
||||
|
||||
In your question, you'll type it like this:
|
||||
|
||||
````
|
||||
```javascript
|
||||
// my code here
|
||||
```
|
||||
````
|
||||
|
||||
If it doesn't get formatted, you can edit your question (usually, you can click the three little dots at the top right of your question) to make it formatted nicely.
|
||||
|
||||
6. Make sure you copy paste your code instead of using screenshots
|
||||
|
||||
We want web crawlers to index every word you write, so even copy paste errors (and format them with 3 backticks!)
|
||||
|
||||
|
||||
7. Make sure your code is a minimal example
|
||||
|
||||
There are two types of code questions:
|
||||
|
||||
- Debug me
|
||||
- Specific questions
|
||||
|
||||
Don't be a "Debug Me"
|
||||
|
||||
## Example of a poorly formatted question (a debug me question):
|
||||
|
||||
Hi I'm confused my code isn't working here is all my code
|
||||
|
||||
```javascript
|
||||
// pretend I pasted like 300 lines of code here
|
||||
```
|
||||
|
||||
## Example of a much better question
|
||||
|
||||
I'm getting `error x` on line 42 of my code:
|
||||
|
||||
```javascript
|
||||
const some_var = "dog"
|
||||
// this is the line that is erroring
|
||||
```
|
||||
|
||||
[More information on reproducible code.](https://stackoverflow.com/help/minimal-reproducible-example)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user