Skip to content

HOWTO ask for help

Dan Walkes edited this page Aug 24, 2022 · 8 revisions

This page outlines some strategies you can use when asking for help from others, either in course chat forums or, in the case of the on-campus version of this course, in the course Slack or Discord channel.

These strategies are not specific to or only useful in this course. I have used all of these strategies throughout my career and still use them! Quite often I've noticed that in the process of putting together a well formed and researched post for a mailing list or Slack/Discord thread I am able to solve my own problem before I need to post!

General Strategies

Share enough detail

Remember what you knew about your code and design before you started writing it (probably not much) and realize the person you are approaching for help knows only that much. You need some detail about the exact problem you are experiencing. Some helpful things to include:

  1. Log messages from automated test.
  2. Log messages from prints or syslog.
  3. Links to specific lines of code corresponding to prints or syslog messages which explain the problem.
  4. References to specific text in the assignment document when questioning assignment requirements.

Re-read your post just before submitting from the mindset of someone who isn't familiar with your code. Did you include enough detail to expect they will be able to help?

Use Links and Embedded Text instead of Screenshots

Try to make it as easy as possible for people to see and weigh in on your issue. Github provides a great mechanism for this as it allows linking to specific lines in your code. You can use the same strategy to link to specific lines in your github actions log file which describes the error you are seeing.

Favor links and embedded/attached text or text copied and pasted with markdown code blocks instead of screenshots. Screenshots aren't as searchable. It's also not possible to easily quote or highlight specific portions of a screenshot.

Use Logging

Do the syslog/printf messages from your program help explain the issue you are experiencing? If not, think about how and where you can add logging to help isolate or understand the problem. Take the time to correlate your logs with failure messages, don't just dump out files and expect other people to do this work for you. If you don't understand your log messages it's unlikely others will. Make sure you understand this yourself first, then think about how you can make it as easy as possible for someone else to get the same level of understanding.

Ask for help with specific problems, not a general code review

Do you have time to code review 20 other student's assignments? Probably not, and they probably don't have time for this either. It's a lot to ask for someone to do a general review of your entire code for any issues, and it can often create more problems than it solves as someone who is less familiar with your design tries to make suggestions about things which may not actually be related to the issues you are experiencing. Focus on specific problems when you ask for help. Do work to troubleshoot before asking for help and make sure your post illustrates the work you've done!

If you are in the on campus course I will code review your assignment after submission. I'm not able to offer a code review every student's assignment before submission as well, however I will definitely respond to posts asking for help using the guidelines here.

Start new threads for new issues

If you solve one issue and then find another issue, please start a new thread for the new issue. This is more likely to get people engaged and makes content easier to find. It's also helpful and appreciated to take the time to close out your thread with a post about the solution!

Use public channels

This increases visibility and allows multiple people to help you. Please don't post in private channels for the on-campus course. My respose will be to re-post in assignment channels, which will only delay the time I can respond to your question.

I'm Embarrassed/Afraid to Ask For Help in a Group Channel!

Students have often messaged me about this in the past as reasons they don't ask for help. My best advice to them is this: Work hard to get over this fear as soon as possible! Everyone makes mistakes and everyone needs to ask questions. In my experience the vast majority of people are very willing to help someone who has genuinely put effort into their question using the strategies outlined here. Nobody with any experience in this industry will think less of you for asking a well thought out question on a public forum. The willingness and ability to ask good questions is actually one of the main attributes I look for when hiring Engineers for my team.

Examples

Here are some examples you can use when asking for help which combines some of the suggestions above. There is no need to copy any of this content into your post, it merely illustrates how you can combine some of the suggestions above to increase your chances of getting quick and useful responses.

Hi everyone! I'm experiencing a failure of running my application for assignment 5. I've noticed that in the 3rd step of the automated test I only return 3 of 4 strings from my socket application. This results in a failure of the automated test as shown at insert link to github action output here. I've added prints which show that the 3rd string is received by my application and not sent. You can see the print I've added to code at insert link to code here. I'd expect the 3rd string should be sent at insert link to code here but it's not output in my syslog file (see attached syslog file). Has anyone noticed a similar issue or have suggestions about how to resolve?

Hi channel! The assignment requirement insert text from assignment in assignment step 6 at insert link to assignment document is not clear to me. What does it mean to have a requirement about assumptions related to allocating RAM on the heap?