<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Megan Sullivan</title>
    <description>The latest articles on DEV Community by Megan Sullivan (@meganesulli).</description>
    <link>https://dev.to/meganesulli</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F346134%2Fa7bc38a0-5f6c-49a1-9531-24bf6805d31b.jpeg</url>
      <title>DEV Community: Megan Sullivan</title>
      <link>https://dev.to/meganesulli</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/meganesulli"/>
    <language>en</language>
    <item>
      <title>Quick Wins to Make Your Content More Accessible</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Fri, 17 May 2024 05:23:48 +0000</pubDate>
      <link>https://dev.to/meganesulli/quick-wins-to-make-your-content-more-accessible-4fob</link>
      <guid>https://dev.to/meganesulli/quick-wins-to-make-your-content-more-accessible-4fob</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;It's &lt;a href="https://accessibility.day/"&gt;Global Accessibility Awareness Day&lt;/a&gt; (GAAD)! The goal of digital accessibility is to enable users with disabilities to independently engage with content and technology. Ultimately, it's about empowering disabled people to live with autonomy and dignity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The World Health Organization estimates that &lt;a href="https://www.who.int/news-room/fact-sheets/detail/disability-and-health"&gt;16% of the world's population has some kind of significant disability&lt;/a&gt;. As of 2024, that's &lt;strong&gt;1.3 billion&lt;/strong&gt; people.&lt;/li&gt;
&lt;li&gt;In 2024, &lt;a href="https://webaim.org/projects/million/"&gt;The WebAIM Million&lt;/a&gt;—an annual report on the accessibility of 1 million different websites—found that &lt;strong&gt;95.9%&lt;/strong&gt; of home pages had accessibility issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Accessibility issues prevent disabled users from accessing digital services and participating in online communities. Some accessibility problems require a developer to fix, but others can be fixed by anyone who creates online content! Here are three quick ways that you can make your digital content more accessible.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This post references the &lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;Web Content Accessibility Guidelines&lt;/a&gt; (WCAG), which define standards for creating accessible web content.&lt;/p&gt;

&lt;p&gt;The WCAG standard includes a detailed list of success criteria that a website must meet in order to be considered accessible. These success criteria are categorized into different levels: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Level A (the bare minimum)&lt;/li&gt;
&lt;li&gt;Level AA (the industry standard)&lt;/li&gt;
&lt;li&gt;Level AAA (above and beyond)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For your site to get level AA conformance, it must meet all the level AA success criteria &lt;em&gt;and&lt;/em&gt; all the level A success criteria. Similarly, to get level AAA conformance, your site must meet all the success criteria for levels AAA, AA, and A.&lt;/p&gt;

&lt;p&gt;The WCAG documents can be overwhelming at first! But they're also the industry's go-to resource for in-depth accessibility standards, so it's worth exploring them. For a more general introduction to accessibility, check out the W3C WAI &lt;a href="https://www.w3.org/WAI/fundamentals/"&gt;Accessibility Fundamentals Overview&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tip #1: Use Sufficient Color Contrast
&lt;/h2&gt;

&lt;p&gt;The most prevalent issue reported in the 2024 WebAIM Million was insufficient color contrast. &lt;/p&gt;

&lt;p&gt;For online content, color contrast refers to the difference between the color of your text and the color of the background behind it. With some &lt;a href="https://www.accessibility-developer-guide.com/knowledge/colours-and-contrast/how-to-calculate/"&gt;fancy calculations&lt;/a&gt;, you can calculate the &lt;strong&gt;contrast ratio&lt;/strong&gt;, which tells you how different your foreground and background colors are from each other.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I3zXm8DN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://meganesulli.com/static/9e94e79a50899af4a8fa66c22b9dc991/42cbc/low-vs-high-color-contrast-ratios.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I3zXm8DN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://meganesulli.com/static/9e94e79a50899af4a8fa66c22b9dc991/42cbc/low-vs-high-color-contrast-ratios.png" alt="Side-by-side comparison of low and high color contrast combinations, followed by their corresponding foreground color, background color, and contrast ratio. Extended description below." width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
  Expand for accessible image description
  &lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Low contrast&lt;/th&gt;
&lt;th&gt;High contrast&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Foreground color&lt;/td&gt;
&lt;td&gt;#FFFFFF&lt;/td&gt;
&lt;td&gt;#FFFFFF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Background color&lt;/td&gt;
&lt;td&gt;#5492FF&lt;/td&gt;
&lt;td&gt;#FFFFFF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contrast ratio&lt;/td&gt;
&lt;td&gt;3.02:1&lt;/td&gt;
&lt;td&gt;15.05:1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;/p&gt;

&lt;p&gt;Use a higher contrast ratio to make your site's text legible to users with visual impairments (e.g., cataracts or color blindness). The Web Content Accessibility Guidelines include the following requirements color contrast ratios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.w3.org/TR/WCAG22/#contrast-minimum"&gt;Success Criterion 1.4.3 Contrast (Minimum)&lt;/a&gt; (level AA)

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;4.5:1&lt;/strong&gt; for text (and images of text)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3:1&lt;/strong&gt; for large text (18pt regular weight, or 14pt bold weight)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.w3.org/TR/WCAG22/#contrast-enhanced"&gt;Success Criterion 1.4.6 Contrast (Enhanced)&lt;/a&gt; (level AAA)

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;7:1&lt;/strong&gt; for text (and images of text)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4.5:1&lt;/strong&gt; for large text&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.w3.org/TR/WCAG22/#non-text-contrast"&gt;Success Criterion 1.4.11 Non-text Contrast&lt;/a&gt; (level AA)

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3:1&lt;/strong&gt; for user interface components (e.g., buttons, form elements, or other page controls) or graphical objects (e.g., icons, charts) that are required to understand the content&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Based on these criteria, the low color contrast example from the previous image passes 1.4.3 for large text, but fails it for small text. The high contrast example passes 1.4.3 and 1.4.6 for both large and small text. Both color combinations pass 1.4.11 for non-text elements.&lt;/p&gt;

&lt;p&gt;There are a wide variety of online calculators you can use to determine the contrast ratio between two colors. Some examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.whocanuse.com/"&gt;WhoCanUse&lt;/a&gt;: Simulate what color combinations look like to users with different kinds of visual impairments.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://webaim.org/resources/contrastchecker/"&gt;WebAIM Contrast Calculator&lt;/a&gt;: Use an eyedropper color picker to select a color from anywhere on your screen. (This is helpful if you don't have access to the hex codes for the colors you want to test.)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://polypane.app/color-contrast/"&gt;Polypane Color Contrast Checker&lt;/a&gt;: If the color combination you tested fails one of the WCAG success criteria, it will suggest an alternative color to use instead.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Learn more about color contrast:&lt;/strong&gt; &lt;a href="https://webaim.org/articles/contrast/"&gt;WebAIM: Contrast and Color Accessibility&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tip #2: Add Alternative Text to Images
&lt;/h2&gt;

&lt;p&gt;Images are great for creating engaging websites. They can also be helpful tools for helping readers understand your content. But what happens for non-sighted users who can't see images?&lt;/p&gt;

&lt;p&gt;Many users with visual or learning disabilities use an assistive tool called a &lt;strong&gt;screen reader&lt;/strong&gt; to navigate their computers. A screen reader is a program that translates the text and elements on the screen into audio, so users can hear the page instead of (or potentially in addition to) see it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want to see how it works?&lt;/strong&gt; Check out this video by the Chrome Accessibility team: &lt;a href="https://www.youtube.com/watch?v=Jao3s_CwdRU"&gt;Screen Reader Basics: NVDA -- A11ycasts #9&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nvaccess.org/download/"&gt;NVDA&lt;/a&gt; is only available on Windows computers. Apple computers come with their own built-in screen reader called &lt;a href="https://www.apple.com/voiceover/info/guide/_1121.html"&gt;VoiceOver&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can provide descriptions for screen reader users by adding alternative text (also called alt text) to your images. When a screen reader user moves their focus onto an image, the software announces the image by reading out the alt text.&lt;/p&gt;

&lt;p&gt;How do you add alt text to an image?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you have access to the underlying HTML for your page, you can add alt text to your image tag like this:
&lt;code&gt;&amp;lt;img src="myImage.jpg" alt="Put your image description here" /&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;If you're writing your content in a word processor or content management system, do a quick search on Google or YouTube to see how to add image alt text in your particular tool.

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.google.com/docs/answer/6199477?hl=en"&gt;Add alt text in Google Docs, Sheets, and Slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.microsoft.com/en-us/office/video-improve-accessibility-with-alt-text-9c57ee44-bb48-40e3-aad4-7647fc1dba51"&gt;Add alt text in Microsoft Word&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://support.apple.com/en-us/102031"&gt;Add accessibility descriptions to media in Apple Pages, Keynote, or Numbers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; There are certain scenarios where you don't need to provide alt text for an image. Check &lt;a href="https://www.w3.org/TR/WCAG22/#non-text-content"&gt;WCAG Success Criterion 1.1.1 Non-text Content&lt;/a&gt; for more information.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What should you write in your image description? As it turns out, writing great alt text is as much of an art form as it is a science. Essentially, you want to provide a text equivalent to whatever a sighted user gets out of the image. A lot of that depends on the context in which the image appears in the content.&lt;/p&gt;

&lt;p&gt;One trick to help you get started is to imagine you're describing the image out loud to a friend.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the most important part of the image? Describe that first.

&lt;ul&gt;
&lt;li&gt;For example: "Three dogs running on a grassy lawn."&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;What details would you draw their attention to so that they can recreate the image in their mind? Add those next. The details you choose may depend on the context provided by the text surrounding the image.

&lt;ul&gt;
&lt;li&gt;Using the previous dog example: If the surrounding text is about how dog trainers should handle introducing a new dog to a play group, you might add, "The dogs have relaxed body posture. One dog is doing a play bow in front of the others."&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few other tips to get you started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If there's text in the image, include that in the alt text. (Otherwise, non-sighted users won't have access to that information at all!)&lt;/li&gt;
&lt;li&gt;For complex images like diagrams or charts, consider adding a text equivalent in the surrounding text. Then your alt text can be something like "A diagram"&lt;/li&gt;
&lt;li&gt;Try to keep your descriptions short. Technically there's no character limit, but when screen readers are reading alt text, users don't have a way to pause or rewind the descriptions. If you have a long paragraph of description and a user misses something, they'll have to restart the alt text all the way from the beginning.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Learn more about how to write alt text:&lt;/strong&gt; &lt;a href="https://www.w3.org/WAI/tutorials/images/tips/"&gt;Web Accessibility Initiative: Alt Text Tips and Tricks&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tip #3: Use Descriptive Link Text
&lt;/h2&gt;

&lt;p&gt;Frequently, when content writers add hyperlinks to their content, they'll write a sentence like "For more information, click here," and then add a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a"&gt;hyperlink&lt;/a&gt; to the word "here." But this isn't accessible! According to &lt;a href="https://www.w3.org/TR/WCAG22/#link-purpose-in-context"&gt;WCAG Success Criterion 2.4.4 Link Purpose (In Context)&lt;/a&gt;, linked text needs to have a descriptive name that indicates where the link will take the user.&lt;/p&gt;

&lt;p&gt;Why is this important? Screen readers have a feature that lets users see a list of all the links on the current page. This list lets users quickly navigate to a particular link.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A9nW75H8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://meganesulli.com/static/afc231b4b3f665cd8f19920008250e05/42cbc/voiceover-links-menu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9nW75H8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://meganesulli.com/static/afc231b4b3f665cd8f19920008250e05/42cbc/voiceover-links-menu.png" alt='The VoiceOver Links menu on the WCAG Overview page. Some of the listed link names include "Accessibility Fundamentals", "Planning &amp;amp; Policies", "Web Content - WCAG 2".' width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The links in the list are labeled by their link text. So if all the links in your content just say "here", then the screen reader links menu becomes essentially useless.&lt;/p&gt;

&lt;p&gt;What can you do instead? Try using the title of the page you're linking to. (Want an example? Check out the links sprinkled throughout this post!)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Learn more about descriptive link text:&lt;/strong&gt; &lt;a href="https://www.w3.org/WAI/WCAG22/Understanding/link-purpose-in-context"&gt;Understanding Success Criterion 2.4.4 Link Purpose (In Context)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Next?
&lt;/h2&gt;

&lt;p&gt;Accessibility is important every day, but GAAD provides an opportunity to learn and discuss how we can create inclusive applications for &lt;em&gt;all&lt;/em&gt; users.&lt;/p&gt;

&lt;p&gt;Ready to learn more? Here are some resources to check out next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.w3.org/WAI/fundamentals/"&gt;Accessibility Fundamentals Overview&lt;/a&gt;:  Beginner-friendly resources about how disabled people use technology and general accessibility principles.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.w3.org/WAI/standards-guidelines/wcag/"&gt;WCAG 2 Overview&lt;/a&gt;: An introduction to the WCAG documents and how to use them.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://webaim.org/articles/strategicframework/"&gt;The WebAIM Strategic Accessibility Framework&lt;/a&gt;: A set of indicators and benchmarks for how organizations and leadership can intentionally prioritize accessibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Accessibility"&gt;MDN Web Docs on Accessibility&lt;/a&gt;: A technical introduction to accessible best practices for HTML, CSS, and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://a11y.coffee/"&gt;A11y Coffee&lt;/a&gt;: A collection of tips on accessibility quick wins and testing for developers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://a11ysupport.io/"&gt;A11ySupport.io&lt;/a&gt;: The &lt;a href="https://caniuse.com/"&gt;caniuse&lt;/a&gt; of accessibility. Lists compatibility of various browser accessibility features for different screen reader and browser combinations.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>a11y</category>
      <category>beginners</category>
      <category>html</category>
      <category>writing</category>
    </item>
    <item>
      <title>How to Run a Sprint Retrospective</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Fri, 10 Feb 2023 05:22:23 +0000</pubDate>
      <link>https://dev.to/meganesulli/how-to-run-a-sprint-retrospective-24pp</link>
      <guid>https://dev.to/meganesulli/how-to-run-a-sprint-retrospective-24pp</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Businesses want teams to work together effectively so that they can produce value quickly. But it's not enough to just "always be shipping". Sometimes you need to take a beat, step back as a team, and reflect on your processes. &lt;a href="https://www.huffpost.com/entry/why-going-slow-will-make-you-go-faster_b_7062064" rel="noopener noreferrer"&gt;"Go slow to go fast."&lt;/a&gt; That's where retrospectives come in.&lt;/p&gt;

&lt;p&gt;A retrospective (or retro, for short) is a type of meeting where teammates reflect back on how they worked together over a period of time. Typically, retros are run at the end of an Agile sprint, usually every 2-4 weeks. In a retro, the team looks back on their accomplishments and brainstorms ways to make work more efficient and enjoyable in future sprints.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Sprint Retrospective at a glance:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; To make process improvements by discussing what went well this sprint and what can be improved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Duration:&lt;/strong&gt; 1 hour&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frequency:&lt;/strong&gt; Once per sprint (ideally every 2-3 weeks)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Participants:&lt;/strong&gt; All individual contributors (ICs) &amp;amp; manager(s) on the team&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Why do we need retros?
&lt;/h3&gt;

&lt;p&gt;When you work on a team for a while, sometimes there's friction. Building software is hard, both from the technology side and the people side. There's a lot to balance—clashing personalities, different working preferences, team norms and expectations. But it's not always easy to bring up those issues when you're in the middle of the day-to-day grind. Sprint retrospectives provide a consistent safe space where teammates can bring up the challenges they're facing and find ways to work through them together.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do we &lt;em&gt;really&lt;/em&gt; need a retro at the end of every sprint?
&lt;/h3&gt;

&lt;p&gt;Retros work best when you have them on a regular basis. That way, challenges can be addressed quickly, while there's still time for the team to pivot and make adjustments.&lt;/p&gt;

&lt;p&gt;Think of it like navigation assistance when you're driving. You &lt;em&gt;could&lt;/em&gt; wait until you're hopelessly lost before looking up directions to your final destination. But by that point, it's going to take a lot more effort to get you back on track. On the other hand, if you're using Google Maps from the get-go, you'll get notified as soon as you start heading in the wrong direction, and it'll be much easier to course correct.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F3ee5ad9bbf8da8309d15b3b0a54ba700%2F29007%2Fdiagram-postmortem-vs-retros.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F3ee5ad9bbf8da8309d15b3b0a54ba700%2F29007%2Fdiagram-postmortem-vs-retros.png" alt="A doodle diagram showing two line charts, where the X axis is " value="" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this post, I'll walk you through everything you need to know to facilitate your first sprint retrospective.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before the meeting
&lt;/h2&gt;

&lt;p&gt;To make sure everything runs smoothly on the day of your retro, it's important to prepare all the necessary pieces ahead of time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose a retro framework to use
&lt;/h3&gt;

&lt;p&gt;The retro framework you choose directly impacts the kinds of topics the team will discuss during the meeting.&lt;/p&gt;

&lt;p&gt;Some popular options are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start, Stop, Continue:&lt;/strong&gt; What should we to start, stop, and continue doing as a team?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Liked, Learned, Lacked:&lt;/strong&gt; What did you like or learn this sprint? What was missing?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anchors and Engines:&lt;/strong&gt; What slows us down as a team? What helps us gain momentum?&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Check out &lt;a href="https://www.funretrospectives.com/category/retrospective/" rel="noopener noreferrer"&gt;Fun Retrospectives&lt;/a&gt; for more example reflection frameworks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;How do you decide which framework to pick? If you get the sense that there's something the team wants or needs to talk about, you can find (or create!) categories that lead naturally to that kind of conversation. Otherwise, pick whichever framework strikes your fancy. (You can always mix it up and choose a different one for the next retro.)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; If your team tends to feel nervous sharing constructive feedback, try renaming those categories to something like "Wished for" or "What could be improved?" (which sound a bit gentler than "Stop" or "Disliked").&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Set up the retro board
&lt;/h3&gt;

&lt;p&gt;Now that you know what retro framework you'll be using, it's time to set up a retro board to guide the conversation.&lt;/p&gt;

