| @ -0,0 +1,310 @@ | |||||
| "Your absolutely crazy," my boyfriend exclaimed as he gazed at my schedule. Eighteen credit hours, two part-time jobs, and three clubs-- my spring semester was shaping up to be one hell of a ride. That semester I flew too high, burned my wings, and was then was saved by Covid-19. | |||||
| Indulge me as I recount what happened during this crazy semester and | |||||
| reconcile what I've learned while pushing my limits at RIT. | |||||
| Going into this semester, I knew that I was signing up for more than | |||||
| usual. I was trying to pack my schedule with six classes so that I can | |||||
| stay on track to graduate a semester early. Usually, students hover | |||||
| around 12 to 15 credit hours. | |||||
|  | |||||
| Despite having little free time, I prioritized a healthy diet, sleep, | |||||
| and exercise. Those things stretched the limits of what I could do | |||||
| before getting burned-out. Like all plans, I deviated from my plan a | |||||
| bit. Although it was naive to plan on going to the gym early in the | |||||
| morning and eating overnight oats every day for breakfast, I ended up | |||||
| maintaining my schedule for most of the semester. Putting everything | |||||
| on the calendar was quintessential for me that semester-- my tether to | |||||
| reality. If I could manage to schedule a time for it, it was | |||||
| manageable. | |||||
| # The Fallout | |||||
| The folly of my plan was to block everything in one big chunk. My day | |||||
| started at 5:45 AM when I woke up and went to the gym, and it ended | |||||
| around 7 PM when I got back to my apartment. Laying out this | |||||
| continuous segment of time to work on homework, jobs, and classes made | |||||
| my day efficient, but it was exhausting. After an 11 hour day, I got | |||||
| back to my apartment and wanted to collapse. Nevertheless, structuring | |||||
| my time like this ended up giving me free time later at night and on | |||||
| the weekends-- which is usually when people typically hung out. | |||||
| I recognized that I was getting burned after three consecutive weeks | |||||
| of working 70 hours. I was becoming less productive, caffeine had less | |||||
| impact, and it was hard to focus. When I went to Brickhack as a club | |||||
| representative, everything felt like a haze; I tried to think and get | |||||
| work done, but all my thoughts slipped me. That day I had four energy | |||||
| drinks(a personal record), but they didn't even phase me: my mind was | |||||
| still cloudy. Nothing is worse than trying to work for 6 hours, but | |||||
| only getting 20 minutes of work done. | |||||
|  | |||||
| # Saved by COVID | |||||
| By the time spring break rolled around, I was exhausted: all energy | |||||
| and motivation were depleted from my system. Recognizing that I was | |||||
| burned out, I took time to rest and re-cooperate by spending time with | |||||
| my boyfriend. Spring break was magical, all the stresses of school | |||||
| melted off my shoulders. The little work that I did do was focused and | |||||
| efficient. | |||||
| Then RIT decided to extend spring break a week and transition classes | |||||
| online due to COVID-19. This event got coined by my friends as "spring | |||||
| break v.2 electric boogaloo." This transition introduced a new element | |||||
| of anxiety because I had to find an apartment and move ASAP; however, | |||||
| at the same time, it gave me an additional week to re-cooperate. In | |||||
| just a few days, I signed an apartment lease and moved across the | |||||
| state. | |||||
| After transitioning to online courses, I felt like I had more energy. | |||||
| Before COVID, I was spending 18 hours a week sitting in a classroom, | |||||
| but after the change, I was only spending 5 hours a week in structured | |||||
| "class," while the amount of time spent on homework remained | |||||
| equivalent. This change was huge. | |||||
| # Tracking my work | |||||
| Being the geek that I am, I tracked every single hour that I worked | |||||
| this semester. In addition to hours, I also kept track of some basic | |||||
| metrics like perceived productivity, fatigue, diet, and stress levels. | |||||
| Tracking my work helped me stay focused during the allotted times that | |||||
| I record for a specific task, and it let me know empirically when I've | |||||
| worked too much and need a break. Using a quick and dirty solution, I | |||||
| kept track of all my hours in a spreadsheet with aggregating functions | |||||
| to calculate weekly totals for each column. | |||||
|  | |||||
| At the end of the semester, I exported all my data as a single CSV | |||||
| file and imported it into R for examination. | |||||
| ```R | |||||
| library(tidyverse) | |||||
| library(plyr) | |||||
| library(lubridate) | |||||
| data <- read_csv("data.csv", col_names=TRUE) | |||||
| ``` | |||||
| In my spreadsheet, empty cells were exported to CSV as NA, and useful | |||||
| numbers only appear on every other line. The task of data preparation | |||||
| is straightforward to do in R. | |||||
| ```R | |||||
| # Remove rows that are empty | |||||
| data <- data %>% drop_na(date) | |||||
| # Convert class col to be numeric-- auto import miss impoted this | |||||
| data$class <- as.numeric(data$class) | |||||
| # replace any NA values with zero | |||||
| data[is.na(data)] = 0 | |||||
| # parse date from string | |||||
| data$date <- parse_date(data$date, "%m/%d/%y") | |||||
| # calculates week of year and creates its own col | |||||
| data$ymd = lubridate::isoweek(ymd(data$date)) | |||||
| # creates a new col with the week of day numerically | |||||
| data$wday = wday(data$date) | |||||
| ``` | |||||
| Transforming the data makes it easier to graph. When visualizing time | |||||
| series data, you typically add new columns to make grouping by that | |||||
| type intuitive; this is based on what you wish to display. | |||||
| The most exciting graph to see would be a heatmap showing my daily | |||||
| hours worked. | |||||
| ```R | |||||
| ggplot(data, aes(ymd, wday))+ | |||||
| geom_tile(aes(fill= total_hours), color="purple") + | |||||
| ggtitle("Daily Hours") + | |||||
| labs(x="School Week", y="Day of Week") + | |||||
| scale_y_continuous(name="Day of week",trans = "reverse", | |||||
| breaks=c(1,2,3,4,5,6,7), | |||||
| labels=c("Sun", "Mon", "Tue", "Wed","Thr","Fri","Sat")) + | |||||
| theme_bw() | |||||
| ``` | |||||
|  | |||||
| This heatmap is interesting because it shows that I typically worked | |||||
| longer hours on weekdays and that the intensities change after spring | |||||
| break. | |||||
| If you are not satisfied with a ggplot graph, you can use other | |||||
| scripts on the internet to plot calendar data as a heatmap. However, I | |||||
| like to solely use ggplot because it gives you very robust controls | |||||
| over how the data is displayed. | |||||
| ```R | |||||
| library(tidyquant) | |||||
| source("https://raw.githubusercontent.com/iascchen/VisHealth/master/R/calendarHeat.R") | |||||
| r2g <- c("#D61818", "#FFAE63", "#FFFFBD", "#B5E384") | |||||
| calendarHeat(data$date, data$total_hours, ncolors = 99, color = "g2r", varname="Daily Hours") | |||||
| ``` | |||||
|  | |||||
| I wasn't a fan of this library because you couldn't scale the graph. | |||||
| The next thing that I wanted to plot was a line graph showing my | |||||
| weekly totals over the semester. Note: when I exported the excel file | |||||
| as a CSV, it did not contain the cells that I added to compute the | |||||
| weekly totals, so we have to calculate the sums ourselves. A naive | |||||
| approach would loop over the data and create a new table using for or | |||||
| while loops. I am a massive shill for R and Tidyverse because the | |||||
| Tibble data structure is insanely powerful. Using Dplyr on tibbles we | |||||
| can create groupings on columns and then compute metrics on those | |||||
| groupings all while utilizing a pipeline data flow. I would highly | |||||
| recommend R and Tidyverse for anyone considering data science and | |||||
| visualizations. | |||||
| ```R | |||||
| data %>% group_by(ymd) %>% | |||||
| dplyr::summarise(total = sum(total_hours), | |||||
| work_t = sum(work_total), | |||||
| class_t = sum(class), | |||||
| hw_t = sum(hw)) %>% | |||||
| gather(key,value, total, work_t, class_t, hw_t) %>% | |||||
| ggplot(mapping=aes(x = ymd)) + | |||||
| ggtitle("Weekly Hours") + | |||||
| geom_line(mapping=aes(y = value, colour = key)) + | |||||
| labs(x="School Week", y="Hours") + | |||||
| scale_colour_discrete(name="Categories", | |||||
| breaks=c("total", "work_t", "class_t", "hw_t"), | |||||
| labels=c("Total Hours", "Work", "In Class", "HW")) + | |||||
| theme_bw() | |||||
| ``` | |||||
|  | |||||
| This is my favorite graph because it shows me the shift that my | |||||
| schedule took after classes went online. After the break, time in | |||||
| class dropped off, but the other metrics like time on homework | |||||
| remained about the same. | |||||
| Using the same grouping method as we did for weekly hours, we can | |||||
| graph all the self-reported metrics. | |||||
| ```R | |||||
| data %>% group_by(ymd) %>% | |||||
| dplyr::summarise(stress_a = mean(stress), | |||||
| fatigue_a = mean(fatigue), | |||||
| productivity_a = mean(productivity)) %>% | |||||
| gather(key,value, stress_a, fatigue_a, productivity_a) %>% | |||||
| ggplot(mapping=aes(x = ymd)) + | |||||
| ggtitle("Metrics Average") + | |||||
| geom_line(mapping=aes(y = value, colour = key)) + | |||||
| labs(x="School Week", y="Average (1-10)") + | |||||
| scale_colour_discrete(name="Metrics", | |||||
| breaks=c("stress_a", "fatigue_a", "productivity_a"), | |||||
| labels=c("Stress", "Fatigue", "Productivity")) + | |||||
| theme_bw() | |||||
| ``` | |||||
|  | |||||
| The metrics' actual values are not that important since they are | |||||
| relative to personal experience and are very inaccurate. How | |||||
| self-reported metrics change over time is more insightful than the | |||||
| actual values. We can observe that spring break and the switch to | |||||
| online classes had a positive benefit on all my self reported metrics. | |||||
| The next graph we can generate is the daily distribution of hours | |||||
| spent on separate activities. If we wanted to get really crazy, we | |||||
| could also group by day of the week; however, we already see some of | |||||
| that information in the calendar heatmap. | |||||
| ```R | |||||
| data %>% | |||||
| group_by(date) %>% | |||||
| gather(key,value, class, club, hw, work_total, total_hours) %>% | |||||
| ggplot(mapping=aes(x = date)) + | |||||
| ggtitle("Hourly Breakdowns") + | |||||
| geom_boxplot(mapping=aes(y = value, colour = key)) + | |||||
| labs(y="Hours") + | |||||
| scale_colour_discrete(name="Categories", | |||||
| breaks=c("total_hours", "hw", "work_total", "class", "club"), | |||||
| labels=c("Total Hours", "HW", "Work", "Class", "Club")) + | |||||
| theme_bw() + | |||||
| theme(axis.title.x=element_blank(), | |||||
| axis.text.x=element_blank(), | |||||
| axis.ticks.x=element_blank()) | |||||
| ``` | |||||
|  | |||||
| Unsurprisingly, we see that work and homework consumed the majority of | |||||
| my time. | |||||
| I created the same boxplot view for the metrics. | |||||
| ```R | |||||
| data %>% | |||||
| group_by(date) %>% | |||||
| gather(key,value, stress, fatigue, productivity) %>% | |||||
| ggplot(mapping=aes(x = date)) + | |||||
| ggtitle("Metrics Breakdowns") + | |||||
| geom_boxplot(mapping=aes(y = value, colour = key)) + | |||||
| labs(y="Metric") + | |||||
| scale_colour_discrete(name="Metrics", | |||||
| breaks=c("stress", "fatigue", "productivity"), | |||||
| labels=c("Stress", "Fatigue", "Productivity")) + | |||||
| theme_bw() + | |||||
| theme(axis.title.x=element_blank(), | |||||
| axis.text.x=element_blank(), | |||||
| axis.ticks.x=element_blank()) | |||||
| ``` | |||||
|  | |||||
| What surprised me was that each of these three metrics had a | |||||
| relatively similar distribution. As mentioned before, self-recorded | |||||
| metrics are not accurate, but they provide insight when observing how | |||||
| they change over time. | |||||
| # Remarks | |||||
| This was a laborious post to compose; I don't want to sound bashful or | |||||
| boastful or anything along those lines-- this is a sensitive subject. | |||||
| Sharing my experience and reflecting on this semester is my way of | |||||
| reconciling what I've learned, and hopefully, it teaches someone else | |||||
| about the nuances of burnout. | |||||
| Although this definitely has had an impact on my mental health, I | |||||
| pulled through the semester and got a 4.0 GPA. I don't think I could | |||||
| have faced burnout so defiantly without my amazing friends and loving | |||||
| boyfriend. If COVID didn't force classes online, I don't know how this | |||||
| semester would have ended for me. I feel confident in my ability to | |||||
| achieve academically, but it is hard to do so while burned out. This | |||||
| experience has taught me that I can work 50-60 hours a week without | |||||
| getting burned out, but 70 is the number that **will** break the | |||||
| camels back. | |||||
| Since the very start of the semester, I knew that I would end up | |||||
| writing this post since I was collecting the data for it; however, I | |||||
| didn't know to what extent I would actually get affected by burnout. I | |||||
| still don't have a great way of describing what this experience was | |||||
| like. In extreme cases of burnout, people have passed out and gone to | |||||
| the hospital. In this country, we have a romanticized view of working | |||||
| long hours and pulling all-nighters. I've learned first hand that it | |||||
| is best to prioritize your mental health above all else. | |||||
| College doesn't have to be this hard. RIT is known for having a | |||||
| rigorous course load, and lots of students here get burned out. | |||||
| Keeping to a regular course load and not maxing out on jobs and clubs | |||||
| should be enough to prevent most people from getting burned out. | |||||
| Looking back at my first three semesters of college, I had soo much | |||||
| free time. A large part of avoiding burnout is about knowing your | |||||
| limits and planning your calendar to accommodate that. In the future, | |||||
| I won't flirt with a schedule that will inevitably cause me to get | |||||
| burnout. | |||||