Skip to content

Latest commit

 

History

History
81 lines (56 loc) · 3.77 KB

asking-good-questions.md

File metadata and controls

81 lines (56 loc) · 3.77 KB

Asking Good Questions

Projected Time

About 2 hours

  • 27 minutes for video walkthrough of slides
  • 9 minutes for StackOverflow video
  • 16 minutes for Documentation video
  • 20 minutes to read Julia Evans' article
  • 30 minutes for Independent Practice
  • 10 minutes to check for understanding

Prerequisites

"Learning to Learn" lesson

Learning styles represented

  • See (videos and slides)
  • Hear (videos, sample script)
  • Do (Independent Practice)
  • Write (Check for Understanding)

Motivation

The ability to ask questions that lead to useful answers is a must-have skill for software engineers because they are constantly solving problems. Asking the right questions helps engineers arrive at solutions more quickly and make faster progress.

Objectives

Participants will understand:

  • How software engineers learn on the job
  • What resources are available to software engineers for getting "unstuck"
  • How software engineers ask questions when they need help

Specific Things To Teach

  • How to read error messages
  • How to write a useful Google query
  • How to use StackOverflow
  • How to read documentation
  • Practicing the "20 minutes of struggle" rule
  • Sample script for asking for help from a colleague
  • How to ask good questions

Supplemental Materials

Lesson

Asking Good Questions (video walkthrough of slides)

Asking Good Questions (slides)

Common Mistakes / Misconceptions

  • "I can't ask for help because I should know how to do everything on my own." As a Jr. Software Engineer, your colleagues and manager will know you're still learning and that you'll need help. To most other software engineers and engineering managers, it's more important that you can figure things out than it is for you to already know everything.
  • "No one has ever been stuck on this thing I'm stuck on, and therefore no one will be able to help me." There are millions of software engineers all over the world, they all were novices just like you are, and they all have access to the Internet. Therefore, it's likely that at least a few of them have already asked your question online — you just need to find it!
  • "I tried searching for this on Google but nothing came up. There's no other way for me to make progress on this." Knowing what to search for can be challenging as a novice, when you may lack the specific vocabulary required for getting relevant results. If you're still stuck after trying several search variations, ask a classmate or an instructor what you can try instead.
  • Calling someone over to your screen and asking, "What's wrong with my code?" Hopefully this lesson has taught you a much more effective way to ask for help!

Demonstration

Instructor will demonstrate:

  • How to read and research an error message
  • How to use StackOverflow
  • How to skim and use blog post tutorials

Independent Practice

  1. Pick a programming concept that you have difficulty with or are trying to learn. Use StackOverflow to see if you can get some good information about it.

  2. Role play the sample script with partner.

Challenge

None.

Check for Understanding

Participants will create a note on their computer which contains a prioritized list of all the problem solving resources they have at their disposal.