Always Be Learning – Kickstarter Engineering

One of our core values at Kickstarter is to “always be learning.” Employees here regularly hold teaching sessions — called “ABLs” — to share knowledge about anything from oil painting to functional programming.

On the Data team, we’ve incorporated continual learning into our regular routines in a couple of different ways. We have monthly reading groups open to everyone at Kickstarter. These sessions tend to focus on a data-related paper or technique, but we’ve also read about and discussed issues like the ethics of algorithms in judicial sentencing.

In addition to the monthly reading group, we’ve also done more focused studying in pairs, working through a textbook in a small group to gain a deeper understanding of a subject. This post will focus on our experience with the latter and offer some takeaways for those curious to try pair learning for themselves.

R Is for Reading

Last year, two of us decided to work through Hadley Wickham’s inimitable textbook Advanced R. We had both been programming in R for a while but wanted to gain a deeper understanding of why it is the way it is.

Every two weeks we’d read one chapter on our own. Then we’d meet for an hour and a half to discuss it and work through the exercises together. We might have absorbed more if we had spent more time on the exercises, but it would have made the process longer. We think it was an acceptable tradeoff.

Learning About Learning

We just finished the last chapter a few weeks ago. We’ve been really happy with the experience, so we’d like to share some of what we learned about pair learning:

  • It’s good to learn with another person. Having a study buddy can help motivate you and offer new perspectives on the subject at hand. Sometimes you just need to try explaining something to another person for it to click with you.
  • Pace yourself and don’t bite off more than you can chew. The goal of covering only one chapter every two weeks seemed like a low bar at first, but we found that spreading out the work over time made it easier to stay engaged and finish the entire book, even longterm.
  • Apply what you learn to a domain you care about. Toy examples in textbooks are useful for understanding how something works, but we found the underlying concepts easier to grasp when applied to Kickstarter data.
  • Take notes on things you’ll likely want to remember or share with others. We created an internal R guide to document what we learned so the entire Data team could benefit from our studies. Here’s a brief snippet from that guide — a quick example of R’s approach to lazy evaluation:
Lazy evaluation
Function arguments in R are lazy by default. This means they will only be evaluated at the moment they are needed.
f <- function(x) {
“Hi! I don’t have anything to do with x”
f(stop(“When called, this stops the function and returns this message”))
#> [1] “Hi! I don’t have anything to do with x”
  • It’s totally fine if you don’t remember everything you’ve studied. We’re already a little hazy on the details of the rarer object-oriented systems in R (e.g., S4 and reference classes), but we know they exist, and we know where to go if we need a refresher.
  • There are pros and cons to working as pairs rather than a larger group. One of the big downsides of pair work is that you miss out on other perspectives that you might otherwise get from more people. It’s also hard not to be inclusive if more folks want to join. On the other hand, a two-person meeting is much easier to schedule and keep on track. You also can’t slack off when it’s just the two of you — you’ve got to do the work and be ready to talk.

You don’t have to take our word for it

We all come to our jobs with different experiences and baselines of knowledge. We learn new things from each other and on our own when our work calls for it, but sometimes it can be useful to strike out into the unknown and learn something new as a team. Working through a text with a partner or small group has helped us to get sharper at the skills we need for our jobs, but it also has spurred our intellectual curiosity and our hunger to always be expanding our minds.

You should try it!

Jeremy is Director of Data and Jeffrey is a Data Scientist at Kickstarter. If you’d like to learn more about our approach to continual learning or about how we use R at Kickstarter, you can find us at the New York R Conference in April.

Source link