I say “me” and “I” in this guide but this applies everywhere
Asking good questions is really about explaining your current understanding. If you tell me where you are, it’s much easier for me to lead you to the solution.
0. Don’t ask to ask a question. Don’t say “can I ask a question?” The answer is always yes. Asking to ask a question just wastes time.
1. Show me any error messages. Not a summary, not part of the message, the actual message.
- ❌ I got an error
- ❌ I got a compiler error
- ❌ The compiler said something about my function
- ❌ The compiler said unreachable statement
- ✅ The compiler said Lab3.java:62: error: unreachable statement
2. Show me your code. Don’t describe what it does, just show it. I’m good at reading code!
Sometimes I will ask you to send me your whole program, but only as a last resort.
But this is not CS 0007! It is no longer acceptable for you to send your whole program to me and ask, “can you have a look?” No, I can’t. Your programs are getting really long. Instead:
- Narrow down where the problem is happening.
- If there’s an error, I need to see the code where it happens.
- Not just that line, but the lines before and after, too.
- Preferably, the whole function where the error occurs!
3. Show me your code as text! Avoid screenshots of code. Screenshots of error messages and output are good though.
Often I want to copy your code, add comments to it, move things around etc. Email kinda sucks for this, which is why I usually prefer Discord for helping with code issues. See the Discord guide for how to paste code properly.
And please don’t do this, it makes my soul hurt (and you should clean your screen):