How to Help Others Solve Coding Problems - TheOdinProject/blog GitHub Wiki

1. Instead of answering the question, guide them to the answer

Unless the problem is a simple typo or syntax error, it is more beneficial to guide them to find their own answer. This approach will teach good debugging skills and will increase their ability to solve future problems.

Start by asking probing questions, such as "What have you already tried?", “What do you expect this function to do?”, or “What do you think that error means?”.

2. Help only when you are certain of the answer

If you are not 100% certain of the answer, you may end up doing more harm than good, so please let someone else answer it.

Do not worry about how long someone has to wait for an answer. The right answer is worth the wait.

3. Help only when no one else is currently helping

If somebody is already getting help, do not jump in the middle of the conversation. We know you mean well, but it is overwhelming for the person receiving help to follow multiple conversations.

4. Help only when you have plenty of time

If you do not have much time to help, please let someone else answer the question.

5. Adjust your expectations to their level

If the question does not reveal where they are in the curriculum, ask them so that you can adjust your expectations to their knowledge level.

6. Ask for clarifications

If the question seems confusing or ambiguous, ask for more clarity, or politely link them to our bot command /question, which links to the How to be great at asking coding questions article.

7. Ask for live code

If the question needs to have live code to fully understand or debug, ask them use replit to provide it. If the problem is difficult to isolate, they should recreate the problem with isolated code.

8. Do not answer googleable questions

Learning how to research these questions is a very important skill for developers, so we need to empower them to find their own answer. When we answer these questions, it hinders their personal growth and makes them codependent on our community.

Instead of answering these questions, politely ask them to google their question or use our bot command /fg with the search terms.

9. Do not answer questions covered in our curriculum.

If you know that the answer is provided in our curriculum, ask them where they are at in the curriculum.

If they have not reached that portion of the curriculum, let them know they will learn it in the future.

If they have already been through that portion of the curriculum, politely direct to review that lesson.

10. Answer the question before pointing out other problems

When helping someone it can be easy to spot other problems in their code. Resolve the original question, before pointing out any other problems that need attention.

11. Encourage students to use a debugger

It is common for students to not understand the importance of using a debugger to look at the values of their variables at different points in their program. When students are getting unexpected values, politely encourage them to use a debugger with our bot command /debug.

12. Watch for students that need to take a step back

It is common for students to focus too hard on a problem and not be able to clearly see everything. When this situation arises, politely encourage them to step back from the problem and take a break. Often times, stepping away from a problem will help them see the bigger picture and how to solve it.

13. Watch for students that are in over their head

It is common for students to skip a lesson/project or think they know more than they actually do. When this situation arises, politely encourage them to go back and reread a section of the curriculum for more understanding.

14. Admit when the problem goes beyond your current knowledge

It is common for the actual issue to go beyond the initial question. If it goes beyond your current knowledge, it is important to admit that you are unsure of the correct answer and let someone else help.

After digging deeper into the problem, they might be able to continue troubleshooting on their own or they can wait for someone more experienced to help.

15. Be patient

Helping others solve a problem is not always easy. Remember to be patient as they struggle through the problem.

16. Duck out of the conversation if you get frustrated

Sometimes there are misunderstandings and interactions go poorly. You are a volunteer and are not obligated to help when things get out of hand. Politely duck out of the conversation and let someone else step up.