Tips for Online Communication
by Justin Wolford, online degree computer science instructor


Be a good person

What would you do in real life?

  • If you were having this discussion with someone in real life with someone, what would you say to them? Say that instead of what you were about to say.

What if everything I say is preserved for the rest of time?

  • There are sites like WayBackMachine which archive the internet. Your conversation may be captured there. The chat-rooms are logged, Piazza discussions are archived. Keep in mind that teachers writing recommendations for you can search old classes for your discussions.

Can this be misunderstood?

  • Are you making a joke? Are you being sarcastic? We don't know. But wait! You can help us! Explicitly add a /sarcasm tag in your text and that makes it clear. Could something be conveyed either positively or negatively? Add a smiley :) or a angry person >:( to let us know what you mean. (But refer to the first two rules before you use the angry person). Emoticons help add context. Use them if they are appropriate.
Ask good questions*

Use a descriptive title

  • Example: [C++] Segmentation fault while writing to array in for-loop
  • People may not have time to read every post. A good title saves time.
  • Sometimes the content of a post may change because you realize the problem you thought you were having is not the actual problem at all. Rename your thread or ask a TA or instructor to rename it for you if you can't.

Don't spawn quasi related sub-questions in the same thread

  • If you are reading a post and realize you have a related issue, make a new post about it and post a link to it in the original thread. This helps keeps things organized and titles relevant to the content in the post.

Please put in genuine and significant effort into solving a problem for yourself first before posting it

  • This gives you experience researching and solving problems on your own and is faster than having to wait for someone to answer your question.
  • The process also gives you the information to post a well thought out question.

Wikipedia has an excellent summary of how to ask a good software question

  • Strive to be as specific as possible, avoid generalities and include the following components:
    • A goal - What it is you are actually trying to accomplish in the slightly bigger picture.
    • The problem - What specifically is going wrong, what is happening right before? When was the last time it worked? StackOverflow has a good description of what happens when you confuse the problem with the goal.
    • An example - Show the relevant code with just enough context to understand the possible causes.

* much of this content was pulled from the LearnProgramming subreddit

Give good answers

Follow the rules of being a good person up above

  • Remember you are dealing with someone who may be stressed because they have spent all day trying to fix something and their project is due in an hour. They may not be polite but you still should be.

Make sure you understand the question

  • Take the time to ensure you are completely reading and answering the question before posting your response. Otherwise you will generate additional posts which will take more time than answering carefully the first time.
  • Don't just guess at what is going on. If it is not clear, ask clarifying questions.

If you post code to help, make sure it works

  • Don't post bad code as a solution. If you only want to provide pseudo code, that is fine, but make it clear that it is pseudo code. Don't post C code that won’t compile, it is just going to make them more frustrated if your help  causes them more errors when they expect it to fix the problem.

Don't just post code

  • If someone is asking for help, they want to understand how to fix the problem. Just giving them code that makes it work won’t help them learn.
    • Provide an explication.
    • Reference other documents when citing pieces of information and provide hyperlinks.
    • Paste in screenshots when it can provide clarity.
  • Repeat the originator's questions in your answer.