-
Notifications
You must be signed in to change notification settings - Fork 1
/
getting-unstuck.qmd
97 lines (76 loc) · 5.36 KB
/
getting-unstuck.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
---
title: "Getting unstuck"
subtitle: "we all get stuck -- persistence and turning to the right resources is key!"
title-block-banner: true
toc: true
---
A *large* part of being a data scientist is ~being okay~ with not immediately knowing the answers to your code challenges -- troubleshooting errors, deciphering code, and trying new things (and likely failing at some...er many...of them) is all a part of the job. **We all experience it, no matter how many years we've been at it.**
```{r}
#| eval: true
#| echo: false
#| fig-align: "center"
#| out-width: "55%"
#| fig-alt: "A cartoon of a fuzzy round monster face showing 10 different emotions experienced during the process of debugging code. The progression goes from (1) 'I got this' - looking determined and optimistic; (2) 'Huh. Really thought that was it.' - looking a bit baffled; (3) '...' - looking up at the ceiling in thought; (4) 'Fine. Restarting.' - looking a bit annoyed; (5) 'OH WTF.' Looking very frazzled and frustrated; (6) 'Zombie meltdown.' - looking like a full meltdown; (7) (blank) - sleeping; (8) 'A NEW HOPE!' - a happy looking monster with a lightbulb above; (9) 'insert awesome theme song' - looking determined and typing away; (10) 'I love coding' - arms raised in victory with a big smile, with confetti falling."
knitr::include_graphics("images/horst-debugging.png")
```
:::{.gray-text .center-text}
*Artwork by [Allison Horst](https://allisonhorst.com/)*
:::
<br>
## Where to find help
We often learn the most (and remember more of what we learned) when we take the time to troubleshoot on our own (or at least narrow down the potential problem(s)), so you should always plan to start there {{< fa face-grin title="A smiling face" >}}. The graphic below shows the order in which you should approach different resources for help:
<br>
```{r}
#| eval: true
#| echo: false
#| fig-align: "center"
#| out-width: "75%"
#| fig-alt: "A flow chart showing the steps you should take if you're looking for help on coding problems. First, you you review course materials, check out the suggested background reading, and Google for help. Next, turn to peers (especially your learning partners for the week) -- the best ways to do so are to talk with them in or out of class, or share your question in the #eds240-data-viz Slack channel. Third, turn to your TA by asking them questions in discussion section, by attending their student hours, or by sending them a message over Slack (preferrably in #eds240-data-viz). Lastly, reach out to your instructor by attending student hours or by sending them a message over Slack."
knitr::include_graphics("images/getting-help-steps.png")
```
<br>
## Roadblock checklist
If you hit a roadblock, run through this checklist to make sure you've done your due diligence before bringing your question(s) to a peer, TA, or instructor:
- [ ] **revisit the course materials** -- your question may already be answered in the slides
- [ ] **read the documentation** -- you can do so directly from RStudio by typing `?function_name` in the console
- [ ] **search for and read the package's, [vignette](https://r-pkgs.org/vignettes.html#:~:text=A%20vignette%20is%20a%20long,package%20is%20designed%20to%20solve.) if available** -- these are often linked on CRAN under the *Documents* section (e.g. see [`{dplyr}` on CRAN](https://cran.r-project.org/web/packages/dplyr/index.html)) or found by Googling `package_name vignette` (e.g. the result of Googling `dplyr vignette` leads to the [`dplyr` vignette](https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html))
- [ ] **try Googling!** -- don't forget to a look back some of our suggested troubleshooting and Googling tips in [Teach Me How to Google](https://ucsb-meds.github.io/teach-me-how-to-google/#1):
```{r}
#| echo: false
xaringanExtra::embed_xaringan(
url = "https://ucsb-meds.github.io/teach-me-how-to-google/#1",
ratio = "4:3",
max_width = "75%"
)
```
<br>
## How to ask questions
When you decide you're going to ask a question to a peer / TA / instructor, be sure to (*borrowed from Dr. Allison Horst's [Troubleshooting 101](https://docs.google.com/presentation/d/e/2PACX-1vTBFWVMCbPQ3TSU7_K301-5oAmPr8mePtcBVyoqq5mnt1CA8AgSToqt03LykTd21w-4EenJFw4sRUHX/pub?start=false&loop=false&delayms=3000&slide=id.p) lecture, EDS 221*):
- **Provide context.** For example, "I'm trying to do this..." or "I'm working on the task where we do this..."
- **Share the specific challenge.** "I'm specifically trying to [insert function / package] to do this thing."
- **Share what happens and what you've learned.** "I repeatedly get an error message that says [this]. I've tried [this] and [this]"
- **Show your code** ideally with a [reprex](https://reprex.tidyverse.org/) that they can run / test.
- **Value and expect the Socratic method,** especially in classes and workshops -- our goal is to provide critical thinking that is transferable, not just to provide a quick fix for a single error.
<br>
## Some words of wisdom
Finally, [Julia Evans](https://jvns.ca/) shares some funny (and highly relatable) words of wisdom:
::: {.grid}
::: {.g-col-12 .g-col-md-6}
```{r}
#| eval: true
#| echo: false
#| fig-align: "center"
#| out-width: "100%"
knitr::include_graphics("images/debugging-manifesto.png")
```
:::
::: {.g-col-12 .g-col-md-6}
```{r}
#| eval: true
#| echo: false
#| fig-align: "center"
#| out-width: "100%"
knitr::include_graphics("images/wizard-programmer.png")
```
:::
:::