This post was written by Maya Gans about her 2019 RStudio internship where she built https://tidyblocks.tech. Maya also documented her project and progress at https://maya.rbind.io/tidyblocks/.
It’s funny to admit, but I applied for the RStudio internship because I wanted to learn JavaScript. I was receiving my Masters in Botany and found myself programstinating, a term I just made up for making plots and Shiny Apps from personal data instead of extracting DNA or writing my manuscript.
But programming was only a byproduct of my Master’s work and I began to realize if I wanted to identify as a programmer, I needed a more holistic understanding beyond the subset of packages and functions I used for my Masters work.
Enter the TidyBlocks project. I remember in my interview telling Greg Wilson my primary goal for the summer: to know more about JavaScript. When applying, I felt comfortable with as much JavaScript as you’d find in the first chapter of any book: arrays, lists, strings, and basic operations. I also had created some d3.js visualizations by Frankenstein-ing open source code snippets together. I was reading a lot about coding but hadn’t written much. I certainly never started a project from nothing.
Starting a project in a language you don’t know sounds daunting, but TidyBlocks hit the failure sweet spot. Failure is an inevitable part of learning new skills, but trying something too far beyond your current ability can be debilitating. The TidyBlocks project was built on Google’s Blockly, a JavaScript library for building programming editors. I wasn’t starting with a completely blank console, I had code to try to understand, and eventually build on.
I spent my first month or so understanding the library, then eventually creating custom blocks to import, transform, and visualize data. I’d go to bed perplexed, and in the morning jump out of bed with a solution. Git allowed me to make code worse before it got better. Eventually I even stopped referring to Happy Git with R. I learned how to work in branches and review code. I no longer questioned my abilities, figuring things out became a matter of when.
A little over halfway through the internship I had a working user interface and a palette of blocks. I found myself looking at the code written at the beginning of the internship and squirming. I could write this again. Better.
TidyBlocks 2.0 began in a fresh repo where I cleaned up and abstracted the code. Once functioning, the webpage was overhauled again to use the React.js framework, a popular tool for front end web developers.
I could talk about the specifics of the tool I developed, but I think what’s more important was that this internship gave me the space to learn tools and concepts I wanted to master by building something I am not only proud of, but know people can benefit from.
Being a self taught programmer can be daunting, so interning for R Studio was the perfect mix of structured learning of core concepts mixed with creative freedom when executing the specifics. In fact, having a mentor who pushed me and believed in me gave me the confidence to apply (and land!) a job where I’ll be writing custom JavaScript for Shiny Apps. And the mentorship at RStudio goes well beyond your assigned instructor. I was initially intimidated by the giants who create the packages I use almost daily, but everyone at RStudio is incredibly approachable and excited to chat over virtual coffee (or communicate on Slack solely through emojis and gifs).
There’s also workshops offered to interact with employees outside of your project – I learned how to be a TidyVerse instructor with Greg Wilson, and created a blogdown website with Alison Hill. I strongly attribute having a professional web presence to my employment and Alison will forever be my mentor AKA #RMom. I also learned a ton from the other interns in the cohort, some of whom I’m sure I’ll be friends with forever.
I wanted to write an objective post where I measured the skills I had going into the internship against the many skills I gained, but I’d be remiss if I didn’t mention how profoundly this internship changed my life. Not only has this job empowered me to become a professional programmer, but it also gave me an insight into what an inclusive tech company looks like and what constitutes a healthy work life balance. I’m so grateful that I had the opportunity to learn from the people I hold so much respect for. I strongly believe anyone who is motivated and excited to learn would gain immensely from interning with RStudio. As much as I try to remain quantitative, what I’ve gained is immeasurable.