&lt;p&gt;Personally, I prefer to use a virtual retro board instead of a physical whiteboard, even when I'm facilitating a retro in person. There's less cleanup, and the team gets to keep a digital record of the board that they can refer back to after the meeting. (But if analog is more your thing, that works too! Just make sure to gather enough sticky notes and pens for everyone participating.)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Platform options for building a virtual retro board:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(Ordered from least to most structured.)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.figma.com/figjam/" rel="noopener noreferrer"&gt;FigJam&lt;/a&gt;: Super flexible, and feels the most like a whiteboard.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://trello.com/" rel="noopener noreferrer"&gt;Trello&lt;/a&gt;: Kanban boards with columns, with optional add-ons for features like card voting.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://easyretro.io" rel="noopener noreferrer"&gt;EasyRetro&lt;/a&gt;: Kanban-style boards specifically for retros, with some built-in features like voting and sorting cards.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.parabol.co/" rel="noopener noreferrer"&gt;Parabol&lt;/a&gt;: Does much of the heavy lifting of facilitating for you. Applies a pre-defined structure to your retro agenda.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;To set up your retro board:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add a column for each of the categories from your retro framework.&lt;/li&gt;
&lt;li&gt;Add additional columns for "Shoutouts" (where teammates can thank and celebrate each other) and "Action Items" (where you'll track next steps that come out of the retro conversation).&lt;/li&gt;
&lt;li&gt;Include a link to the board in the calendar invite for your meeting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F169aaf6399e5ca27d5f9e568be8fc136%2F29007%2Fboard-1-setup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F169aaf6399e5ca27d5f9e568be8fc136%2F29007%2Fboard-1-setup.png" alt="A screenshot of an empty retro board in FigJam. It has separate sections labeled, " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Assign a notetaker for the retro
&lt;/h3&gt;

&lt;p&gt;The last piece of prep is to assign someone to take notes during the retro. Ideally, this would be someone different from the facilitator (who will be focused on managing the conversation).&lt;/p&gt;

&lt;p&gt;The notetaker's job is to make sure that all action items brought up in the meeting are added to the Action Items column on the board. They may also choose to write down additional context that comes up through the conversation.&lt;/p&gt;

&lt;p&gt;To keep things fair and equally distribute the burden, I like to have a notetaker rotation. In the meeting invite, or at the top of each retro board, I'll write all the retro participants' names in alphabetical order. Then at the start of each retro, we check the list and see whose turn it is to take notes. (If you want to take things to the next level, you can also have a similar rotation for deciding who will &lt;em&gt;facilitate&lt;/em&gt; the retro.)&lt;/p&gt;

&lt;h2&gt;
  
  
  During the meeting
&lt;/h2&gt;

&lt;p&gt;It's game time! There are many ways to run a retro. Here's my preferred agenda:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Set expectations (5 minutes)
&lt;/h3&gt;

&lt;p&gt;As the facilitator, it's your job to set the tone for the meeting and create a space where folks feel comfortable sharing with the group.&lt;/p&gt;

&lt;p&gt;I like to open retros by doing the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Remind everyone of the &lt;a href="https://www.retrium.com/blog/an-agile-prime-directive" rel="noopener noreferrer"&gt;Agile Prime Directive&lt;/a&gt;:&lt;/strong&gt; "Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why? Retros are not about placing blame for things that did or didn't happen this sprint. Instead, they're about looking for opportunities to learn and improve in the future.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Take a quick pulse check.&lt;/strong&gt; In the chat, each participant writes a number from 1-5, rating how they're feeling going into this conversation. (Where 5 means "I'm open to talking about anything," and 1 means "I'm more comfortable listening/observing".)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why? We're all human. Sometimes, there are other things going on in our lives, and we're not in the mood to have a potentially squishy conversation about teamwork. As a facilitator, it's good to know what energy the group is starting with. If many folks are feeling more reserved, it might be a good idea to reschedule the retro for a time when folks are more open to sharing and discussing.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Review the action items from the previous retro.&lt;/strong&gt; Follow up on what's been done and what still needs to be carried over. (The notetaker copies over any remaining action items to the Action Items section of the new retro board.)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why? Knowing that action items will actually be followed up on helps keep folks accountable for what the said they'd get done. Or it helps to remind folks of tasks they might have forgotten about in the shuffle of day-to-day work.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Brain dump (10 minutes)
&lt;/h3&gt;

&lt;p&gt;Now that everyone is in the right headspace, it's time for folks to add all their ideas to the retro board!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Set a timer for 7 minutes. Silently, each teammate simultaneously adds their thoughts to each topic on the retro board. Teammates write each thought on a separate card or sticky note. They can write as many cards as it takes to cover everything that's on their mind.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F7818e5e94d0f15cb611adefb49cb6512%2F29007%2Fboard-2-braindump.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F7818e5e94d0f15cb611adefb49cb6512%2F29007%2Fboard-2-braindump.png" alt="A screenshot of the same FigJam retro board, but filled with colorful sticky notes in all the sections except Action Items. Some example notes: " start="" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When the timer goes off (or when everyone's done writing), take another 2-3 minutes as a group to read over the cards silently, and group them into related topics. Draw boundaries around the related cards, and add a concise label to summarize the topic (like "too many meetings" or "unclear team priorities").&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fb7eedefcf76dca7e74f736c61cfc5bbc%2F29007%2Fboard-3-sort.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fb7eedefcf76dca7e74f736c61cfc5bbc%2F29007%2Fboard-3-sort.png" alt="A screenshot of the same FigJam retro board from before, but with the sticky notes reorganized to group related cards. Someone used the pen tool to draw a circle around the related cards, and they added a text label like " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Retrospectives are about process, not progress. When identifying areas for improvement, focus more on &lt;em&gt;how&lt;/em&gt; you're working together, as opposed to &lt;em&gt;what&lt;/em&gt; work still needs to be done. (There are other types of meetings for those tactical progress conversations, like sprint planning and standups.)&lt;/p&gt;

&lt;p&gt;For example, let's say the team didn't finish all the tickets assigned for the sprint. Instead of writing a card like, "We still need to do tickets X, Y, and Z," encourage teammates to dig deeper and think about what may have gotten in the way of completing that work. For example, "We added new tickets to the sprint halfway through the week, which meant our workload estimations were off."&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 3: Vote (1 minute)
&lt;/h3&gt;

&lt;p&gt;Once all participants have had a chance to read the cards to themselves, it's time to vote on which topics to discuss as a group. This gives everyone a chance to show support for their teammates' perspectives, which helps folks feel validated while also identifying broader patterns in team sentiments.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Each teammate gets a total of 5 votes, which they distribute among the different topics. (You're allowed to vote for the same topic multiple times.) &lt;/li&gt;
&lt;li&gt;Once all the votes have been tallied, you'll have a prioritized list of topics to discuss in the next step.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F0138a109f7b8dd6a2000c80df967adc8%2F29007%2Fboard-4-votes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F0138a109f7b8dd6a2000c80df967adc8%2F29007%2Fboard-4-votes.png" alt="A screenshot of the same FigJam retro board from before, but with stamps (hearts, stars, thumbs up, and +1's) added to vote for which topics each person wants to discuss." width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The goal of the voting exercise is to rank which topics the team wants to talk about as a group. This means that some cards or topics (with the least votes) won't be verbally addressed during the meeting. But that's okay, because everyone had a chance to read them all in the previous step.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 4: Discuss (30 minutes)
&lt;/h3&gt;

&lt;p&gt;You've got a list of ranked topics. Now it's time to dig into the discussion! (This is the meat and potatoes of your retro.)&lt;/p&gt;

&lt;p&gt;As a group, discuss each topic on the board. Start with the one with the most votes, and work your way down from there. For each topic:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To kick off the conversation, &lt;strong&gt;restate the topic&lt;/strong&gt; (or read the card aloud) and then ask the group, "Does anyone want to share some more context on that?" Often, the person who wrote the card may speak up to add some more detail, or another teammate may be inspired to share their experience.&lt;/li&gt;
&lt;li&gt;Guide the conversation by &lt;strong&gt;asking follow-up questions&lt;/strong&gt; like, "What do you mean by [something they said]?" or "Can you share an example?" or even just "Will you say more about that?" If the discussion starts to drift to another topic, refocus the group by saying something like, "Before we get to that, was there anything else anyone wanted to add about [the previous topic]?"&lt;/li&gt;
&lt;li&gt;Once the group has a shared understanding of the current topic, shift the discussion to &lt;strong&gt;action items&lt;/strong&gt;. You can say something like, "What action items could we take that would help address [the topic]?" The notetaker tracks action items as they're identified and adds them to the Action Items section of the board.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Ff466bc411b2da10793a72d861e2331c3%2F29007%2Fboard-5-action-items.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Ff466bc411b2da10793a72d861e2331c3%2F29007%2Fboard-5-action-items.png" alt="A screenshot of the same FigJam retro board from before, but with new sticky notes under the " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Typically, you'll have more topics than you can cover in the allotted amount of time, but that's okay. If those undiscussed topics are still important, odds are they'll show up again in a future retro.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Facilitation tips:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Leading group discussions is hard! Here are some suggestions for how to handle common pitfalls:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ask, don't tell.&lt;/strong&gt; Avoid the temptation to read out the cards and then add your own perspective on what it's referring to. You may be missing context or misinterpreting the author's original intention. Instead, ask follow-up questions and let teammates share what they mean in their own words.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sit with the silence.&lt;/strong&gt; Often, new facilitators will ask a question, and if no one instantly responds they'll move on to the next topic. But it takes participants time to hear the question, think of a response, decide how to word their response, find the unmute button, etc. Seasoned educators typically recommend leaving 5 seconds of &lt;a href="https://www.teachervision.com/teaching-strategies/your-secret-weapon-wait-time" rel="noopener noreferrer"&gt;wait time&lt;/a&gt; after asking a question, to give learners an opportunity to answer. (It may feel awkward at first, but I promise the silence feels longer to you than it does to everyone else!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use timers!&lt;/strong&gt; Does your group tend to spend too long on a single topic? Set a 3-minute timer when you start discussing a new topic. When the timer goes off, have a quick show of hands to see who wants to continue discussing this topic and who wants to move on. (Again, it may feel awkward interrupting the conversation at first, but after a few rounds folks will get used to the rhythm.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 5: Close out the meeting (5 minutes)
&lt;/h3&gt;

&lt;p&gt;By this point, you've discussed the topics that were most important to the team, and the group has identified a list of action items to follow up on after the meeting.&lt;/p&gt;

&lt;p&gt;Now it's time to wrap things up:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Review the tasks in the Action Items column, and make sure each one is assigned to an individual owner.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The assigned owner doesn't necessarily have to be the one who will actually complete the task. But they're the one responsible for following up on it and making sure the team doesn't forget about it.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fc9162c6edf385eea9af3e346f7f299d2%2F29007%2Fboard-6-assign-owners.png" alt="A screenshot of the same FigJam retro board from before, but with a single name assigned to each of the cards in the action items section." width="800" height="400"&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you have a facilitator rotation, assign the facilitator (and notetaker) for the next retro, so that they know to start preparing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;(Optional) I like to end things on a high note by sharing "&lt;a href="https://en.wikipedia.org/wiki/Claude_Steiner#A_Warm_Fuzzy_Tale" rel="noopener noreferrer"&gt;warm fuzzies&lt;/a&gt;". Each teammate takes a moment to share a shoutout with someone else on the team. If everyone is comfortable with it, share these shoutouts in a public team channel so that others have visibility into their awesome work! Or if they'd prefer private praise, send it to them in a direct message.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  After the meeting
&lt;/h2&gt;

&lt;p&gt;Shortly after the retro, &lt;strong&gt;send a Slack or email summary&lt;/strong&gt; of the action items and their assigned owners, so that teammates can keep them top-of-mind.&lt;/p&gt;

&lt;p&gt;And that's all there is to it! Congratulations on facilitating your first sprint retrospective!&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap it up
&lt;/h2&gt;

&lt;p&gt;Sprint retrospectives are my favorite kind of meeting. They're a chance to reflect back on your work as a team and celebrate your accomplishments. A chance to talk about challenging experiences and find ways to ease that friction in the future. A chance to connect with teammates and say, "This was how I felt over the last few weeks. Did you feel that too?"&lt;/p&gt;

&lt;p&gt;Sometimes they can lead to tough conversations. But if you can create a safe space where your team feels comfortable opening up and being vulnerable, it can lead to transformational changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.figma.com/file/Rfl6J3uHjWYJ5cmnGp6q9R/Example-Retro-Board?node-id=0%3A1&amp;amp;t=xr9QPT4Q45tzEhuO-0" rel="noopener noreferrer"&gt;Example retro board in FigJam&lt;/a&gt;: Take a closer look at the sample retro board from this post. (In your own retros, you won't need multiple copies of your board in the same file.)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.funretrospectives.com/" rel="noopener noreferrer"&gt;Fun Retrospectives&lt;/a&gt;: List of several different retro frameworks you can use to structure your retro board. Includes different formats for different kinds of reflections. Choose whatever one fits the kind of conversation you think your team needs to have.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://retrospectivewiki.org/" rel="noopener noreferrer"&gt;Agile Retrospective Resource Wiki&lt;/a&gt;: A collection of sample agendas and tips for running retros. &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://leaddev.com/communication-relationships/how-run-great-retrospective" rel="noopener noreferrer"&gt;How to run a great retrospective&lt;/a&gt;: LeadDev Blog post by Nickolas Means.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=ApAkqxHZq6o" rel="noopener noreferrer"&gt;Team Meetings That Don't Suck - Avoid Retrospectives Antipatterns&lt;/a&gt;: GOTO Conference talk by Aino Vonge Corry, author of &lt;a href="https://metadeveloper.com/retrospective-antipatterns/" rel="noopener noreferrer"&gt;Retrospectives Antipatterns&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
      <category>gratitude</category>
      <category>community</category>
    </item>
    <item>
      <title>How to run a 360 Speedback</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Wed, 23 Nov 2022 01:04:16 +0000</pubDate>
      <link>https://dev.to/meganesulli/how-to-run-a-360-speedback-1ipa</link>
      <guid>https://dev.to/meganesulli/how-to-run-a-360-speedback-1ipa</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;We all need feedback to help us grow. As Sarah Drasner says in her book, &lt;a href="https://www.barnesandnoble.com/w/engineering-management-for-the-rest-of-us-sarah-drasner/1142398485"&gt;&lt;em&gt;Engineering Management for the Rest of Us&lt;/em&gt;&lt;/a&gt;, "We can steer our own ship to some extent, but at some point we can't always see our own work clearly, and we need input from others to improve."&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;360˚ speedback&lt;/strong&gt; is a type of meeting used for quickly sharing 1:1 feedback with teammates. (It's kind of like speed dating, but for exchanging feedback!) By the end of the speedback, everyone on the team will have shared feedback with everyone else.&lt;/p&gt;

&lt;p&gt;In this post, you'll learn how to prepare for and facilitate your first speedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Before the meeting:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Teammates share their individual &lt;strong&gt;goals&lt;/strong&gt; for what they want feedback on.

&lt;ul&gt;
&lt;li&gt;This can be anything that the individual finds helpful: a behavior they're trying to improve, leadership skills they're developing, content areas they're trying to build expertise in, etc.&lt;/li&gt;
&lt;li&gt;Store these goals in a shared document or spreadsheet. Using a spreadsheet is a handy way to track how goals change over time. Label each row with a teammate's name, and label each column with the date of the speedback session. In each cell, teammates can put the goals they're looking for feedback on for that speedback session. (Check out the example below.)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Teammate&lt;/th&gt;
&lt;th&gt;November 17, 2022&lt;/th&gt;
&lt;th&gt;October 6, 2022&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Megan&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Meeting facilitation.&lt;/strong&gt; Do our meetings feel efficient? What could I improve about the way I facilitate?&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tahia&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Code reviews.&lt;/strong&gt; Am I leaving a good balance of positive and constructive comments?&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Angelo&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Communication.&lt;/strong&gt; Are my standup updates clear and easy to understand? What kind of information is most helpful in these updates?&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Prepare this list of goals as far in advance as possible. That way, teammates have time to keep an eye out for concrete examples of specific behaviors, which they can reference to give more meaningful feedback.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The speedback facilitator creates the list of &lt;strong&gt;pair rotations&lt;/strong&gt; for each round. (See the appendix below on creating pair rotations.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The speedback facilitator creates the &lt;strong&gt;meeting invite&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The total meeting duration should be 7 minutes times the number of pair rotations. (So if your team has 5 rounds of pair rotations, the meeting should be 35 minutes long.)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  During the meeting:
&lt;/h3&gt;

&lt;p&gt;Complete as many rounds as it takes to get through all the pair rotations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Speedbacks can be run remotely or in person! This post assumes you're running a remote speedback.&lt;/p&gt;

&lt;p&gt;If you're facilitating an in-person speedback, the process looks mostly the same. But instead of using Zoom breakout rooms, you'll need to designate separate quiet areas where each pair can speak in private.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For each round:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;(1 minute)&lt;/strong&gt; The facilitator sets up separate Zoom breakout rooms for each pair, and everyone joins their assigned breakout room. (If you're doing an in-person speedback, this time can be used for physically moving to the location for your next pairing.)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each breakout room contains a single pair of teammates, Person A and Person B.&lt;/li&gt;
&lt;li&gt;Have an odd number of participants? One person will be alone each round. I like to have this person look up a quick joke or fun fact to share when the group comes back together at the end of the round, while the facilitator assigns the next set of breakout rooms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oRLg7KT1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/bb04bb11de7d3f01901640adecc74376/29114/assign-rooms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oRLg7KT1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/bb04bb11de7d3f01901640adecc74376/29114/assign-rooms.png" alt="A doodle of a Zoom room with 6 participants, with arrows breaking the meeting up into 3 separate breakout rooms with 2 participants each." width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;(3 minutes)&lt;/strong&gt; In each breakout room, one person sets a timer for 3 minutes. Then Person A gives Person B feedback. Person B listens and takes notes. Person B can ask follow-up questions if needed, but Person A should be doing most of the talking.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This feedback can be related to what Person B put in their goals, or it can be something else Person A thinks would be helpful to hear. (Praise, areas for growth, progress on feedback topics from the previous speedback, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W4YZEwp7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/82bac2e88cceefc54e925c75c01da52a/29114/person-a-shares.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W4YZEwp7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/82bac2e88cceefc54e925c75c01da52a/29114/person-a-shares.png" alt="A doodle of one pair of teammates, labeled A and B. Person A is talking to Person B." width="880" height="377"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;(3 minutes)&lt;/strong&gt; When the first timer goes off, each pair switches roles and sets another timer for 3 minutes. Now Person B gives Person A feedback. Similarly, Person B should be doing most of the talking, while Person A listens.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s0ufsMjq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/341dd77c57d2e9b3b8d65da4857ce86a/29114/person-b-shares.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s0ufsMjq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/341dd77c57d2e9b3b8d65da4857ce86a/29114/person-b-shares.png" alt="A doodle of the same pair of teammates, labeled A and B. Now Person B is talking to Person A." width="880" height="385"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;When the second timer goes off, all the pairs rejoin the main Zoom room and wait for the next round.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4dw1Y-jZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/d65a7434f4f298491337e765a0576c6a/29114/reconvene.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4dw1Y-jZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/d65a7434f4f298491337e765a0576c6a/29114/reconvene.png" alt="A doodle of the partipants in the 3 breakout rooms coming back together into the main Zoom room." width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Not sure what to say?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here are some resources with tips on how to give and receive feedback gracefully:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.linkedin.com/pulse/how-get-feedback-without-falling-apart-elisabeth-fosslien"&gt;How to get feedback without falling apart&lt;/a&gt;, by Liz Fosslien. Tips on receiving feedback.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.linkedin.com/pulse/how-give-feedback-doesnt-pack-painful-punch-elisabeth-fosslien"&gt;How to give feedback that doesn't pack a painful punch&lt;/a&gt;, by Liz Fosslien. Tips on giving constructive feedback.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once the group makes it through all the pair rotations, you're done! 🥳&lt;/p&gt;

&lt;h3&gt;
  
  
  After the meeting:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The facilitator schedules the next speedback! (I've found that having one speedback every 4-6 weeks is a good cadence. It's frequent enough to check in regularly, and spaced out enough to leave time to make meaningful progress.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Teammates update their individual goals in the shared doc. They can choose to keep working on the same goal, or they can switch it up and pick a different thing they'd like feedback on.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Wrap it up
&lt;/h2&gt;

&lt;p&gt;Speedbacks are a great time to celebrate your teammates and the hard work you all do. They also help us recognize where we still have room to grow and improve.&lt;/p&gt;

&lt;p&gt;Giving and receiving feedback might feel scary at first. But the more you practice having these conversations, the easier they'll get. Hang in there!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A closing caveat&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This one goes out to all you people-pleasers out there.&lt;/p&gt;

&lt;p&gt;It's important to remember that feedback is a gift. But ultimately, you get to decide whether or not to act on a specific piece of feedback.&lt;/p&gt;

&lt;p&gt;If something feels off about a suggestion, you don't &lt;em&gt;have&lt;/em&gt; to address it. It's okay to note it as a single data point, and move on. That said, if you hear the same suggestion from multiple teammates, it may be a sign that there's something worth reevaluating.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Appendix: Creating pair rotations
&lt;/h2&gt;

&lt;p&gt;These instructions will help the facilitator create the list of pair rotations for the speedback.&lt;/p&gt;

&lt;h3&gt;
  
  
  If you have an &lt;strong&gt;odd&lt;/strong&gt; number of participants:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;For the first round, write everyone's names in two rows. Each column represents a pair who will be matched up for that round. There should be one empty space left in one of the rooms.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For the next round, rotate each person's name one position clockwise around the circle. Make sure to skip over the empty space, so that the empty space stays in the same position from the first round.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Continue rotating everyone around the circle for each round, until everyone makes it back to the position where they started.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here's an example for a group of 5 participants (named A, B, C, D, and E):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lD8x-9vI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/908fdbc9a40f08258f14fcea50d3334f/e4900/pair-rotation-odd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lD8x-9vI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/908fdbc9a40f08258f14fcea50d3334f/e4900/pair-rotation-odd.png" alt="A diagram showing the pair rotations for a team of 5. Detailed description below." width="880" height="1856"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
  &lt;em&gt;Expand for detailed image description&lt;/em&gt;
  &lt;p&gt;There are five rows, one for each round of the speedback. There are also three columns, one for each breakout room.&lt;/p&gt;

&lt;p&gt;In round 1:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has only Person A.&lt;/li&gt;
&lt;li&gt;Room 2 has Person B and Person E.&lt;/li&gt;
&lt;li&gt;Room 3 has person C and Person D.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then all the names rotate one position clockwise. In round 2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has only Person E.&lt;/li&gt;
&lt;li&gt;Room 2 has Person A and Person D.&lt;/li&gt;
&lt;li&gt;Room 3 has Person B and Person C.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Again, all the names rotate one position clockwise. In round 3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has only Person D.&lt;/li&gt;
&lt;li&gt;Room 2 has Person E and Person C.&lt;/li&gt;
&lt;li&gt;Room 3 has Person A and Person B.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Again, all the names rotate one position clockwise. In round 4:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has only Person C.&lt;/li&gt;
&lt;li&gt;Room 2 has Person D and Person B.&lt;/li&gt;
&lt;li&gt;Room 3 has Person E and Person A.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once more, all the names rotate one position clockwise. In round 5:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has only Person B.&lt;/li&gt;
&lt;li&gt;Room 2 has Person C and Person A.&lt;/li&gt;
&lt;li&gt;Room 3 has Person D and Person E.&lt;/li&gt;
&lt;/ul&gt;



&lt;/p&gt;

&lt;h3&gt;
  
  
  If you have an &lt;strong&gt;even&lt;/strong&gt; number of participants:
&lt;/h3&gt;

&lt;p&gt;The process for assigning pairs is similar, with one difference: After step 1, choose one person to stay in the same position for every round. Then rotate everyone else using the same process as before.&lt;/p&gt;

&lt;p&gt;Here's an example with 4 participants (named A, B, C, and D):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SgP1b4aD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/e53bf42f97f1956980709f2168b36e85/41d3b/pair-rotation-even.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SgP1b4aD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/e53bf42f97f1956980709f2168b36e85/41d3b/pair-rotation-even.png" alt="A diagram showing the pair rotations for a team of 4. Detailed description below." width="774" height="1604"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
  &lt;em&gt;Expand for detailed image description&lt;/em&gt;
  &lt;p&gt;With an even number of teammates, pick one person to stay in the same place every round, and rotate everyone else. (In this example, Person A stays in the same position every round.)&lt;/p&gt;

&lt;p&gt;There are three rows, one for each round of the speedback. There are also two columns, one for each breakout room.&lt;/p&gt;

&lt;p&gt;In round 1:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has Person A and Person D.&lt;/li&gt;
&lt;li&gt;Room 2 has Person B and Person C.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then all the names (except Person A) rotate one position clockwise. In round 2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has Person A and Person C.&lt;/li&gt;
&lt;li&gt;Room 2 has Person D and Person B.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once more, all the names (except Person A) rotate one position clockwise. In round 3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Room 1 has Person A and Person B.&lt;/li&gt;
&lt;li&gt;Room 2 has Person C and Person D.&lt;/li&gt;
&lt;/ul&gt;



&lt;/p&gt;

</description>
      <category>management</category>
      <category>feedback</category>
      <category>meetings</category>
    </item>
    <item>
      <title>Switching between zsh Themes with a Shell Command</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Thu, 07 Jul 2022 07:04:42 +0000</pubDate>
      <link>https://dev.to/meganesulli/switching-between-zsh-themes-with-a-shell-command-501</link>
      <guid>https://dev.to/meganesulli/switching-between-zsh-themes-with-a-shell-command-501</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;When you're recording a screencast for your latest piece of educational content, it's a good idea to simplify your dev setup. Removing distracting tooling customizations reduces cognitive load, so that learners can focus on the key ideas you want them to understand.&lt;/p&gt;

&lt;p&gt;But as a developer, you probably also have your own preferences for tooling when you're working on your own programming projects outside of teaching.&lt;/p&gt;

&lt;p&gt;There's a great post by &lt;a href="https://twitter.com/jsjoeio" rel="noopener noreferrer"&gt;Joe Previte&lt;/a&gt; on &lt;a href="https://dev.to/jsjoeio/how-to-create-code-profiles-in-vscode-3ofo"&gt;How to Create Code Profiles in VSCode&lt;/a&gt;, which shows you how to create a shell command that switches between two different sets of VS Code settings. &lt;/p&gt;

&lt;p&gt;In this post, we'll expand that shell command to also switch between command prompt themes, to keep your terminal simple and distraction-free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;This post assumes that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You're using &lt;a href="https://en.wikipedia.org/wiki/Z_shell" rel="noopener noreferrer"&gt;zsh&lt;/a&gt;.

&lt;ul&gt;
&lt;li&gt;Not sure which shell you're using? On a Mac, open the Terminal app, and run &lt;code&gt;echo $SHELL&lt;/code&gt;. It should output &lt;code&gt;/bin/zsh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Note:&lt;/strong&gt; If you're using bash, you can still use the same principles from this post. But anywhere it says &lt;code&gt;zshrc&lt;/code&gt;, you'll use &lt;code&gt;bashrc&lt;/code&gt; instead.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;You have &lt;a href="https://ohmyz.sh/" rel="noopener noreferrer"&gt;Oh My Zsh&lt;/a&gt; installed. This is what we'll use for customizing zsh themes.&lt;/li&gt;

&lt;li&gt;You've &lt;a href="https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line" rel="noopener noreferrer"&gt;set up VS Code to allow launching from the command line&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;You've followed Joe's post on &lt;a href="https://dev.to/jsjoeio/how-to-create-code-profiles-in-vscode-3ofo"&gt;How to Create Code Profiles in VSCode&lt;/a&gt;.

&lt;ul&gt;
&lt;li&gt;TL;DR: Create a new file at &lt;code&gt;~/code_profiles/teaching/data/User/settings.json&lt;/code&gt;. Paste your VS Code settings for screencasts in there.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Not sure what settings to use for screencasts?
&lt;/h3&gt;

&lt;p&gt;Here are the settings we use at Apollo for recording screencasts for the &lt;a href="https://www.apollographql.com/tutorials/" rel="noopener noreferrer"&gt;Odyssey learning platform&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"zenMode.hideLineNumbers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"workbench.colorTheme"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Apollo Midnight"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.quickSuggestions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;  
    &lt;/span&gt;&lt;span class="nl"&gt;"other"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
    &lt;/span&gt;&lt;span class="nl"&gt;"comments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
    &lt;/span&gt;&lt;span class="nl"&gt;"strings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.wordBasedSuggestions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.suggestOnTriggerCharacters"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"workbench.statusBar.visible"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.renderLineHighlight"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"none"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"javascript.updateImportsOnFileMove.enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"always"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.minimap.enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"git.enableSmartCommit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"window.zoomLevel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"zenMode.centerLayout"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"zenMode.fullScreen"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.suggest.snippetsPreventQuickSuggestions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"html.suggest.html5"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.parameterHints.enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"workbench.tips.enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.lightbulb.enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.hover.sticky"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"npm.fetchOnlinePackageInfo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.hover.enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.formatOnSave"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.fontSize"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"git.enabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;prevents&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;color-coding&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;file&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;names&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Explorer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;sidebar&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;based&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Git&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;status&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"prettier.printWidth"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.glyphMargin"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.cursorBlinking"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"solid"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"editor.defaultFormatter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"esbenp.prettier-vscode"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"[javascript]"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;  
    &lt;/span&gt;&lt;span class="nl"&gt;"editor.defaultFormatter"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"esbenp.prettier-vscode"&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"prettier.enable"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"eslint.format.enable"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"workbench.fontAliasing"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;  
  &lt;/span&gt;&lt;span class="nl"&gt;"workbench.activityBar.visible"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;  
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What you will build
&lt;/h2&gt;

&lt;p&gt;Joe's post sets up a &lt;code&gt;teach&lt;/code&gt; &lt;a href="https://en.wikipedia.org/wiki/Alias_%28command%29" rel="noopener noreferrer"&gt;alias&lt;/a&gt;, which you can run from the command line. This command opens a folder in a new VS Code window, with your screencasting settings loaded.&lt;/p&gt;

&lt;p&gt;In this post, we'll expand the &lt;code&gt;teach&lt;/code&gt; command to understand a few different options. Here's the API we'll build:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;teach screencast &amp;lt;folder&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Opens the specified folder in VS Code using your screencasting settings.&lt;/li&gt;
&lt;li&gt;Switches shell preference to your screencasting zsh theme.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;teach reset&lt;/code&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sets shell preference back to your personal zsh theme.&lt;/li&gt;
&lt;li&gt;The next time you run &lt;code&gt;code &amp;lt;file&amp;gt;&lt;/code&gt; from the command line, it will load VS code with your original personal settings.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The architecture
&lt;/h2&gt;

&lt;p&gt;To build the &lt;code&gt;teach&lt;/code&gt; command, we'll be configuring our &lt;code&gt;~/.zshrc&lt;/code&gt; file. The &lt;code&gt;~/.zshrc&lt;/code&gt; file gets run automatically whenever a new terminal window is open. (The "rc" stands for "run commands".)&lt;/p&gt;

&lt;p&gt;Here's a high-level overview of the architecture we'll build to load the correct shell theme: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F34860a228c14a668da374924f56dd13c%2F9116c%2Farchitecture-diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F34860a228c14a668da374924f56dd13c%2F9116c%2Farchitecture-diagram.png" alt="An architecture diagram showing how the files for our teach command are connected. Detailed explanation below."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Whenever a new terminal window is opened, the &lt;code&gt;~/.zshrc&lt;/code&gt; file runs.&lt;/li&gt;
&lt;li&gt;We'll set up our &lt;code&gt;~/.zshrc&lt;/code&gt; file to source another file called &lt;code&gt;~/zshrc/teach.sh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;~/zshrc/teach.sh&lt;/code&gt; script will check the contents of a text file called &lt;code&gt;~/zshrc/CURRENT_PROMPT_THEME&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Use the contents of &lt;code&gt;CURRENT_PROMPT_THEME&lt;/code&gt; to load the correct zsh theme.

&lt;ul&gt;
&lt;li&gt;If the file's contents are the string "screencast", then &lt;code&gt;~/zshrc/teach.sh&lt;/code&gt; will source the zsh theme from the &lt;code&gt;~/zshrc/screencast-zsh-theme.sh&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;Otherwise, if the file's contents are the string "personal", then &lt;code&gt;~/zshrc/teach.sh&lt;/code&gt; will source the zsh theme from &lt;code&gt;~/zshrc/personal-zsh-theme.sh&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You could (in the way that all things are possible) just put all this logic directly into your &lt;code&gt;~/.zshrc&lt;/code&gt; file. But we're going to break it up into multiple files, to keep things modular and tidy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Instructions
&lt;/h2&gt;

&lt;p&gt;Let's get to it!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1) Create a new file called &lt;code&gt;~/zshrc/personal-zsh-theme.sh&lt;/code&gt;. You can do this from the command line by running the following:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir ~/zshrc
touch ~/zshrc/personal-zsh-theme.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;2) Move your existing personal zsh theme settings out of &lt;code&gt;~/.zshrc&lt;/code&gt; and into the &lt;code&gt;~/zshrc/personal-prompt.sh&lt;/code&gt; file. Here's what mine looks like:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Path to your oh-my-zsh installation.&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ZSH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/Users/megansullivan/.oh-my-zsh"&lt;/span&gt;

&lt;span class="c"&gt;# Set name of the theme to load --- if set to "random", it will&lt;/span&gt;
&lt;span class="c"&gt;# load a random theme each time oh-my-zsh is loaded, in which case,&lt;/span&gt;
&lt;span class="c"&gt;# to know which specific one was loaded, run: echo $RANDOM_THEME&lt;/span&gt;
&lt;span class="c"&gt;# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes&lt;/span&gt;
&lt;span class="nv"&gt;ZSH_THEME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"robbyrussell"&lt;/span&gt;

&lt;span class="c"&gt;# Which plugins would you like to load?&lt;/span&gt;
&lt;span class="c"&gt;# Standard plugins can be found in $ZSH/plugins/&lt;/span&gt;
&lt;span class="c"&gt;# Custom plugins may be added to $ZSH_CUSTOM/plugins/&lt;/span&gt;
&lt;span class="c"&gt;# Example format: plugins=(rails git textmate ruby lighthouse)&lt;/span&gt;
&lt;span class="c"&gt;# Add wisely, as too many plugins slow down shell startup.&lt;/span&gt;
&lt;span class="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;git&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;source&lt;/span&gt; &lt;span class="nv"&gt;$ZSH&lt;/span&gt;/oh-my-zsh.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;3) Create a new file, &lt;code&gt;~/zshrc/screencast-zsh-theme.sh&lt;/code&gt;. You can do this from the command line by running the following command:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch ~/zshrc/screencast-zsh-theme.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;4) Put your zsh theme settings for screencasting in the new &lt;code&gt;~/zshrc/screencast-zsh-theme.sh&lt;/code&gt; file. At Apollo we use the &lt;a href="https://github.com/romkatv/powerlevel10k" rel="noopener noreferrer"&gt;powerlevel10k&lt;/a&gt; theme for screencasts, so here's what my teach theme looks like:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.&lt;/span&gt;
&lt;span class="c"&gt;# Initialization code that may require console input (password prompts, [y/n]&lt;/span&gt;
&lt;span class="c"&gt;# confirmations, etc.) must go above this block; everything else may go below.&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;XDG_CACHE_HOME&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="p"&gt;/.cache&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/p10k-instant-prompt-&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="p"&gt;(%)&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;%n&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.zsh"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
  &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;XDG_CACHE_HOME&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="p"&gt;/.cache&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/p10k-instant-prompt-&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="p"&gt;(%)&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;%n&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;.zsh"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;

&lt;span class="c"&gt;# Path to your oh-my-zsh installation.&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ZSH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/Users/megansullivan/.oh-my-zsh"&lt;/span&gt;

&lt;span class="c"&gt;# Set name of the theme to load --- if set to "random", it will&lt;/span&gt;
&lt;span class="c"&gt;# load a random theme each time oh-my-zsh is loaded, in which case,&lt;/span&gt;
&lt;span class="c"&gt;# to know which specific one was loaded, run: echo $RANDOM_THEME&lt;/span&gt;
&lt;span class="c"&gt;# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes&lt;/span&gt;
&lt;span class="nv"&gt;ZSH_THEME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"powerlevel10k/powerlevel10k"&lt;/span&gt;

&lt;span class="c"&gt;# Which plugins would you like to load?&lt;/span&gt;
&lt;span class="c"&gt;# Standard plugins can be found in $ZSH/plugins/&lt;/span&gt;
&lt;span class="c"&gt;# Custom plugins may be added to $ZSH_CUSTOM/plugins/&lt;/span&gt;
&lt;span class="c"&gt;# Example format: plugins=(rails git textmate ruby lighthouse)&lt;/span&gt;
&lt;span class="c"&gt;# Add wisely, as too many plugins slow down shell startup.&lt;/span&gt;
&lt;span class="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;git&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nb"&gt;source&lt;/span&gt; &lt;span class="nv"&gt;$ZSH&lt;/span&gt;/oh-my-zsh.sh

&lt;span class="c"&gt;# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.&lt;/span&gt;
&lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; ~/.p10k.zsh &lt;span class="o"&gt;]]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nb"&gt;source&lt;/span&gt; ~/.p10k.zsh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Using powerlevel10k requires some extra installation steps, which you'll need to do first. For more details, refer to the &lt;a href="https://github.com/romkatv/powerlevel10k#oh-my-zsh" rel="noopener noreferrer"&gt;powerlevel10k installation instructions for Oh My Zsh&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;5) Set the initial value of the &lt;code&gt;~/zshrc/CURRENT_PROMPT_THEME&lt;/code&gt; file to "personal" by running the following from the command line:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "personal" &amp;gt; ~/zshrc/CURRENT_PROMPT_THEME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;6) Create a new file, &lt;code&gt;~/zshrc/teach.sh&lt;/code&gt;. You can do this from the command line by running the following:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch ~/zshrc/teach.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;7) Add the following to &lt;code&gt;~/zshrc/teach.sh&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# read the CURRENT_PROMPT_THEME file, and load the corresponding shell theme&lt;/span&gt;
&lt;span class="nb"&gt;cat&lt;/span&gt; ~/zshrc/CURRENT_PROMPT_THEME | &lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nb"&gt;read &lt;/span&gt;line&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$line&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"personal"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;
  &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/zshrc/personal-zsh-theme.sh&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$line&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"screencast"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;
  &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/zshrc/screencast-zsh-theme.sh&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;fi
done&lt;/span&gt;

&lt;span class="c"&gt;# defines a "teach" command that can be run from the command line&lt;/span&gt;
teach&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;# usage: teach reset&lt;/span&gt;
  &lt;span class="c"&gt;# - sets shell preference back to personal theme&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"reset"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;
  &lt;span class="k"&gt;then 
    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/zshrc/personal-zsh-theme.sh&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"personal"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; ~/zshrc/CURRENT_PROMPT_THEME&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c"&gt;# usage: teach screencast &amp;lt;folder&amp;gt;&lt;/span&gt;
  &lt;span class="c"&gt;# - switches shell preference to screencast theme&lt;/span&gt;
  &lt;span class="c"&gt;# - opens the specified folder in VS Code using screencast settings&lt;/span&gt;
  &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"screencast"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;
  &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/zshrc/screencast-zsh-theme.sh&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"screencast"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; ~/zshrc/CURRENT_PROMPT_THEME
    code &lt;span class="nt"&gt;--user-data-dir&lt;/span&gt; ~/code_profiles/teaching/data &lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c"&gt;# default message&lt;/span&gt;
  &lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"  Command not recognized. Options:"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"  - teach reset: restore personal preferences for command prompt"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"  - teach screencast &amp;lt;folder&amp;gt;: switch command prompt and open with VS code settings for screencasting"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;8) Add the following line somewhere in your &lt;code&gt;~/.zshrc&lt;/code&gt; file (the exact position doesn't matter):
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/zshrc/teach.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;9) Manually reload your &lt;code&gt;~/.zshrc&lt;/code&gt; file by running the following from the command line:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you should be able to use the &lt;code&gt;teach&lt;/code&gt; command! Let's test it out in the next section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing it out
&lt;/h2&gt;

&lt;p&gt;Time to see our shell script in action! Let's test out the &lt;code&gt;teach&lt;/code&gt; command and make sure it behaves correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Switching to screencasting settings
&lt;/h3&gt;

&lt;p&gt;First, let's check that our screencasting settings load correctly. Run the following from the command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;teach screencast ~
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should open your home directory in a new VS Code window, using your screencast VS Code settings.&lt;/p&gt;

&lt;p&gt;Open the VS Code integrated terminal. It should be using your screencasting zsh theme.&lt;/p&gt;

&lt;h3&gt;
  
  
  Switching to personal settings
&lt;/h3&gt;

&lt;p&gt;Now, let's check that we can reset to our personal settings correctly. Run the following from the command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;teach reset
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now when you open a new shell window (in Terminal or in VS Code), it should be using your personal zsh theme.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 &lt;strong&gt;Known issue:&lt;/strong&gt; On my machine, after running &lt;code&gt;teach reset&lt;/code&gt;, the shell theme in my existing terminal window doesn't update. But if I open a new window/tab, it will load the correct zsh theme.&lt;/p&gt;

&lt;p&gt;This happens because the p10k theme I use for my teaching zsh theme sets a bunch of environment variables that don't get unset in the current shell when &lt;code&gt;teach reset&lt;/code&gt; gets run. So some combination of those p10k environment variables gets in the way of zsh using my personal theme. Opening a new shell window works because then the &lt;code&gt;~/.zshrc&lt;/code&gt; file starts fresh and only loads the environment variables for my personal theme.&lt;/p&gt;

&lt;p&gt;This isn't a huge deal for me, since I won't be switching themes in the middle of a screencast, and it's a minor chore to open up a new terminal window. But if you can think of an easy way to fix it, let me know!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Wrap it up
&lt;/h2&gt;

&lt;p&gt;You did it! Now you can use the &lt;code&gt;teach&lt;/code&gt; command to switch between shell themes.&lt;/p&gt;

&lt;p&gt;I hope this post was helpful. If you enjoyed it, reach out on &lt;a href="https://twitter.com/meganesulli" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; or leave a tip via &lt;a href="https://ko-fi.com/meganesulli" rel="noopener noreferrer"&gt;Ko-fi&lt;/a&gt;. I can't wait to see the cool things you create!&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>shell</category>
      <category>zsh</category>
      <category>teaching</category>
    </item>
    <item>
      <title>#DevEdBookClub Round 3: Teaching Tech Together</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Mon, 13 Jun 2022 20:46:00 +0000</pubDate>
      <link>https://dev.to/devedbookclub/devedbookclub-round-3-teaching-tech-together-4egm</link>
      <guid>https://dev.to/devedbookclub/devedbookclub-round-3-teaching-tech-together-4egm</guid>
      <description>&lt;p&gt;&lt;strong&gt;It's time for our next round of our Twitter book club, and you're invited!&lt;/strong&gt; Each week, we'll host a Twitter chat on Thursday at 6pm PT to discuss a chapter of &lt;a href="https://teachtogether.tech/"&gt;Teaching Tech Together: How to create and deliver lessons that work and build a teaching community around them&lt;/a&gt;. We start with Chapter 1 on July 7.&lt;/p&gt;

&lt;p&gt;Why join? Because &lt;strong&gt;learning is more fun together&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vdz6cNfx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2h6knvjq9ntnkv9smtn.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vdz6cNfx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2h6knvjq9ntnkv9smtn.JPG" alt="Clifford, a reddish-brown pitbull, lying on the couch with a copy of Teaching Tech Together. Clifford has the tip of his tongue rolled up in his mouth, like a tiny whale" width="880" height="660"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Participate
&lt;/h2&gt;

&lt;p&gt;If you want to read along with us, here's what you need to do:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Teaching Tech Together can be read online for free! If you'd like to support the author by ordering a physical copy, you can purchase one from the &lt;a href="https://www.routledge.com/Teaching-Tech-Together-How-to-Make-Your-Lessons-Work-and-Build-a-Teaching/Wilson/p/book/9780367352974"&gt;publisher website&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Before the day of the Twitter chat, read the assigned chapter for the week. Jot down any &lt;strong&gt;quotes&lt;/strong&gt; that stand out to you or &lt;strong&gt;questions&lt;/strong&gt; you have.&lt;/li&gt;
&lt;li&gt;On the day of the Twitter chat, hop onto Twitter between &lt;strong&gt;6pm-7pm PT&lt;/strong&gt;. Check the &lt;a href="https://twitter.com/DevEdBookClub"&gt;@DevEdBookClub Twitter&lt;/a&gt; account for the discussion thread.&lt;/li&gt;
&lt;li&gt;Join the conversation (and tag your replies with &lt;strong&gt;#DevEdBookClub&lt;/strong&gt;)! Check out what other participants are saying. Reply with your own thoughts, experiences, or questions. This is a great time to learn from each other and make new friends!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you can't attend during the scheduled time, you can still add to the conversation after the fact. We'd love to hear your thoughts, whenever you have time to share them! We'll also update this post with links to each thread, so you can easily catch up on all the conversations in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schedule
&lt;/h2&gt;

&lt;p&gt;Like to plan ahead? Here's when we're currently planning to discuss each chapter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; We're trying something a little different this time. There will be &lt;strong&gt;no book club chat on the last Thursday of each month&lt;/strong&gt;. We're hoping these periodic breaks will give folks a chance to catch up on the reading and to jump back into the conversation. Let us know what you think of this new structure!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;July 7, 2022: &lt;a href="https://twitter.com/DevEdBookClub/status/1545211168414785537"&gt;&lt;strong&gt;Chapter 1&lt;/strong&gt; (Introduction)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;July 14: &lt;a href="https://twitter.com/DevEdBookClub/status/1547748033525207041"&gt;&lt;strong&gt;Chapter 2&lt;/strong&gt; (Mental Models and Formative Assessment)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;July 21: &lt;a href="https://twitter.com/DevEdBookClub/status/1550284674865344512"&gt;&lt;strong&gt;Chapter 3&lt;/strong&gt; (Expertise and Memory)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;July 28: No book club! Relax or catch up on reading 😎&lt;/li&gt;
&lt;li&gt;August 4: &lt;a href="https://twitter.com/DevEdBookClub/status/1555357974473822208"&gt;&lt;strong&gt;Chapter 4&lt;/strong&gt; (Cognitive Architecture)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;August 11: &lt;a href="https://twitter.com/DevEdBookClub/status/1557894701784698880"&gt;&lt;strong&gt;Chapter 5&lt;/strong&gt; (Individual Learning)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;August 18: &lt;a href="https://twitter.com/DevEdBookClub/status/1560431397537361921"&gt;&lt;strong&gt;Chapter 6&lt;/strong&gt; (A Lesson Design Process)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;August 25: No book club! Relax or catch up on reading 😎&lt;/li&gt;
&lt;li&gt;September 1: &lt;a href="https://twitter.com/DevEdBookClub/status/1565505120107782144"&gt;&lt;strong&gt;Chapter 7&lt;/strong&gt; (Pedagogical Content Knowledge)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;September 8: &lt;a href="https://twitter.com/DevEdBookClub/status/1568041679231537152"&gt;&lt;strong&gt;Chapter 8&lt;/strong&gt; (Teaching as a Performance Art)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;September 15: &lt;a href="https://twitter.com/DevEdBookClub/status/1570578388607434752"&gt;&lt;strong&gt;Chapter 9&lt;/strong&gt; (In the Classroom)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;September 22: &lt;a href="https://twitter.com/DevEdBookClub/status/1573115719306575872"&gt;&lt;strong&gt;Chapter 10&lt;/strong&gt; (Motivation and Demotivation)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;September 29: No book club! Relax or catch up on reading 😎&lt;/li&gt;
&lt;li&gt;October 6: &lt;a href="https://twitter.com/DevEdBookClub/status/1578188397834747904"&gt;&lt;strong&gt;Chapter 11&lt;/strong&gt; (Teaching Online)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;October 13: &lt;a href="https://twitter.com/DevEdBookClub/status/1580726133208645634"&gt;&lt;strong&gt;Chapter 12&lt;/strong&gt; (Exercise Types)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;October 20: &lt;a href="https://twitter.com/DevEdBookClub/status/1583262678306279424"&gt;&lt;strong&gt;Chapter 13&lt;/strong&gt; (Building a Community of Practice)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;October 27: No book club! Relax or catch up on reading 😎&lt;/li&gt;
&lt;li&gt;November 3: &lt;strong&gt;Chapter 14&lt;/strong&gt; (Outreach)&lt;/li&gt;
&lt;li&gt;November 10: &lt;strong&gt;Chapter 15&lt;/strong&gt; (Why I Teach)&lt;/li&gt;
&lt;li&gt;November 17: &lt;strong&gt;General Wrap-Up / Final Thoughts&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Have questions?
&lt;/h2&gt;

&lt;p&gt;Leave a comment below, or reach out to us on Twitter!&lt;/p&gt;

&lt;p&gt;See you on July 7!&lt;/p&gt;

</description>
      <category>books</category>
      <category>news</category>
      <category>education</category>
      <category>devrel</category>
    </item>
    <item>
      <title>My Reading List for Developer Educators</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Mon, 23 May 2022 21:42:24 +0000</pubDate>
      <link>https://dev.to/meganesulli/my-reading-list-for-developer-educators-3f6l</link>
      <guid>https://dev.to/meganesulli/my-reading-list-for-developer-educators-3f6l</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;One of the best ways to deeply learn a subject is by teaching it to others. But being a good teacher is about more than just brain-dumping everything you know about a topic. How can you make sure you're teaching in a way that's actually helping people learn?&lt;/p&gt;

&lt;p&gt;I've read a lot about learning and education since I started teaching in 2014. Here's a list of my favorite resources on how to become a better educator.&lt;/p&gt;

&lt;h2&gt;
  
  
  My #1 recommendation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://teachtogether.tech/"&gt;Teaching Tech Together: How to create lessons that work and build a teaching community around them&lt;/a&gt;, by Greg Wilson
&lt;/h3&gt;

&lt;p&gt;If you only read one book from this list, let it be this one.  The whole time I was reading it, I constantly nodded my head emphatically at each new point.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Teaching Tech Together&lt;/em&gt; covers education best practices touched on by other resources in this list, but what sets it apart is its specific focus on people who are teaching programming. It's perfect for anyone looking for a crash course in pedagogy within the context of engineering. The book is extremely well researched, and it's jam-packed with interesting concepts and practical techniques.&lt;/p&gt;

&lt;p&gt;Quote from the publisher's website:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hundreds of grassroots groups have sprung up around the world to teach programming, web design, robotics, and other skills outside traditional classrooms. These groups exist so that people don't have to learn these things on their own, but ironically, their founders and instructors are often teaching themselves how to teach.&lt;/p&gt;

&lt;p&gt;There's a better way. This book presents evidence-based practices that will help you create and deliver lessons that work and build a teaching community around them. Topics include the differences between different kinds of learners, diagnosing and correcting misunderstandings, teaching as a performance art, what motivates and demotivates adult learners, how to be a good ally, fostering a healthy community, getting the word out, and building alliances with like-minded groups. The book includes over a hundred exercises that can be done individually or in groups, over 350 references, and a glossary to help you navigate educational jargon.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Resources on how people learn
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.coursera.org/learn/learning-how-to-learn"&gt;Learning How to Learn&lt;/a&gt;, by Barbara Oakley
&lt;/h3&gt;

&lt;p&gt;This Coursera course covers cognitive-science research on how your brain works, and how you can optimize your learning strategies to retain information more effectively. The videos are short and sweet, with plenty of analogies to make the content relatable.&lt;/p&gt;

&lt;p&gt;Quote from the Coursera course page:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This course gives you easy access to the invaluable learning techniques used by experts in art, music, literature, math, science, sports, and many other disciplines. We'll learn about how the brain uses two very different learning modes and how it encapsulates (“chunks”) information. We'll also cover illusions of learning, memory techniques, dealing with procrastination, and best practices shown by research to be most effective in helping you master tough subjects.  &lt;/p&gt;

&lt;p&gt;Using these approaches, no matter what your skill levels in topics you would like to master, you can change your thinking and change your life.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.hup.harvard.edu/catalog.php?isbn=9780674729018"&gt;Make It Stick&lt;/a&gt;, by Peter C. Brown, Henry L. Roediger III, and Mark A. McDaniel
&lt;/h3&gt;

&lt;p&gt;This book is a great introduction to learning science and how your memory works.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Make It Stick&lt;/em&gt; covers similar material to &lt;em&gt;Learning How to Learn&lt;/em&gt;, interwoven with stories and examples from cognitive-science research. The tone is conversational and easy to read, and each chapter ends with a handy "Takeaway" section that reiterates the key ideas.&lt;/p&gt;

&lt;p&gt;Quote from the publisher's website:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Many common study habits and practice routines turn out to be counterproductive. Underlining and highlighting, rereading, cramming, and single-minded repetition of new skills create the illusion of mastery, but gains fade quickly. More complex and durable learning come from self-testing, introducing certain difficulties in practice, waiting to re-study new material until a little forgetting has set in, and interleaving the practice of one skill or topic with another. Speaking most urgently to students, teachers, trainers, and athletes, &lt;em&gt;Make It Stick&lt;/em&gt; will appeal to all those interested in the challenge of lifelong learning and self-improvement.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://teachlikeachampion.com/books/practice-perfect/"&gt;Practice Perfect&lt;/a&gt;, by Doug Lemov, Erica Woolway, and Katie Yezzi
&lt;/h3&gt;

&lt;p&gt;This book refutes the old saying that "practice makes perfect," and instead argues that "practice makes &lt;em&gt;permanent&lt;/em&gt;." In other words, the way that you practice will be the way that you perform, so make sure you practice doing it &lt;em&gt;right&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Practice Perfect&lt;/em&gt; includes 42 techniques for how to practice skills effectively. It includes examples from a wide variety of industries, including sports, music, and medicine. This book changed the way I think about facilitating workshops and my stance on rote memorization.&lt;/p&gt;

&lt;p&gt;Quote from the publisher's website:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By researching the latest in brain and behavioral science and in their work training teachers with Uncommon Schools, the authors found that what you do in practice matters as much if not more than how much you practice. There is a right way and a wrong way to practice. The right way involves breaking through assumptions, modeling excellent practice, using feedback, creating a culture of practice, making new skills stick, and hiring for practice.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Resources on designing educational content
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.ascd.org/books/understanding-by-design-expanded-2nd-edition?variant=103055"&gt;Understanding by Design&lt;/a&gt;, by Grant Wiggins and Jay McTighe
&lt;/h3&gt;

&lt;p&gt;This book is the go-to resource on &lt;strong&gt;backward design&lt;/strong&gt;, a framework for planning and writing curricula. It's the approach I always use when I'm working on a new course.&lt;/p&gt;

&lt;p&gt;Instead of the conventional approach of starting a lesson plan with an outline of the activities you want students to complete, backward design flips things around and starts with learning objectives first. What do you want students to be able to do after this lesson? What assessments will help you measure whether or not they're able to do those things? Only after answering those questions do you start thinking about the activities that will help students complete those assessments and achieve the desired learning objectives.&lt;/p&gt;

&lt;p&gt;The authors also created an &lt;a href="https://www.ascd.org/books/the-understanding-by-design-professional-development-workbook?variant=103056"&gt;Understanding by Design Professional Development Workbook&lt;/a&gt;, which has lots of examples of putting the framework into practice. It also includes several worksheets that you can use to apply the process to your own courses.&lt;/p&gt;

&lt;p&gt;Quote from the introduction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As the title suggests, this book is about good design—of curriculum, assessment, and instruction—focused on developing and deepening understanding of important ideas. Posed as a question, considered throughout the book and from many perspectives, the essence of this book is this: How do we make it more likely—by our design—that more students really understand what they are asked to learn? So often, by contrast, those who "get it" are learners who come to us already able and articulate—understanding by good fortune. What must our planning entail to have an intellectual impact on everyone: the less experienced; the highly able, but unmotivated; the less able; those with varied interests and styles?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.oreilly.com/search/?query=head%20first"&gt;Head First series&lt;/a&gt; created by Kathy Sierra and Bert Bates
&lt;/h3&gt;

&lt;p&gt;This one isn't explicitly about teaching readers how to be better teachers. But it's a masterclass on how to make technical content engaging and "sticky" so that it's easier for learners to digest and retain.&lt;/p&gt;

&lt;p&gt;One of the hallmarks of the Head First series is the writing style. At first glance, the quirky comics, diagrams, and character dialogue might seem like a gimmick. But the introduction of each book explains how their writing style is based in cognitive-science research. It's intentionally designed to transform potentially dull technical topics into something fun that your brain actually &lt;em&gt;wants&lt;/em&gt; to pay attention to.&lt;/p&gt;

&lt;p&gt;The series has books on a wide variety of technical topics, from web dev to Git to design patterns, so you're sure to find something you're interested in.&lt;/p&gt;

&lt;p&gt;Quote from the introduction of the 2nd edition of &lt;a href="https://www.oreilly.com/library/view/head-first-java/9781492091646/"&gt;Head First Java&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We've all had the "I really want to learn this but I can't stay awake past page one" experience. Your brain pays attention to things that are out of the ordinary, interesting, strange, eye-catching, unexpected. Learning a new, tough, technical topic doesn't have to be boring. Your brain will learn much more quickly if it's not.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://docsfordevelopers.com/"&gt;Docs for Developers: An Engineer's Field Guide to Technical Writing&lt;/a&gt;, by Jared Bhatti, Zachary Sarah Corleissen, Jen Lambourne, David Nunez, and Heidi Waterhouse
&lt;/h3&gt;

&lt;p&gt;This one is for all you technical writers out there!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Docs for Developers&lt;/em&gt; walks readers through the process of building a user-centered documentation site—from planning to writing to maintaining, and everything in between. It includes several helpful lists of guiding questions, making it the perfect reference book for any documentarian's desk.&lt;/p&gt;

&lt;p&gt;The book also includes a narrative throughline about a fictional tech company called Corgi.ly. Each chapter checks in on the developers at Corgi.ly as they build out the documentation site for their dog-bark-translator API. The narrative helps set up the context for the chapter and relates the theory back to a real-world scenario. (And it means we get cute corgi illustrations!)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; A group of us read &lt;em&gt;Docs for Developers&lt;/em&gt; with &lt;a href="https://twitter.com/DevEdBookClub"&gt;Dev Ed Book Club&lt;/a&gt;. We had weekly Twitter chats to discuss each chapter. You can check out the archive of our past discussions in our &lt;a href="https://dev.to/devedbookclub/join-our-devedbookclub-hfj"&gt;DEV post about Dev Ed Book Club: Docs for Developers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Quote from the introduction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We created this field guide to technical documentation by building on our own expertise and feedback from a multitude of developers. It's designed as a resource to keep at hand, so you can write documentation as part of your software development process.&lt;/p&gt;

&lt;p&gt;This book walks you through creating documentation from scratch. It begins with identifying the needs of your users and creating a plan with common patterns of documentation, then moves through the process of drafting, editing, and publishing your content. The book concludes with practical advice about integrating feedback, measuring effectiveness, and maintaining your documentation as it grows.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Resources on classroom management
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.simonandschuster.com/books/Lost-at-School/Ross-W-Greene/9781501101496"&gt;Lost at School&lt;/a&gt;, by Ross W. Greene
&lt;/h3&gt;

&lt;p&gt;This is a book about how to work with students who often get labeled as "challenging." The central theme of this book is "kids do well &lt;em&gt;if they can&lt;/em&gt;," a principle in direct opposition to what many believe (that "kids do well &lt;em&gt;if they want to&lt;/em&gt;"). The author introduces a model called Collaborative Problem Solving (CPS), a behavior management strategy that stems from meeting students where they are and working together to find solutions to disruptive behaviors.&lt;/p&gt;

&lt;p&gt;Like &lt;em&gt;Docs for Developers&lt;/em&gt;, this book includes a narrative throughline showing how to use CPS in practice, so readers can see how the ideas from each chapter build on each other and develop the confidence to use the framework on their own.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Lost at School&lt;/em&gt; is geared toward teachers working in public schools, but honestly it's also a good read for managers, parents, or anyone who needs help figuring out how to give constructive feedback. If you'd prefer a video, here's a &lt;a href="https://www.youtube.com/watch?v=jvzQQDfAL-Q&amp;amp;list=PLEB6B6759813B96C7"&gt;YouTube playlist of Dr. Ross Greene explaining Collaborative Problem Solving&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Quote from the introduction:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Helping kids with social, emotional, and behavioral challenges is not a mechanical exercise. Kids aren't robots, adults aren't robots, and helping them work together isn't robotic. The work is hard, messy, uncomfortable, and requires teamwork, patience, and tenacity, especially as the work also involves questioning conventional wisdom and practice. This book contains lots of material and examples to help you better understand challenging kids, how to implement the [Collaborative Problem Solving] model, and how to work collaboratively toward the common goal of helping these kids more effectively.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://teachlikeachampion.com/?books=teach-like-a-champion-3-0"&gt;Teach Like a Champion&lt;/a&gt;, by Doug Lemov
&lt;/h3&gt;

&lt;p&gt;This book contains 62 practical techniques on everything from engaging students in group discussions to building a classroom culture that normalizes and celebrates error. Each technique is explained with concrete examples, making it easy to incorporate into your next lesson.&lt;/p&gt;

&lt;p&gt;It's aimed at teachers working to close the &lt;a href="https://www.brookings.edu/blog/brown-center-chalkboard/2018/04/17/have-we-made-progress-on-achievement-gaps-looking-at-evidence-from-the-new-naep-results/"&gt;achievement gap in K-12 schools&lt;/a&gt;, but the techniques can also be used by anyone who facilitates live workshops.&lt;/p&gt;

&lt;p&gt;Quote from the book's website:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Upon studying videos of high-performing teachers, Lemov distills their methods into concrete tangible actions for others to use and adapt...&lt;/p&gt;

&lt;p&gt;Through the techniques, Lemov explains how to Check for Understanding, raise academic expectations, increase the ratio of the cognitive work students do, motivate and engage students, make classrooms more writing-intensive, improve discussions, and anticipate when it is necessary to redirect student behavior so it is positive and productive.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Wrap it up!
&lt;/h2&gt;

&lt;p&gt;For easy reference, here's a quick list of all the resources from this post:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;My #1 recommendation&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://teachtogether.tech/"&gt;Teaching Tech Together: How to create lessons that work and build a teaching community around them&lt;/a&gt;, by Greg Wilson&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources on how people learn&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.coursera.org/learn/learning-how-to-learn"&gt;Learning How to Learn&lt;/a&gt;, by Barbara Oakley&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.hup.harvard.edu/catalog.php?isbn=9780674729018"&gt;Make It Stick&lt;/a&gt;, by Peter C. Brown, Henry L. Roediger III, and Mark A. McDaniel&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://teachlikeachampion.com/books/practice-perfect/"&gt;Practice Perfect&lt;/a&gt;, by Doug Lemov, Erica Woolway, and Katie Yezzi&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources on designing educational content&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.ascd.org/books/understanding-by-design-expanded-2nd-edition?variant=103055"&gt;Understanding by Design&lt;/a&gt;, by Grant Wiggins and Jay McTighe&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.oreilly.com/search/?query=head%20first"&gt;Head First series&lt;/a&gt; created by Kathy Sierra and Bert Bates&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docsfordevelopers.com/"&gt;Docs for Developers: An Engineer's Field Guide to Technical Writing&lt;/a&gt;, by Jared Bhatti, Zachary Sarah Corleissen, Jen Lambourne, David Nunez, and Heidi Waterhouse&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources on classroom management&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.simonandschuster.com/books/Lost-at-School/Ross-W-Greene/9781501101496"&gt;Lost at School&lt;/a&gt;, by Ross W. Greene&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://teachlikeachampion.com/?books=teach-like-a-champion-3-0"&gt;Teach Like a Champion&lt;/a&gt;, by Doug Lemov&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm always looking to learn more about how to be a good teacher! What are some of your favorite resources on education?&lt;/p&gt;

</description>
      <category>devrel</category>
      <category>education</category>
      <category>writing</category>
    </item>
    <item>
      <title>Docs for Everyone!</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Wed, 18 May 2022 07:14:57 +0000</pubDate>
      <link>https://dev.to/meganesulli/docs-for-everyone-28pm</link>
      <guid>https://dev.to/meganesulli/docs-for-everyone-28pm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This article is adapted from a talk I gave at GatsbyCamp Fall 2021, which you can watch below.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HnBNbG2Csv8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;In my life before being a developer, I was a teacher and curriculum writer. And one of the best feelings as an educator was helping learners who felt confused or overwhelmed gain confidence in their abilities to create cool things.&lt;/p&gt;

&lt;p&gt;Similarly, one of things I love about documentation is that it lets you have that same impact of helping people deepen their skills. But with documentation, you have that impact at a much larger scale than is possible through 1:1 interactions.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want numbers?&lt;/strong&gt; Last March, I taught an Intro to Gatsby workshop that had around 1000 participants. After the workshop, I rewrote that same curriculum as online documentation (in the form of the new &lt;a href="https://www.gatsbyjs.com/docs/tutorial/" rel="noopener noreferrer"&gt;Gatsby Tutorial&lt;/a&gt;), which was getting around 4000 views a day.&lt;/p&gt;

&lt;p&gt;With that one set of new docs, I’m able to reach as many students as if I taught four live workshops &lt;em&gt;every day&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But as you scale your documentation and your audience grows, there’s a wider and wider variety of people you’re trying to write for. The bare-bones API reference that worked when your team was just a few internal engineers isn’t going to cut it when you have new users trying to use your product for the first time.&lt;/p&gt;

&lt;p&gt;So how do you build one documentation site that works for all your users? In this article, I outline my top 5 techniques for creating high quality documentation that serves as many users as possible:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Expose the architecture&lt;/li&gt;
&lt;li&gt;Set the stage&lt;/li&gt;
&lt;li&gt;Let readers choose&lt;/li&gt;
&lt;li&gt;Check for understanding&lt;/li&gt;
&lt;li&gt;Get user feedback&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; I’ll mainly look at this challenge through the lens of experience level. In other words, how can you create a documentation site that works for newcomers to your product as well as your existing power users.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tip #1: Expose the architecture
&lt;/h2&gt;

&lt;p&gt;In order for your users to make the most of your documentation, they need to understand the big picture of what kinds of information is included in your docs and where to find it. A major factor in that comes down to the &lt;strong&gt;information architecture&lt;/strong&gt; of how your docs are organized.&lt;/p&gt;

&lt;p&gt;Imagine you’re a user showing up to your product’s docs site for the first time. It might not be obvious to you where to find the information you’re looking for, or even what kinds of information is available to you.&lt;/p&gt;

&lt;p&gt;As a documentarian, it’s your job to provide new users with a clear map and signposts that they can use to navigate the content of your docs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Define the architecture
&lt;/h3&gt;

&lt;p&gt;One example of an information architecture that you can use to organize your documentation is the &lt;a href="https://diataxis.fr/" rel="noopener noreferrer"&gt;Diátaxis framework&lt;/a&gt; by &lt;a href="https://twitter.com/evildmp" rel="noopener noreferrer"&gt;Daniele Procida&lt;/a&gt;. (This is what the Gatsby docs structure is based on).&lt;/p&gt;

&lt;p&gt;The Diátaxis framework splits up documentation into four different categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tutorials&lt;/strong&gt;: Hold the reader’s hand through their first experience with your product. These are specifically tailored for newcomers who may not know anything about your product or how it works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How-To Guides&lt;/strong&gt;: Practical step-by-step guides to help readers accomplish a specific task. (Kind of like a recipe you would use for cooking.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reference&lt;/strong&gt;: Describes the technical details of how your product works (like an API spec or a user manual).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explanation&lt;/strong&gt;: Explores more big-picture concepts and helps readers deepen their understanding of a topic. (Gatsby calls these docs “Conceptual Guides”.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F2c99ba1e928d61e321e7863602ef344a%2F29114%2Fdiataxis-quadrants.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F2c99ba1e928d61e321e7863602ef344a%2F29114%2Fdiataxis-quadrants.png" alt="The four documentation types, charted into four quadrants. One axis: goes from "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
  &lt;em&gt;Expand for detailed image description&lt;/em&gt;
  &lt;p&gt;The four documentation types can be charted into four quadrants, based on their content type and intended use case.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tutorials are learning-oriented. They include practical steps that are meant to serve our study (when we're in learning mode).&lt;/li&gt;
&lt;li&gt;How-To Guides are task-oriented. They also contain practical steps, but they're focused more on serving our work (when we're actively trying to get something done).&lt;/li&gt;
&lt;li&gt;Explanation is understanding-oriented. It's more theoretical knowledge, meant to serve our study.&lt;/li&gt;
&lt;li&gt;Reference is information-oriented. It's theoretical knowledge that can serve our work.&lt;/li&gt;
&lt;/ul&gt;



&lt;/p&gt;

&lt;p&gt;The key thing about the Diátaxis framework is that it categorizes documentation based on the reader’s current goal. Someone using your product for the first time is going to need very different information from a professional actively working on fixing a bug for a client site. By organizing your docs in a way that centers your reader's end goal, you make it easier for them to discover the resource that they need when they need it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expose the architecture to your readers
&lt;/h3&gt;

&lt;p&gt;It’s not enough to just sort all of your docs into organized categories. Once you have a structure in place, let your readers know what it is! This is where the idea of &lt;strong&gt;exposing the architecture&lt;/strong&gt; comes into play.&lt;/p&gt;

&lt;p&gt;For example, after &lt;a href="https://www.gatsbyjs.com/blog/announcing-new-gatsby-docs-site/" rel="noopener noreferrer"&gt;we reorganized the Gatsby docs&lt;/a&gt; to use the Diátaxis framework, we adjusted the site's design to reflect the new information architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On the docs home page, we tell readers what different types of documentation they’ll find on our site, and when each type is most useful.&lt;/li&gt;
&lt;li&gt;We also list the four doc types in the navigation menu at the top of the page and in the sidebar, so that we can keep reinforcing our docs structure in the reader's mind.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F45a10e9f4f379bd2077b34e81dcb430b%2F29007%2Fexpose-the-architecture-gatsby-docs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F45a10e9f4f379bd2077b34e81dcb430b%2F29007%2Fexpose-the-architecture-gatsby-docs.png" alt="The home page for the Gatsby docs. The documentation types are highlighted in the navigation bar at the top of the page, the sidebar, and the body of the landing page."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ultimately, it all comes back to helping readers find what they’re looking for more easily.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; The "expose the architecture" principle can also be applied within individual docs! Use headings to break down the content within a doc. Within a particular doc type, use a consistent heading structure so that users know what to expect and can use their pattern-matching skills to parse information more quickly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Tip #2: Set the stage
&lt;/h2&gt;

&lt;p&gt;Now that your overall docs structure is in place, it’s time to zoom in and focus on the content within each doc. That brings us to tip #2: &lt;strong&gt;set the stage&lt;/strong&gt;. In other words, help your users understand what you’re talking about before jumping into the weeds of explaining a new topic.&lt;/p&gt;

&lt;p&gt;When I was a curriculum writer, my team had three things that we always checked for in each lesson that we designed: &lt;strong&gt;context&lt;/strong&gt;, &lt;strong&gt;relevance&lt;/strong&gt;, and &lt;strong&gt;application&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context&lt;/strong&gt;: Explain what you’re talking about, so that all your readers start with the same baseline understanding. This is where you define key terms and concepts, link to any prerequisite background knowledge you expect readers to have, and explain how the main idea of this doc ties fits into the overall structure of your product ecosystem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relevance&lt;/strong&gt;: Why should readers care about this topic? What problem does it help solve? Are there specific use cases when they might choose to use this feature over another one?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Application&lt;/strong&gt;: Walk readers through how to use the feature in their work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F6d54a0f9b0de681e669a69083889906c%2F3dd05%2Fcontext-relevance-application.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F6d54a0f9b0de681e669a69083889906c%2F3dd05%2Fcontext-relevance-application.png" alt="Context: What are you talking about? Relevance: Why should I care about that? Application: You've convinced me! Now how do I do it?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most docs already do a good job of the application piece, but the context and relevance pieces are especially important, because those are what help readers develop their mental model of how all the pieces of your product fit together.&lt;/p&gt;

&lt;h3&gt;
  
  
  An example
&lt;/h3&gt;

&lt;p&gt;Let’s see what context, relevance, and application look like in practice. Here's how I used them in &lt;a href="https://www.gatsbyjs.com/docs/tutorial/part-3/" rel="noopener noreferrer"&gt;Part 3 of the new Gatsby Tutorial&lt;/a&gt;, which is all about plugins:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context&lt;/strong&gt;: What are plugins? Plugins are npm packages that let you add pre-built functionality to your Gatsby site.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Relevance&lt;/strong&gt;: Why do we care about plugins? Because plugins let you add new features to your site more quickly than if you were to write them yourself from scratch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Application&lt;/strong&gt;: How do we add a plugin to our site? First, we install it with npm. Then, we configure it in our &lt;code&gt;gatsby-config.js&lt;/code&gt; file. Finally, we use whatever unique plugin features are relevant in our site.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In your actual docs, you'd go into much more detail than this, but hopefully that's enough to give you an idea of what you're going for.&lt;/p&gt;

&lt;p&gt;Having these three pieces nailed down early on in your writing process can help you stay focused and make sure your final doc will help all readers, regardless of how much previous experience they have with your product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip #3: Let readers choose
&lt;/h2&gt;

&lt;p&gt;This next tip is about giving readers multiple ways to consume information on your docs site, so that they can choose the option that works best for them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; In education, this technique is called &lt;a href="https://www.edglossary.org/differentiation/" rel="noopener noreferrer"&gt;&lt;strong&gt;differentiation&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We'll look at two different ways you can give readers options: providing multiple forms of engagement, and letting users opt into additional details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multiple forms of engagement
&lt;/h3&gt;

&lt;p&gt;By explaining the same concepts in multiple ways, you increase the chances that readers will find one option that resonates with their preferred learning style. And that means they’ll ultimately leave with a better understanding of the overall topic&lt;/p&gt;

&lt;p&gt;In the new Gatsby Tutorial, in addition to the standard text explanations, we also include a variety of other ways that readers can engage with the main ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Diagrams&lt;/li&gt;
&lt;li&gt;Analogies&lt;/li&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Diagrams
&lt;/h4&gt;

&lt;p&gt;Diagrams can help readers visualize processes, like this one that shows how data flows through Gatsby’s GraphQL data layer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F5e48f3888d71a543a06f4d88465da0d4%2F5df5d%2Fdiagram-data-layer-with-nodes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F5e48f3888d71a543a06f4d88465da0d4%2F5df5d%2Fdiagram-data-layer-with-nodes.png" alt="A diagram with lots of labeled circles and arrows, showing how data flows from data sources to Gatsby's GraphQL data layer to the site's React components"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagrams are especially useful for complex technical systems or architectures with several moving parts.&lt;/p&gt;

&lt;h4&gt;
  
  
  Analogies
&lt;/h4&gt;

&lt;p&gt;Analogies help map product-specific concepts that readers might not be familiar with onto everyday things that they’ve probably encountered in their own lives. &lt;/p&gt;

&lt;p&gt;For instance, this illustration explains the difference between the &lt;code&gt;StaticImage&lt;/code&gt; and &lt;code&gt;GatsbyImage&lt;/code&gt; components using the analogy of asking for directions to a specific street address (like 400 Main Street) versus asking for directions to a generic location (like “the best coffee shop in town”).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fabc38c8822d7cbd8d75f35908ee02d7f%2F5df5d%2Fanalogy-staticimage-vs-gatsbyimage-towns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fabc38c8822d7cbd8d75f35908ee02d7f%2F5df5d%2Fanalogy-staticimage-vs-gatsbyimage-towns.png" alt="An illustration of two identical town maps. One, labeled StaticImage, has a single marker for an address, "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want to learn more?&lt;/strong&gt; &lt;a href="https://maggieappleton.com/" rel="noopener noreferrer"&gt;Maggie Appleton&lt;/a&gt; has an excellent talk called &lt;a href="https://www.youtube.com/watch?v=MQGe9zxlRdk" rel="noopener noreferrer"&gt;Drawing the Invisible&lt;/a&gt;, which is about visual metaphors and how they can make technical concepts easier to learn. (Ever wondered how React is like a potato plant? Check out this talk!)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Video
&lt;/h4&gt;

&lt;p&gt;Some readers would rather follow along with someone as they work through the material. In that case, it can help to embed videos into your docs, showing someone walking through all the steps.&lt;/p&gt;

&lt;p&gt;Each part of the Gatsby Tutorial includes an embedded YouTube video like the one below, where a colleague and I walk through the content for that part.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/RnaM4Rt05vY?start=244"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Livestreams, analogies, and diagrams don’t &lt;em&gt;replace&lt;/em&gt; the text in your doc. They complement each other. Each of these formats still require text to set the context and explain why this image or resource is relevant.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Opting into additional details
&lt;/h3&gt;

&lt;p&gt;Another way you can provide readers choices is by making it easy for them to opt into or out of additional levels of detail.&lt;/p&gt;

&lt;p&gt;In the new Gatsby Tutorial, we do this by making use of MDX’s ability to use React components inside of Markdown files. We have two different components that clearly separate extra optional content from the main flow of the document: announcements and collapsible sections.&lt;/p&gt;

&lt;p&gt;For both components, the goal is to clearly indicate to users what content is required (the main steps of the Tutorial) and what is supplementary and can be skipped. That way, readers can tailor their experience through the doc to match the level of detail they’re interested in.&lt;/p&gt;

&lt;h4&gt;
  
  
  Announcements
&lt;/h4&gt;

&lt;p&gt;In the Gatsby Tutorial, blue announcement boxes like the one shown below add extra information that stands out visually from the normal flow of the document.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fd037cbca3a36cba90507275c7f51b0dd%2F08c33%2Fannouncement-component.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fd037cbca3a36cba90507275c7f51b0dd%2F08c33%2Fannouncement-component.png" alt="A blue callout box stands out from the rest of the page content with the following tip: " start=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sometimes these callouts include &lt;strong&gt;Syntax Hints&lt;/strong&gt; for JavaScript or React newcomers who might not be familiar with a particular piece of syntax. Other times they have &lt;strong&gt;Pro Tips&lt;/strong&gt; which go into more detail about things that aren’t required for readers to know but that they might find interesting.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Adding consistent labels to your callouts is another way to expose the architecture of your docs to readers!&lt;/p&gt;

&lt;p&gt;When readers are familiar with the types of callouts they'll see in your docs, they'll be able to parse through new docs more quickly. (&lt;a href="https://personalmba.com/pattern-matching/" rel="noopener noreferrer"&gt;Our brains are hard-wired for pattern matching!&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When you wrap this optional content in a visually distinct container, it helps readers who want to skip that content quickly see where to start reading again.&lt;/p&gt;

&lt;h4&gt;
  
  
  Collapsible Sections
&lt;/h4&gt;

&lt;p&gt;The second component used in the Gatsby Tutorial is a purple collapsible box, which lets you hide content behind an expandable dropdown. (Under the hood, it's using the &lt;code&gt;details&lt;/code&gt; and &lt;code&gt;summary&lt;/code&gt; HTML elements.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fb5f686eafe2db3f30c5416f845a17883%2F29007%2Fcollapsible-component.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fb5f686eafe2db3f30c5416f845a17883%2F29007%2Fcollapsible-component.png" alt="A collapsible component. When collapsed, only the title is visible: "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We use this to hide background information that might be helpful for React or GraphQL newcomers but that isn’t strictly necessary reading for people who want to just follow along with the steps of the Tutorial.&lt;/p&gt;

&lt;p&gt;This would also be a good component to use if you wanted to document common error messages that users might encounter. For example, you could have the error name in the summary tag, and then users could click to expand for more information on what the error is and how to fix it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip #4: Check for understanding
&lt;/h2&gt;

&lt;p&gt;Once your users have found the doc they’re looking for and they’ve read the content, how do you know whether they "get" it? By adding in checks for understanding, you can use to make sure that your readers leave your docs understanding the things you were hoping they’d learn.&lt;/p&gt;

&lt;p&gt;Checks for understanding are built-in opportunities for your readers to self-assess whether or not they understood the material in the doc.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Depending on what information architecture you decided on for your docs, checks for understanding may make more sense in some types than others.&lt;/p&gt;

&lt;p&gt;For example, if you're using the Diátaxis framework, checks for understanding may make more sense in a Tutorial or Explanation doc than in a Reference doc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the new Gatsby Tutorial, each part is book-ended by the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;(At the beginning) A list of &lt;strong&gt;learning objectives&lt;/strong&gt;, which outline what readers should be able to do by the time they finish reading the doc.&lt;/li&gt;
&lt;li&gt;(At the end) Separate lists for &lt;strong&gt;questions&lt;/strong&gt; (like a mini quiz) and &lt;strong&gt;key takeaways&lt;/strong&gt;, to help readers reflect on whether or not they achieved the expected learning objectives.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  Want an example?
  &lt;p&gt;Here are some concrete examples of these lists, from &lt;a href="https://www.gatsbyjs.com/docs/tutorial/part-4/" rel="noopener noreferrer"&gt;Part 4 of the Gatsby Tutorial&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson Objectives:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By the end of this part of the Tutorial, you will be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use GraphiQL to explore the data in the data layer and build your own GraphQL queries.&lt;/li&gt;
&lt;li&gt;Use the useStaticQuery hook to pull data into a “building-block” component.&lt;/li&gt;
&lt;li&gt;Use the gatsby-source-filesystem plugin to pull data into your site from your computer’s filesystem.&lt;/li&gt;
&lt;li&gt;Create a page query to pull data into a page component.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Summary Questions:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;How do you get data into the data layer?&lt;/li&gt;
&lt;li&gt;How can you see what data is in the data layer?&lt;/li&gt;
&lt;li&gt;How do you get data out of the data layer?&lt;/li&gt;
&lt;li&gt;What are the differences between a page query and useStaticQuery? How would you decide which one to use?&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Key Takeaways:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Source plugins pull data from their original location into the Gatsby GraphQL data layer.&lt;/li&gt;
&lt;li&gt;You can use the GraphiQL endpoint (&lt;code&gt;localhost:8000/___graphql&lt;/code&gt;) to explore the data in the data layer and design GraphQL queries.&lt;/li&gt;
&lt;li&gt;You can write GraphQL queries to pull data out of the data layer and into your React components.

&lt;ul&gt;
&lt;li&gt;To pull data into a “building block” component, use the useStaticQuery hook.&lt;/li&gt;
&lt;li&gt;To pull data into a page component, use a page query.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;



&lt;/p&gt;

&lt;p&gt;These bulleted lists are a super low-lift option. But you could also do something more interactive, like having a CodePen or custom-built component to let readers practice the skills they learned. &lt;a href="https://www.apollographql.com/" rel="noopener noreferrer"&gt;Apollo&lt;/a&gt; (where I work now!) has a learning platform called &lt;a href="https://odyssey.apollographql.com/" rel="noopener noreferrer"&gt;Odyssey&lt;/a&gt; that uses different kinds of interactive checks for understanding, including multiple-choice questions, fill-in-the-blank paragraphs, and embedded code challenges.&lt;/p&gt;

&lt;p&gt;Regardless of the format, by providing opportunities for readers to self-assess how well they understood the material, you’re giving them a chance to strengthen their memories of the key ideas covered in your doc, which will make it easier for them to remember in the future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip #5: Get user feedback
&lt;/h2&gt;

&lt;p&gt;Once you’ve gotten all your docs in place, and you’re happy with how they’re organized and the content that’s in them, the only way you can know whether your docs experience is good or not is by hearing from actual users!&lt;/p&gt;

&lt;p&gt;For the Gatsby docs, we have a feedback widget at the bottom of every page, which lets readers rate whether the current doc was great, fine, or bad. It also has a space for them to write in a comment, if they want to tell us a bit more about their experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F0ec440cf03e4ae0119f9ca24393a8885%2F8f5d7%2Fgatsby-feedback-widget.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F0ec440cf03e4ae0119f9ca24393a8885%2F8f5d7%2Fgatsby-feedback-widget.png" alt="A feedback modal. "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All of those feedback responses get stored in a database, which is connected to a Gatsby site that pulls all the ratings and comments into a table. From there, we can look at overall trends and average ratings, to see which docs people really like and which ones need to be improved.&lt;/p&gt;

&lt;p&gt;But ultimately, what’s more interesting to me is reading through all the comments that people leave.&lt;/p&gt;

&lt;h3&gt;
  
  
  Positive comments validate assumptions
&lt;/h3&gt;

&lt;p&gt;Some of the comments are really positive, which is great for morale! But more importantly positive feedback helps us validate our assumptions about which things we thought would resonate with users.&lt;/p&gt;

&lt;p&gt;For example, when I was rewriting the Gatsby Tutorial, one of the things I wanted to make sure to preserve was how the old Tutorial was approachable for readers without any prior React or GraphQL experience. And by reading through the comments on the new Tutorial, it’s been reassuring to see that several people have called out the fact that the new content doesn’t make assumptions about what people already know or use a ton of jargon.&lt;/p&gt;

&lt;h3&gt;
  
  
  Constructive comments lead to incremental improvements
&lt;/h3&gt;

&lt;p&gt;But not all reviews are positive, and that can be a good thing! By addressing &lt;em&gt;constructive&lt;/em&gt; comments and listening to user suggestions, you can make incremental improvements that gradually help make your docs experience better for your future users.&lt;/p&gt;

&lt;p&gt;For example, the Gatsby Tutorial received one comment from a reader suggesting we add a “continue” button to the bottom of each page of the Tutorial, which was an easy fix to improve the reader experience. Other readers wrote in that they were confused about a particular aspect of CSS modules, so I added in an additional Syntax Hint announcement to explain what was going on under the hood. (And now we don't get comments on that anymore!)&lt;/p&gt;

&lt;p&gt;Addressing constructive comments is also a good way to show your users that you care about their experience, and that you’re actually listening to their feedback. This helps build trust with the people in your community, which is always a good thing!&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap It Up
&lt;/h2&gt;

&lt;p&gt;And those are my secrets for creating high-quality docs that work for both newcomers and power users!&lt;/p&gt;

&lt;p&gt;To recap what we’ve covered:&lt;/p&gt;

&lt;p&gt;It’s hard to make one docs site that works for everyone. But there are concrete steps you can take to improve your docs experience!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Expose the architecture&lt;/strong&gt;, to help users understand the big picture of how your docs are structured.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set the stage&lt;/strong&gt; by making sure each doc provides context, relevance, and application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let readers choose&lt;/strong&gt; what works best for them by explaining the same idea in a variety of ways, and make it clear when they can opt into or out of additional information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check for understanding&lt;/strong&gt; by providing opportunities for self-assessment, through questions that align to each doc’s learning objectives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get user feedback&lt;/strong&gt; so that you can validate your assumptions and continue making incremental improvements.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope that you learned at least one new technique that you can use to improve your docs experience for your users.&lt;/p&gt;

&lt;p&gt;Have other tips that I didn't cover? I'd love to hear about them! You can reach me on Twitter: &lt;a href="https://twitter.com/meganesulli" rel="noopener noreferrer"&gt;@meganesulli&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;Linked in this post:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.gatsbyjs.com/docs/tutorial/" rel="noopener noreferrer"&gt;The official Gatsby Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://diataxis.fr/" rel="noopener noreferrer"&gt;Diátaxis documentation framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.edglossary.org/differentiation/" rel="noopener noreferrer"&gt;Differentiation in education&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=MQGe9zxlRdk" rel="noopener noreferrer"&gt;Drawing the Invisible: How to Explain React through Visual Metaphors&lt;/a&gt;: Maggie Appleton's talk for Women of React 2020&lt;/li&gt;
&lt;li&gt;&lt;a href="https://personalmba.com/pattern-matching/" rel="noopener noreferrer"&gt;What is "Pattern Matching"?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://odyssey.apollographql.com/" rel="noopener noreferrer"&gt;Apollo Odyssey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additional resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://link.springer.com/book/10.1007/978-1-4842-7217-6" rel="noopener noreferrer"&gt;Docs for Developers: An Engineer's Field Guide to Technical Writing&lt;/a&gt; (by Jared Bhatti, Zachary Sarah Corleissen, Jen Lambourne, David Nunez, and Heidi Waterhouse): A great book for anyone looking to improve their documentation skills.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>documentation</category>
      <category>writing</category>
    </item>
    <item>
      <title>#DevEdBookClub Round 2: The Programmer's Brain</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Tue, 22 Feb 2022 07:21:10 +0000</pubDate>
      <link>https://dev.to/devedbookclub/devedbookclub-round-2-the-programmers-brain-4l65</link>
      <guid>https://dev.to/devedbookclub/devedbookclub-round-2-the-programmers-brain-4l65</guid>
      <description>&lt;p&gt;&lt;strong&gt;It's time for our next round of our Twitter book club, and you're invited!&lt;/strong&gt; Each week, we'll host a Twitter chat on Thursday at 6pm PT to discuss a chapter of &lt;a href="https://www.manning.com/books/the-programmers-brain"&gt;The Programmer's Brain: What every programmer needs to know about cognition&lt;/a&gt;. We start with Chapter 1 on March 10.&lt;/p&gt;

&lt;p&gt;Why join? Because &lt;strong&gt;learning is more fun together&lt;/strong&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Participate
&lt;/h2&gt;

&lt;p&gt;If you want to read along with us, here's what you need to do:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pick up a copy of &lt;a href="https://www.manning.com/books/the-programmers-brain"&gt;The Programmer's Brain&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Before the day of the Twitter chat, read the assigned chapter for the week. Jot down any &lt;strong&gt;quotes&lt;/strong&gt; that stand out to you or &lt;strong&gt;questions&lt;/strong&gt; you have.&lt;/li&gt;
&lt;li&gt;On the day of the Twitter chat, hop onto Twitter between &lt;strong&gt;6pm-7pm PT&lt;/strong&gt;. Check the &lt;a href="https://twitter.com/DevEdBookClub"&gt;@DevEdBookClub Twitter&lt;/a&gt; account for the discussion thread.&lt;/li&gt;
&lt;li&gt;Join the conversation (and tag your replies with &lt;strong&gt;#DevEdBookClub&lt;/strong&gt;)! Check out what other participants are saying. Reply with your own thoughts, experiences, or questions. This is a great time to learn from each other and make new friends!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you can't attend during the scheduled time, you can still add to the conversation after the fact. We'd love to hear your thoughts, whenever you have time to share them! We'll also update this post with links to each thread, so you can easily catch up on all the conversations in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schedule
&lt;/h2&gt;

&lt;p&gt;Like to plan ahead? Here's when we're currently planning to discuss each chapter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 1: On Reading Code Better&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;March 10, 2022: &lt;a href="https://twitter.com/DevEdBookClub/status/1502102252772753408"&gt;&lt;strong&gt;Chapter 1&lt;/strong&gt; (Decoding your confusion while coding)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;March 17: &lt;a href="https://twitter.com/DevEdBookClub/status/1504623715971084301"&gt;&lt;strong&gt;Chapter 2&lt;/strong&gt; (Speed reading for code)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;March 24: &lt;a href="https://twitter.com/DevEdBookClub/status/1507160453822119938"&gt;&lt;strong&gt;Chapter 3&lt;/strong&gt; (How to learn programming syntax quickly)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;March 31: &lt;a href="https://twitter.com/DevEdBookClub/status/1509697176305242124"&gt;&lt;strong&gt;Chapter 4&lt;/strong&gt; (How to read complex code)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Part 2: On Thinking About Code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;April 7: &lt;a href="https://twitter.com/DevEdBookClub/status/1512233905276948486"&gt;&lt;strong&gt;Chapter 5&lt;/strong&gt; (Reaching a deeper understanding of code)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;April 14: &lt;a href="https://twitter.com/DevEdBookClub/status/1514770777521991680"&gt;&lt;strong&gt;Chapter 6&lt;/strong&gt; (Getting better at solving programming problems)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;April 21: &lt;a href="https://twitter.com/DevEdBookClub/status/1517307467666927616"&gt;&lt;strong&gt;Chapter 7&lt;/strong&gt; (Misconceptions: Bugs in thinking)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(April 28: No Twitter chat this week. Catch up on the reading, or have a nice break!)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 3: On Writing Better Code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;May 5: &lt;a href="https://twitter.com/DevEdBookClub/status/1522380749298495489"&gt;&lt;strong&gt;Chapter 8&lt;/strong&gt; (How to get better at naming things)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;May 12: &lt;a href="https://twitter.com/DevEdBookClub/status/1524917549942513664"&gt;&lt;strong&gt;Chapter 9&lt;/strong&gt; (Avoiding bad code and cognitive load: Two frameworks)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;May 19: &lt;a href="https://twitter.com/DevEdBookClub/status/1527454262954864640"&gt;&lt;strong&gt;Chapter 10&lt;/strong&gt; (Getting better at solving complex problems)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Part 4: On Collaborating On Code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;May 26: &lt;a href="https://twitter.com/DevEdBookClub/status/1529990919499329536"&gt;&lt;strong&gt;Chapter 11&lt;/strong&gt; (The act of writing code)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;June 2: &lt;a href="https://twitter.com/DevEdBookClub/status/1532527813290405889"&gt;&lt;strong&gt;Chapter 12&lt;/strong&gt; (Designing and improving larger systems)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;June 9: &lt;a href="https://twitter.com/DevEdBookClub/status/1535064498968571904"&gt;&lt;strong&gt;Chapter 13&lt;/strong&gt; (How to onboard new developers)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;General Wrap-up&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;June 16: &lt;a href="https://twitter.com/DevEdBookClub/status/1537600967155208192"&gt;&lt;strong&gt;General Wrap-Up / Final Thoughts&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Have questions?
&lt;/h2&gt;

&lt;p&gt;Leave a comment below, or reach out to us on Twitter!&lt;/p&gt;

&lt;p&gt;See you on March 10!&lt;/p&gt;

</description>
      <category>learning</category>
      <category>books</category>
      <category>news</category>
    </item>
    <item>
      <title>Join our #DevEdBookClub!</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Tue, 02 Nov 2021 20:12:02 +0000</pubDate>
      <link>https://dev.to/devedbookclub/join-our-devedbookclub-hfj</link>
      <guid>https://dev.to/devedbookclub/join-our-devedbookclub-hfj</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;We're starting a book club, and you're invited!&lt;/strong&gt; Each week, we'll host a Twitter chat on Thursday at 6pm PT to discuss a chapter of &lt;a href="https://link.springer.com/book/10.1007/978-1-4842-7217-6" rel="noopener noreferrer"&gt;Docs for Developers&lt;/a&gt;, starting with Chapter 1 on November 18.&lt;/p&gt;

&lt;p&gt;If you want to read along, you can pick up a copy of &lt;a href="https://link.springer.com/book/10.1007/978-1-4842-7217-6" rel="noopener noreferrer"&gt;Docs for Developers&lt;/a&gt;. Or join us on the day to share your thoughts and experiences! We'll be hosting the chat from the &lt;a href="https://twitter.com/DevEdBookClub" rel="noopener noreferrer"&gt;@DevEdBookClub Twitter&lt;/a&gt; account, and we'll use the hashtag &lt;strong&gt;#DevEdBookClub&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Why join? Because &lt;strong&gt;learning is more fun together&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1453890429309489152-930" src="https://platform.twitter.com/embed/Tweet.html?id=1453890429309489152"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1453890429309489152-930');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1453890429309489152&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  How We Got Here
&lt;/h2&gt;

&lt;p&gt;Once upon a time on Twitter, a bunch of people all posted that they'd picked up a copy of &lt;strong&gt;Docs for Developers&lt;/strong&gt;. Among them were &lt;a href="https://dev.to/aishablake"&gt;Aisha Blake&lt;/a&gt;, &lt;a href="https://dev.to/coffeecraftcode"&gt;Christina Gorton&lt;/a&gt;, and &lt;a href="https://dev.to/meganesulli"&gt;Megan Sullivan&lt;/a&gt;, who serendipitously ended up in the same thread.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1450914087504957441-500" src="https://platform.twitter.com/embed/Tweet.html?id=1450914087504957441"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1450914087504957441-500');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1450914087504957441&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;They thought it would be fun to talk about the book as a group, to keep themselves accountable and share what they learned.&lt;/p&gt;

&lt;p&gt;Thus, the DevEdBookClub was born!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Participate
&lt;/h2&gt;

&lt;p&gt;If you want to read along with us, here's what you need to do:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pick up a copy of &lt;a href="https://link.springer.com/book/10.1007/978-1-4842-7217-6" rel="noopener noreferrer"&gt;Docs for Developers&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Before the day of the Twitter chat, read the assigned chapter for the week. Jot down any &lt;strong&gt;quotes&lt;/strong&gt; that stand out to you or &lt;strong&gt;questions&lt;/strong&gt; you have.&lt;/li&gt;
&lt;li&gt;On the day of the Twitter chat, hop onto Twitter between &lt;strong&gt;6pm-7pm PT&lt;/strong&gt;. Check the &lt;a href="https://twitter.com/DevEdBookClub" rel="noopener noreferrer"&gt;@DevEdBookClub Twitter&lt;/a&gt; account for the discussion thread.&lt;/li&gt;
&lt;li&gt;Join the conversation (tag your replies with &lt;strong&gt;#DevEdBookClub&lt;/strong&gt;)! Check out what other participants are saying. Reply with your own thoughts, experiences, or questions. This is a great time to learn from each other and make new friends!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you can't attend during the scheduled time, you can still add to the conversation after the fact. We'd love to hear your thoughts, whenever you have time to share them! We'll also be writing up a quick summary of the conversation here on DEV, for future readers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Schedule
&lt;/h2&gt;

&lt;p&gt;Like to plan ahead? Here's when we're currently planning to discuss each chapter.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;November 18, 2021: &lt;a href="https://twitter.com/DevEdBookClub/status/1461514629868183552?s=20" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 1&lt;/strong&gt; (Understanding your audience)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;November 25: Break for Thanksgiving&lt;/li&gt;
&lt;li&gt;December 2: &lt;a href="https://twitter.com/DevEdBookClub/status/1466588086066843648" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 2&lt;/strong&gt; (Planning your documentation)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;December 9: &lt;a href="https://twitter.com/DevEdBookClub/status/1469124757660467205" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 3&lt;/strong&gt; (Drafting documentation)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;December 16: &lt;a href="https://twitter.com/DevEdBookClub/status/1471661614390824964" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 4&lt;/strong&gt; (Editing documentation)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;December 23: &lt;a href="https://twitter.com/DevEdBookClub/status/1474198195936776192" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 5&lt;/strong&gt; (Integrating code samples)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;December 30: &lt;a href="https://twitter.com/DevEdBookClub/status/1476734912812097540" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 6&lt;/strong&gt; (Adding visual content)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;January 6, 2022: &lt;a href="https://twitter.com/DevEdBookClub/status/1479271682967670784" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 7&lt;/strong&gt; (Publishing documentation)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;January 13: &lt;a href="https://twitter.com/DevEdBookClub/status/1481808589312331777" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 8&lt;/strong&gt; (Gathering and integrating feedback)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;January 20: &lt;a href="https://twitter.com/DevEdBookClub/status/1484345402488811522" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 9&lt;/strong&gt; (Measuring documentation quality)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;January 27: &lt;a href="https://twitter.com/DevEdBookClub/status/1486881938921050115" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 10&lt;/strong&gt; (Organizing documentation)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;February 3: &lt;a href="https://twitter.com/DevEdBookClub/status/1489418659927769089" rel="noopener noreferrer"&gt;&lt;strong&gt;Chapter 11&lt;/strong&gt; (Maintaining and deprecating documentation)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;February 10: &lt;a href="https://twitter.com/DevEdBookClub/status/1491955197949530112" rel="noopener noreferrer"&gt;&lt;strong&gt;General Wrap-Up / Final Thoughts&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;February 17: &lt;a href="https://twitter.com/DevEdBookClub/status/1494511057741746178" rel="noopener noreferrer"&gt;&lt;strong&gt;Special Q&amp;amp;A with the Authors&lt;/strong&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Have questions?
&lt;/h2&gt;

&lt;p&gt;Leave a comment below, or reach out to us on Twitter!&lt;/p&gt;

&lt;p&gt;See you on November 18!&lt;/p&gt;

</description>
      <category>learning</category>
      <category>books</category>
    </item>
    <item>
      <title>How to be a Better Learner</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Mon, 02 Aug 2021 15:45:28 +0000</pubDate>
      <link>https://dev.to/meganesulli/how-to-be-a-better-learner-421l</link>
      <guid>https://dev.to/meganesulli/how-to-be-a-better-learner-421l</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Before I joined the tech industry, I worked as a tutor, a teaching assistant, a curriculum writer. And if I’ve learned anything from all my years of teaching, it’s that &lt;strong&gt;learning new things is hard.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Especially in the tech industry! As developers, we have a constant stream of new things to be learning, and every technology has its own quirks. Jargon! Syntax! Tools! It’s easy to feel overwhelmed, especially if you’re just getting started.&lt;/p&gt;

&lt;p&gt;In this post, I’m going to talk about a few strategies you can use to learn more efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  How We Learn
&lt;/h2&gt;

&lt;p&gt;But first, I want to take a step back and talk about learning in general. The doodle below shows the progression of how we learn.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fc7ec314b3bf733f0cf95dccea1eda8e5%2F5a190%2Fhow-we-learn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fc7ec314b3bf733f0cf95dccea1eda8e5%2F5a190%2Fhow-we-learn.png" alt="A diagram showing the progression of learning as the amount of practice increases. First, learners start in the developing stage. Then, they move to the competence stage. Finally, they reach the mastery stage."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First, you start out in the &lt;strong&gt;developing&lt;/strong&gt; stage. You’re still acquiring knowledge - maybe you’ve done a few tutorials. But you don’t have a lot of practice under your belt yet, and so you still need a lot of support to do anything substantial.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once you’ve practiced some more, you move on to the &lt;strong&gt;competence&lt;/strong&gt; stage. This is when you start to “get” it. You can do the thing, but it still requires conscious effort, or extra supports like checklists or cheat sheets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you practice even more, eventually you reach the &lt;strong&gt;mastery&lt;/strong&gt; stage. This is when you’ve developed deep expertise in a subject. At this point, you understand how nearly all the pieces of the puzzle fit together, and you can do the thing without consciously thinking about it. In other words, you’ve developed automaticity (meaning you can do it automatically).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Tangent: Why Competence Isn't Enough
&lt;/h3&gt;

&lt;p&gt;It can be tempting to stop practicing once you reach the competence stage, because you feel like you get it enough to get the job done.&lt;/p&gt;

&lt;p&gt;But the great thing about achieving mastery is that, once you can handle the basics on autopilot, your brain is freed up to spend more time doing the hard work of creative problem solving.&lt;/p&gt;

&lt;p&gt;I have a quick analogy to help illustrate what I mean. When I was first learning how to drive, I felt really overwhelmed by all the different things I had to keep track of. Was that dog on the sidewalk going to run into the street? Was that green light about to turn yellow? Was I too close to the car in front of me? There’s a lot to think about all at once!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F4d5d50d275b7698bafafee37bdd32a05%2F5a190%2Fbeginner.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F4d5d50d275b7698bafafee37bdd32a05%2F5a190%2Fbeginner.png" alt="A point-of-view drawing of a person driving a car, from a beginner driver's perspective. There are several thought bubbles related to what the driver sees through the windshield."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But now that I’m a more experienced driver, my brain is able to process things like that dog and that light and the car in front of me without me even consciously thinking about it.&lt;/p&gt;

&lt;p&gt;It’s not that I don’t see the same stimuli as when I was a beginner. But now, I’ve practiced driving enough so that I can react to all those things automatically. And that frees up my brain to wander and contemplate life’s real hard questions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fc12b0b00970ade087a96343938c8d9b5%2F5a190%2Fexpert.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fc12b0b00970ade087a96343938c8d9b5%2F5a190%2Fexpert.png" alt="The same point-of-view of a person driving a car, but from an expert driver's perspective. They see the same things through the windshield as the beginner, but there's only one thought bubble: "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips to Maximize Learning
&lt;/h2&gt;

&lt;p&gt;So we know that - with lots of practice - we can achieve mastery. But &lt;em&gt;how&lt;/em&gt; should we practice, to make sure we’re spending our time efficiently?&lt;/p&gt;

&lt;p&gt;The main strategies I’m going to talk about in this post are a combination of retrieval practice and feedback-driven metacognition. Basically, trying to remember things that you’ve learned, and then checking your answers to see if you were right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F07cab51f24ee8395d1481522866e994c%2F5a190%2Fretrieval-practice-and-feedback-driven-metacognition.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F07cab51f24ee8395d1481522866e994c%2F5a190%2Fretrieval-practice-and-feedback-driven-metacognition.png" alt="Retrieval Practice + Feedback-Driven Metacognition"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1) Retrieval Practice
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;“The limiting factor for long-term memory is not retention (what is stored) but recall (what can be accessed).”&lt;/p&gt;

&lt;p&gt;Greg Wilson, &lt;a href="https://teachtogether.tech/" rel="noopener noreferrer"&gt;Teaching Tech Together&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you think about some typical study patterns (like cramming for a test, re-reading notes or textbooks, or binge-watching online courses) many of them focus on retention - trying to shove information into your brain. And even though that can &lt;em&gt;feel&lt;/em&gt; productive, it doesn’t help much when you actually need to use that information.&lt;/p&gt;

&lt;p&gt;Retrieval practice, on the other hand, is all about trying to get information out of your brain. Which is ultimately the skill you want to practice, since that’s what you’ll have to do when you’re trying to use what you’ve learned for your actual job or side project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F13056b96860b02be5667e9883dcfc9e1%2F5a190%2Finto-brain-vs-out-of-brain.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F13056b96860b02be5667e9883dcfc9e1%2F5a190%2Finto-brain-vs-out-of-brain.png" alt="Two brain emoji. The first brain has an arrow pointing toward it, labeled "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s take a quick look at how memories work. Your brain has two different kinds of memory: working memory (sometimes also called short-term memory) and long-term memory.&lt;/p&gt;

&lt;p&gt;You can think of your working memory as a backpack, where you hold onto the memory "books" you’re currently working with. It’s quick to access, but it’s not very big, so it can only hold a few things at a time. Your long-term memory is like a bookshelf. You can store a lot more information there, but it’s a bit slower to access, because it takes some time to find the book you’re looking for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retrieval practice&lt;/strong&gt; is the act of deliberately pulling information out of your long-term memory and back into your working memory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fb919706f24cf9f914c168becc9f289ff%2F5a190%2Fretrieval-from-long-term-memory.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fb919706f24cf9f914c168becc9f289ff%2F5a190%2Fretrieval-from-long-term-memory.png" alt="A diagram of working memory as a backpack and long-term memory as a bookshelf. An arrow labeled "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you practice remembering a particular piece of information, your brain thinks, “Oh, we keep trying to access this memory, so it must be important,” and strengthens those neural pathways, which makes it easier for you to remember that thing again next time.&lt;/p&gt;

&lt;p&gt;Studies have shown that using retrieval practice leads to better long-term retention of information than cramming or rereading. That’s not to say that retrieval practice is easy! It’s hard, and it can feel frustrating, like constantly having a word on the tip of your tongue that you can’t quite remember. But studies have also shown that the more challenging something is to learn, the better it is for long-term learning.&lt;/p&gt;

&lt;h3&gt;
  
  
  2) Feedback-Driven Metacognition
&lt;/h3&gt;

&lt;p&gt;The second piece of this technique is called &lt;strong&gt;feedback-driven metacognition&lt;/strong&gt;, which essentially means using feedback to reflect on your own thinking.&lt;/p&gt;

&lt;p&gt;Put simply, this means checking your answer after retrieving it. So when you’re practicing, you should be constantly alternating between trying to remember some piece of knowledge, and then checking yourself to see if you were correct.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F386bd3923d8acd8c549c6bbd3f3eb4e5%2F5a190%2Ffeedback-driven-metacognition-cycle.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F386bd3923d8acd8c549c6bbd3f3eb4e5%2F5a190%2Ffeedback-driven-metacognition-cycle.png" alt="A cycle with arrows connecting two labels in an infinite loop: "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This feedback loop helps cement the things you already know, and it also helps you identify gaps in your current knowledge.&lt;/p&gt;

&lt;p&gt;If we go back to the backpack analogy, when you use feedback-driven metacognition to check your retrieval, you give your brain a chance to update that memory. It’s like adding notes to the margin of your memory book, to correct a misconception or add some extra details. That way, the next time you retrieve that memory, there’s a bit more information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F33c4f880040c796d3c4e3b3b7db5ee4c%2F5a190%2Fupdate-memory-book.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F33c4f880040c796d3c4e3b3b7db5ee4c%2F5a190%2Fupdate-memory-book.png" alt="Another diagram with working memory as a backpack and long-term memory as a bookcase. An arrow points from the backpack to the bookcase, labeled with a paper and pencil "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Putting It Into Practice
&lt;/h3&gt;

&lt;p&gt;Now that we’ve talked about what retrieval practice and feedback-driven metacognition are, let’s look at some examples of how you can put these strategies into practice.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;"Read-cover-retrieve."&lt;/strong&gt; Immediately after reading a section (or watching a video), cover up what you just read with your hand, and try to restate what you learned in your own words.

&lt;ul&gt;
&lt;li&gt;For best results, try actually speaking aloud, so that your brain really has to go through the process of distilling and communicating the information. Remember, the more challenging you make it for yourself, the better it will be for your long-term learning.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Make &lt;strong&gt;flashcards&lt;/strong&gt; to test yourself on key vocabulary or concepts. (Personally, I have a set of Git flashcards that I made for myself, with a command on one side and a diagram showing what it does on the other side.)

&lt;ul&gt;
&lt;li&gt;Again, when you’re testing yourself, try to actually say your answer out loud first, as opposed to looking at the card, thinking, “Oh yeah I know this one,” and flipping it over to read the answer (which is really just rereading and not actual retrieval practice).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Do a &lt;strong&gt;brain dump&lt;/strong&gt;. Get a blank piece of paper and write down everything you know about a topic. (This is also called the Feynman Technique.) You can make a concept map of key ideas, or you can write it out in words. The important thing is forcing your brain to articulate the concepts in your own words.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Take It to the Next Level
&lt;/h2&gt;

&lt;p&gt;Congratulations! You now know the basics of retrieval practice and feedback-driven metacognition.&lt;/p&gt;

&lt;p&gt;Now that we’ve covered the fundamentals, it’s time to turn things up a notch. Next, we’ll look at a few ways you can make your retrieval practice more challenging, which will help you remember things even better.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F862e07e61cc4d13994b29273eb337fcf%2F5a190%2Flevel-up.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F862e07e61cc4d13994b29273eb337fcf%2F5a190%2Flevel-up.png" alt="A celebratory "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Pro Tip #1: Spaced Repetition
&lt;/h3&gt;

&lt;p&gt;The first pro tip is to use &lt;strong&gt;spaced repetition&lt;/strong&gt;, which means spreading out your practice over a several practice sessions. For example, instead of practicing a new skill for two hours all in one afternoon, it's better to practice for half an hour over the course of four days.&lt;/p&gt;

&lt;p&gt;But why is that?&lt;/p&gt;

&lt;p&gt;The graph below shows how the strength of a memory decays over time. It comes from a study by a German psychologist named Hermann Ebbinghaus. He memorized a bunch of random gibberish words, and then charted how well he was able to remember them at various time intervals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fa4cd12d0fa0822f33fd9b1552b5ff480%2F5a190%2Fforgetting-curve.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fa4cd12d0fa0822f33fd9b1552b5ff480%2F5a190%2Fforgetting-curve.png" alt="A graph for the Forgetting Curve, with time on the horizontal axis and memory strength on the vertical axis. The memory strength is strongest at the start, then decreases exponentially over time."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ebbinghaus found that the strength of a memory is strongest when you first learn it, then decays exponentially. It decreases the fastest in the first 20 minutes, then continues to drop for the first hour, and then eventually levels out after a day or so.&lt;/p&gt;

&lt;p&gt;In other words, the more time that passes, the less you remember. Not terribly groundbreaking on its own. But what’s interesting is when you look at how this curve is affected by spaced repetition.&lt;/p&gt;

&lt;p&gt;Ebbinghaus did another experiment, where he tracked the forgetting curve for his list of nonsense words, and then once he couldn’t remember any of the words anymore, he reviewed the list and started tracking a new forgetting curve. He repeated that process a bunch of times - learning, forgetting, relearning, forgetting again.&lt;/p&gt;

&lt;p&gt;And he found that the rate of decay in each subsequent forgetting curve was actually slower than the previous ones. In other words, &lt;strong&gt;the act of remembering something slows the rate at which you forget it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fe2bc45166f12a90977c43149dd8fba10%2F5a190%2Fforgetting-curve-with-spaced-repetition.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2Fe2bc45166f12a90977c43149dd8fba10%2F5a190%2Fforgetting-curve-with-spaced-repetition.png" alt="A graph for the Forgetting Curve with spaced repetition, with time on the horizontal axis and memory strength on the vertical axis. The memory strength starts out strong, then decreases over time. Once it dips to a certain threshold, there's a practice session, which spikes the memory strength back up to its initial value. The next time the memory strength decreases, it takes a longer amount of time to reach the same lower threshold."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key takeaway here is that, by giving yourself some time to forget between retrieval practice sessions, you’re actually strengthening those memories and making them easier to recall in the future.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pro Tip #2: Interleaved Practice
&lt;/h3&gt;

&lt;p&gt;The second pro tip is to use &lt;strong&gt;interleaved practice&lt;/strong&gt;. In other words, mix up the order in which you practice different skills.&lt;/p&gt;

&lt;p&gt;For example, imagine you're learning how to use a hammer and how to use a wrench. With interleaved practice, instead of doing all the nails first and all the bolts second, you’d switch randomly back and forth between the two.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F4abd850efc2dd4223a3b0f99c650fb48%2F5a190%2Finterleaved-practice.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F4abd850efc2dd4223a3b0f99c650fb48%2F5a190%2Finterleaved-practice.png" alt="A girl holding a hammer and a wrench. One option (with a red "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You might be thinking that this seems inefficient. Wouldn’t it be faster to do all the hammering first and then do all the wrenching? You’re right, but remember that the more challenging you make your retrieval practice, the better your long-term learning gains will be. With interleaved practice, the focus isn’t on getting the job done as quickly and easily as possible. It’s about practicing &lt;strong&gt;how to choose the right tool for the problem at hand&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Now!
&lt;/h2&gt;

&lt;p&gt;Before you go, I want to give you one chance to try out retrieval practice for yourself.&lt;/p&gt;

&lt;p&gt;Grab a piece of paper and do a quick brain dump of all the key ideas you can remember from this post. Ready? Go!&lt;/p&gt;

&lt;p&gt;
  &lt;em&gt;When you're done, click here for some feedback-driven metacognition.&lt;/em&gt;
  &lt;p&gt;The diagram below recaps the main concepts from this post.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F25d19eb247f79d41b47ab62452b77b92%2F5a190%2Frecap-retrieval-practice.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmeganesulli.com%2Fstatic%2F25d19eb247f79d41b47ab62452b77b92%2F5a190%2Frecap-retrieval-practice.png" alt="A collage of five of the diagrams from earlier in the post: how we learn, retrieval practice, feedback-driven metacognition, spaced repetition, and interleaved practice."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How many did you remember? Which ones did you forget or misremember?&lt;/p&gt;

&lt;p&gt;For a bonus challenge, try explaining each of these concepts in your own words.&lt;/p&gt;



&lt;/p&gt;

&lt;p&gt;Otherwise, I’ll leave you with one final thought:&lt;/p&gt;

&lt;p&gt;Learning new things is hard. &lt;strong&gt;And you can do hard things.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.retrievalpractice.org/" rel="noopener noreferrer"&gt;Retrieval Practice&lt;/a&gt; 🌐&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ncase.me/remember/" rel="noopener noreferrer"&gt;How to Remember Anything Forever-ish&lt;/a&gt; 🌐&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.coursera.org/learn/learning-how-to-learn" rel="noopener noreferrer"&gt;Learning How to Learn&lt;/a&gt; 👩‍🏫&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://teachlikeachampion.com/books/practice-perfect/" rel="noopener noreferrer"&gt;Practice Perfect&lt;/a&gt; 📚&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.hup.harvard.edu/catalog.php?isbn=9780674729018" rel="noopener noreferrer"&gt;Make It Stick&lt;/a&gt; 📚&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://teachtogether.tech/" rel="noopener noreferrer"&gt;Teaching Tech Together&lt;/a&gt; 📚&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.cultofpedagogy.com/" rel="noopener noreferrer"&gt;Cult of Pedagogy&lt;/a&gt; 🌐&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>learning</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Tips for Teaching a Remote Workshop</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Sat, 03 Apr 2021 03:50:04 +0000</pubDate>
      <link>https://dev.to/meganesulli/tips-for-teaching-a-remote-workshop-4b9d</link>
      <guid>https://dev.to/meganesulli/tips-for-teaching-a-remote-workshop-4b9d</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Last month, I co-facilitated a four-hour workshop at GatsbyConf. Although I've led many workshops in the past, this was my first time teaching remotely. We had over 1000 unique visitors, with around 250 participants at any given time for the full four hours. There were a few technical hiccups, but in general it went pretty well!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Want to watch the workshop recording?&lt;/strong&gt; Check it out on YouTube: &lt;a href="https://www.youtube.com/watch?v=231bkZnebvo"&gt;Getting Started with Gatsby&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Fair warning: There are some technical difficulties at the beginning. (And lots of vocal sound effects from me throughout. 😅)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this post, I'll share some strategies we used to design an engaging virtual experience for students. I'll also highlight some things I'd do differently next time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before the workshop...

&lt;ul&gt;
&lt;li&gt;Create a curriculum companion site.&lt;/li&gt;
&lt;li&gt;Use polls to gauge student engagement.&lt;/li&gt;
&lt;li&gt;Test your &lt;em&gt;exact&lt;/em&gt; technical setup.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;During the workshop...

&lt;ul&gt;
&lt;li&gt;Recruit teammates to help moderate the chat.&lt;/li&gt;
&lt;li&gt;Be flexible.&lt;/li&gt;
&lt;li&gt;Bring your enthusiasm!&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Before the Workshop: Preparation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Create a curriculum companion site
&lt;/h3&gt;

&lt;p&gt;We decided to create a &lt;a href="https://intro_workshop_gatsbyconf_2021.gtsb.io/"&gt;companion website&lt;/a&gt; that students could use to follow along with the workshop curriculum. This was likely the highest impact choice we made. After all, just because a teacher says something once doesn't mean that every student will understand and retain it. By summarizing the key points in a curriculum site, students could look over the concepts or code snippets at their own pace, even if they missed it in our slides or demos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RJOB7MC0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/f1154dbcdc13435659927da4b69c6ddc/29007/curriculum-site.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RJOB7MC0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://meganesulli.com/static/f1154dbcdc13435659927da4b69c6ddc/29007/curriculum-site.png" alt="A screenshot of the curriculum site home page. It outlines the learning goals for the workshop. It also includes links to the slide deck and example project."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Think of the site as a virtual replacement for a textbook or worksheets. You can add as much or as little information as you think students will find helpful. For our workshop, we broke up the curriculum site into different pages - one for each section in the workshop. Each page had two main sections: Background and Exercises.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Background&lt;/strong&gt; section included explanations of key concepts, diagrams, code snippets, and links to relevant documentation. The content mirrored what was in our slides, with just enough extra description to put the ideas into context. To avoid overloading students, we only explained concepts that they'd need to be able to complete the exercises for that section.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Exercises&lt;/strong&gt; section included the prompts for all the student exercises, like what you might find on a worksheet. The goal was to help students stay on track. By giving students easy access to the exercise instructions, we avoided repeatedly answering the dreaded question: "What are we supposed to be doing right now?" Each exercise had the following pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instructions&lt;/strong&gt; for the exercise.

&lt;ul&gt;
&lt;li&gt;This should include a clear goal. What are students trying to do in this exercise? How will they know when they're done?&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hints.&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Point students in the right direction, without giving them the exact answer. For example, you could list out the general steps students have to follow to finish the exercise, without telling them exactly what to type.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Solution.&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Reveal the full solution for the exercise. (In our case, we linked to a specific branch in the &lt;a href="https://github.com/meganesu/gatsby-intro-workshop-example-site-with-v3"&gt;GitHub repo for the example project&lt;/a&gt;.) If students finish early, they can check their work. Or, if they get stuck, they can use the solution to troubleshoot their own work.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extra-credit challenges.&lt;/strong&gt; (Sometimes.)

&lt;ul&gt;
&lt;li&gt;Suggest ways to extend the original exercise. This piece isn't strictly necessary, but it's helpful for students who finish the main exercise early.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want to see an example? The &lt;a href="https://intro_workshop_gatsbyconf_2021.gtsb.io/part-3"&gt;curriculum page on plugins&lt;/a&gt; is a good place to see the general structure in context.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; You can use a &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details"&gt;&lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; element&lt;/a&gt; to hide the contents of the Hints and Solution sections behind a dropdown toggle. That way, students can tailor the difficulty level to their own needs. If they want to challenge themselves, they can attempt the exercise without looking at the "spoilers." And if they want the extra help, they can open the toggle to get some more support.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we'd had more time, I would have loved to add prerecorded videos to each section, where we'd explain key concepts and walk through exercises. That way, students could work through the content at their own pace, and our facilitation could focus more on answering questions and addressing misconceptions. (This style of instruction is called the &lt;a href="https://study.com/teach/flipped-classroom.html"&gt;flipped classroom model&lt;/a&gt;.)&lt;/p&gt;

&lt;h3&gt;
  
  
  Use polls to gauge student engagement
&lt;/h3&gt;

&lt;p&gt;When you're teaching in person, you can read students' facial expressions in real time. You can sense whether the crowd feels engaged, confused, or bored, and you can adjust your instruction to accommodate their needs. But when you're teaching remotely and can't see anyone, you have to be more intentional about checking in with your audience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Polls are a great virtual replacement for "reading the room."&lt;/strong&gt; With a short multiple-choice question, you can quickly assess whether students are following you or not.&lt;/p&gt;

&lt;p&gt;When you're planning your workshop, add in multiple-choice polls at key moments, like how you'd plan out exercises or examples. You can adjust your poll questions based on what you're hoping to learn about your students. For example, you might want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gauge prior knowledge&lt;/strong&gt; of a topic. Check how comfortable students already are with a topic before you start teaching.

&lt;ul&gt;
&lt;li&gt;Example Question: "How much prior experience do you have with React?"

&lt;ul&gt;
&lt;li&gt;"This is my first time using it."&lt;/li&gt;
&lt;li&gt;"I've tried it out but haven't used it extensively."&lt;/li&gt;
&lt;li&gt;"I'm comfortable using it."&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check student progress.&lt;/strong&gt; Use these after students have been working on an exercise to see how far they got.

&lt;ul&gt;
&lt;li&gt;Example Question: "How far did you get?"

&lt;ul&gt;
&lt;li&gt;"I created a new site."&lt;/li&gt;
&lt;li&gt;"I deployed my site."&lt;/li&gt;
&lt;li&gt;"I got stuck."&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check for understanding.&lt;/strong&gt; Ask students to self-assess how comfortable they currently feel with the material. Ask this after students have had some hands-on time with the concepts, like after an exercise or question-and-answer session.

&lt;ul&gt;
&lt;li&gt;Example Question: "How comfortable are you feeling with writing GraphQL queries?"

&lt;ul&gt;
&lt;li&gt;"I get it!"&lt;/li&gt;
&lt;li&gt;"I sort of get it."&lt;/li&gt;
&lt;li&gt;"I don't get it at all."&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Wondering how to gather student responses?&lt;/strong&gt; Some conference hosting platforms have built-in audience polling features. But you can also use a tool like Google Forms or &lt;a href="https://www.sli.do/"&gt;Slido&lt;/a&gt; to set up your questions ahead of time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The way students answer a poll question should directly influence your next action as the instructor.&lt;/strong&gt; For example, if most students say they didn't complete an exercise, you might decide to give them a few more minutes to work on it. Or, if many students said they weren't very comfortable with the material, you should probably find out what concept confused them and reexplain it with some different examples.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test your &lt;strong&gt;exact&lt;/strong&gt; technical setup
&lt;/h3&gt;

&lt;p&gt;I present this cautionary tale, so you can learn from my mistakes:&lt;/p&gt;

&lt;p&gt;A few weeks before our GatsbyConf workshop, we had a dress rehearsal to try out the conference-hosting platform with a fake test event. I practiced sharing my screen, audio, and video from my laptop, and everything worked as expected. Then, the night before the conference, I thought, "You know, I should add in an external monitor. That way, I can have the chat and my notes open while I share my laptop screen." I'd still be sharing from my laptop, so everything would be fine, right?&lt;/p&gt;

&lt;p&gt;Narrator voice: "Everything was &lt;em&gt;not&lt;/em&gt; fine."&lt;/p&gt;

&lt;p&gt;On the day of the workshop, something about the resolution of my external monitor caused problems with screen sharing. Whenever I changed slides or switched between desktops, a bunch of weird visual artifacts showed up on the screen. Even though my screen looked fine to me, audience members couldn't actually see what I was presenting. And because I didn't see this issue until the actual workshop, my co-facilitator and I had to improvise a workaround so that we could actually teach the material. It wasn't ideal, and it significantly slowed down the initial pace of the workshop. Luckily, during one of the breaks, another teammate in the chat was able to help us troubleshoot and get us back on track. (Huge shoutout to Laurie Barth!)&lt;/p&gt;

&lt;p&gt;The moral of this story is to test out your &lt;em&gt;exact&lt;/em&gt; technical setup ahead of time, so that you don't have to fight with your technology on the day of the event. This includes monitors, microphones, headphones, internet connection, keyboards, lighting - any of the moving pieces that you're planning to use in the actual workshop.&lt;/p&gt;

&lt;h2&gt;
  
  
  During the Workshop: Instruction
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Recruit teammates to help moderate the chat
&lt;/h3&gt;

&lt;p&gt;If possible, have a few extra teammates sit in the session to act as teaching assistants (TAs) and help moderate the chat. When specific issues come up (e.g., a student gets an unexpected error message), ask the TAs to help them troubleshoot in the chat while you continue teaching. That way, students can get the individualized attention they need without derailing the entire lesson.&lt;/p&gt;

&lt;p&gt;I didn't always do a great job at this hand-off in our workshop. A few times, a question in chat caught my eye, and I stopped what I was saying to answer the question myself, instead of passing it on to my other teammates in the chat. And in those moments, the rest of the students were stuck waiting for me to finish explaining something that wasn't relevant to them.&lt;/p&gt;

&lt;p&gt;That's not to say that as the instructor you should never respond to the chat. If you see multiple people asking about the same topic, that's a good indicator that you may need to back up and re-explain something. But in general, &lt;strong&gt;consider the experience of the entire group before getting too far down a rabbit hole&lt;/strong&gt;. Ask yourself, "Is answering this question in public going to help unblock enough people that it's worth taking the entire group on this detour?" If the answer is no, ask a TA to help debug, or revisit the question once the rest of the group has started work time for the next exercise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be flexible
&lt;/h3&gt;

&lt;p&gt;I'm a big fan of effective time management. Before all of my workshops, I time how long it takes me to complete each exercise, and I use those times to estimate how long each section will take to teach. When I facilitate, I display &lt;a href="https://www.bigtimer.net/"&gt;timers&lt;/a&gt; during work time and breaks, so that students can self-regulate based on how much time they have left.&lt;/p&gt;

&lt;p&gt;But in the end, it's also important to know when to throw out the schedule and make adjustments on the fly. If students are confused, it's okay to take a few extra minutes to back up and help them understand the big ideas. Show them another example or explain a concept with a different analogy. If you fall a bit behind schedule, skip one of the later exercises. Personally, I'd rather not get through all the material and have high rates of student understanding than rush to finish everything and lose students along the way.&lt;/p&gt;

&lt;p&gt;It can be stressful to think on your feet in the moment, especially if things aren't going as planned. But do your best to stay calm and upbeat. Be kind to yourself. &lt;strong&gt;Remember, as the instructor, you're modeling the way students should behave when things go wrong.&lt;/strong&gt; Show them that it's okay to make mistakes. Every mistake is an opportunity to learn something new. (Keep a &lt;a href="https://www.youtube.com/watch?v=M1CHPnZfFmU"&gt;growth mindset&lt;/a&gt;!)&lt;/p&gt;

&lt;h3&gt;
  
  
  Bring your enthusiasm!
&lt;/h3&gt;

&lt;p&gt;This last tip applies to both remote and in-person teachers (and, more generally, leaders of any kind). In my experience, &lt;strong&gt;the instructor always sets the upper bound for the group's enthusiasm&lt;/strong&gt;. Students will rarely be more excited about what you're teaching than you are. And even if they start out more excited than you, they're likely to tone down their energy level to meet yours. So it's important to set that bar high from the beginning.&lt;/p&gt;

&lt;p&gt;Being an engaging speaker is just as much about &lt;em&gt;how&lt;/em&gt; you say things as it is about &lt;em&gt;what&lt;/em&gt; you say. If you sound bored by what you're talking about, odds are your students are also going to be bored and start reaching for their phones. Instead, speak clearly and confidently, in your best "teacher voice." If you feel comfortable showing your personality or incorporating a little humor, do it! It might feel silly at first, but that's okay. Setting the right tone is especially important for virtual workshops, where it's easier for students to tune out without anyone noticing.&lt;/p&gt;

&lt;p&gt;Showing enthusiasm doesn't have to mean being insincerely peppy. If that's not your style, think instead about ways you can highlight what's exciting or game-changing about your subject matter. Why is this topic important? How does it tie into what students already know, and how might it help them in the future?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Nervous about public speaking?&lt;/strong&gt; This is one way that virtual workshops are easier than in person: you don't have to see everyone! Try to do some calming exercises before the workshop starts, like taking deep breaths or stretching. I personally like doing a quick &lt;a href="https://www.youtube.com/watch?v=HP5qcA3ty1w"&gt;"shake down"&lt;/a&gt; to loosen up and boost my energy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Things I'd Do Differently Next Time
&lt;/h2&gt;

&lt;p&gt;Overall, I'm reasonably happy with how our GatsbyConf workshop went. But I do want to touch on some changes I'd make the next time around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Overcommunicate expectations about pre-work.&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Many of the issues that came up in the first part of the workshop were related to problems students encountered when installing the necessary tools. We'd included installation instructions in the workshop description and asked students to complete them ahead of time, but we could have been better about sending out reminders. Next time, I want to clearly communicate that we won't be spending time in the workshop helping people troubleshoot their setups. Instead, we could hold an office hours session a few days before the workshop, where folks can drop in and get individualized help with debugging.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up contingency plans&lt;/strong&gt; ahead of time, to unblock workshop attendees who have trouble setting up the tools or project on their own computers.

&lt;ul&gt;
&lt;li&gt;A few days before the workshop, I tried to test out the curriculum by teaching it to my boyfriend. He wasn't able to install Gatsby on his laptop, which blocked him from doing the rest of the workshop. I started setting up a CodeSandbox starter project, so that he and other participants could have a controlled environment where they could work on the project without fighting with installers. But I was new to CodeSandbox and couldn't figure it out in time for the workshop. Next time, I'd like to prepare the backup plan in advance.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provide opportunities for students to share their work.&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;I had originally planned on having students each drop a link to their project in a shared Google Doc. I wanted students to be able to celebrate each other's progress, to recreate the sense of community you'd normally get from face-to-face interactions during an in-person event. Unfortunately, because we had so many workshop participants, there were too many people trying to access the doc at once, and it crashed. (Oops. 😬) Next time, I'll have to find a different solution that can handle more viewers at once.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrap It Up
&lt;/h2&gt;

&lt;p&gt;Teaching a remote workshop can be a great opportunity to scale the number of people who see your work. But it also has its own set of unique challenges.&lt;/p&gt;

&lt;p&gt;Here's a quick summary of the student engagement techniques outlined in this post:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before the workshop...

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create a curriculum site&lt;/strong&gt; that students can use to follow along with the content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use multiple-choice polls&lt;/strong&gt; to check in with your audience and see what they need.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test your &lt;em&gt;exact&lt;/em&gt; technical setup&lt;/strong&gt; to avoid technical difficulties.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;During the workshop...

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Recruit teammates to help moderate the chat&lt;/strong&gt;, to act as teaching assistants and help answer individual student questions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Be flexible&lt;/strong&gt; and make adjustments to timing and content as needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring your enthusiasm&lt;/strong&gt;, to keep students interested.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do you have experience teaching remotely? Or have you attended a remote workshop as a student? I'd love to hear what other teaching techniques you've found especially helpful.&lt;/p&gt;

</description>
      <category>education</category>
      <category>teaching</category>
    </item>
    <item>
      <title>Nevertheless, Megan Coded</title>
      <dc:creator>Megan Sullivan</dc:creator>
      <pubDate>Wed, 03 Mar 2021 23:18:22 +0000</pubDate>
      <link>https://dev.to/meganesulli/nevertheless-megan-coded-489i</link>
      <guid>https://dev.to/meganesulli/nevertheless-megan-coded-489i</guid>
      <description>&lt;p&gt;Hi! I'm Megan. My pronouns are she/her. I've been a professional software developer since 2018, but I had a bit of a roundabout path into tech.&lt;/p&gt;

&lt;p&gt;I majored in computer science in college. It was the first time I'd ever programmed, and I struggled with the content a lot at first. But even though I managed to get the hang of it by my senior year, I never saw myself becoming a professional developer. Looking back, I think that was partially because I lacked relatable role models and partially because I (mistakenly) thought being a dev meant being a socially isolated "code monkey" at a giant tech company.&lt;/p&gt;

&lt;p&gt;In my senior year, I was also an undergraduate teaching assistant for the introductory CS course that I'd struggled with my freshman year. I loved helping students progress from feeling completely overwhelmed to gaining confidence in their own abilities. So I decided to go into education after graduation, because it seemed like more meaningful work - teaching had a direct impact on people's lives.&lt;/p&gt;

&lt;p&gt;After college, I served a year as a &lt;a href="https://www.cityyear.org/"&gt;City Year&lt;/a&gt; AmeriCorps member in New York City, where I supported a 3rd-grade classroom. I started an informal coding club, where I brought up a few of my students every day at lunch and helped them work through the Code.org &lt;a href="https://hourofcode.com/us"&gt;Hour of Code&lt;/a&gt; curriculum on my iPad. When my year of service was over, I interned at &lt;a href="https://code.org/"&gt;Code.org&lt;/a&gt; on their Education team, where I worked on the pilot for their AP CS Principles curriculum. Then, I spent two years as a curriculum writer at &lt;a href="https://girlswhocode.com/"&gt;Girls Who Code&lt;/a&gt;, a non-profit that focuses on teaching middle- and high-school girls how to code.&lt;/p&gt;

&lt;p&gt;At Girls Who Code, each lesson we wrote for the curriculum included a "Woman in Tech Spotlight," where we'd highlight a woman in the industry and the cool ways she was using computer science to help her community. The goal was to help build students' sense of belonging while showing them all the ways that computer science can have an impact. After writing dozens of these spotlights over the course of two years, I slowly began to realize that I wanted to be a developer and create cool things too.&lt;/p&gt;

&lt;p&gt;In 2018, I started my first entry-level developer position at a software consulting company called &lt;a href="https://www.thoughtworks.com/"&gt;ThoughtWorks&lt;/a&gt;. I applied there because they had won multiple awards from the Anita Borg Institute for being the best company for woman technologists. I figured if I was going to have a good first experience anywhere, it was going to be there. Working at ThoughtWorks was a great way to level up my technical skills and learn best practices like pair programming (which we did exclusively), working in Agile sprints, and using test-driven development.&lt;/p&gt;

&lt;p&gt;Today, I'm a senior software developer at &lt;a href="https://gatsbyjs.com"&gt;Gatsby&lt;/a&gt;, where I focus primarily on documentation. I love that my job now is a blend of the technical and teaching skills I've developed over the course of my career. Now that I'm farther along in my journey as a professional developer, I feel much more confident in my own knowledge and abilities. But I also remember what it was like to be just starting out and feeling totally lost and overwhelmed. Part of the reason I started blogging was because I want to share what I've learned with others. I want to help other developers grow the way my teammates at ThoughtWorks and Gatsby have helped me.&lt;/p&gt;

&lt;p&gt;Glad to have you along for the ride!&lt;/p&gt;

</description>
      <category>wecoded</category>
    </item>
  </channel>
</rss>
