My name is Alex. I just completed my PhD in behavioral science/cognition at Duke; you can check out my LinkedIn here. I taught myself how to code during my PhD. As I was learning, I recognized two very important things:
- Python and Jupyter Notebooks are invaluable tools for researchers.
- Many online Python resources aren't written for researchers; they are hard to understand and frustrating to decipher!
Python and Jupyter Notebooks empower researchers to do better research while saving them time. My goal is to provide a jump start for researchers that are interested in learning Python, but have no previous experience coding or doing quantitative data analysis.
I believe that the core functions of a user researcher are to design research studies, interact with users, intepret those interactions, and communicate insights to stakeholders. However, many parts of the user research process are hands-on, time consuming, and not reproducible. These day-to-day issues are exacerbated as research scales; when researchers want to ask more people more questions, the execution of the research quickly gets unwieldy. This means that on some projects, researchers may spend the more time cleaning and managing data by hand than anything else.
If any of the following apply to you or your team, learning how to code could be very beneficial to your research:
- I need to (or want to) interact with users using popular tools like Qualtrics, dScout, or UserZoom.
- I need to (or want to) analyze user feedback from sources in our app, website, or product (e.g. intercept surveys).
- My company collects user data (e.g. logging interactions with features) that would be useful for my research.
- I need to (or want to) visualize data to communicate research findings to stakeholders.
- I have to handle, organize, or clean up data in Excel or Google Sheets.
- As I work with data, any mistakes I make could lead to more work or potentially misleading results.
- My company's user research team is growing.
- For each project I do, or my team does, there are at least some overlaps in our research process.
This is where Python and Jupyter Notebooks comes in. Python and Jupyter Notebooks are incredibly powerful tools that will improve your research processes and day-to-day life. My goal here is to help user researchers get started working with data in Python and Jupyter Notebooks.
This tutorial is designed for researchers. I was a researcher learning how to code just a few years ago. Here, I'll show you the tiny slice of Python that I found made the biggest difference in my research process.
I assume that you have little or no experience with programmming or quantitative data analysis. I remember how confusing coding concepts were when I was first learning; I do my best to keep the language, examples, and documentation accessible. I expect that if you wanted to clean, manipulate, describe, or visualize data that (currently) you would use Excel, Google Sheets, or other similar tools.
No! All of the tools that I will introduce to you in this tutorial are free and (mostly) open source.
- Download tools you'll need to program and familiarize yourself with how they work. ~30 minutes-1 hour
- Learn Python basics @ codeacademy.com. ~10-20 hours
- Python in Jupyter Notebooks - Here you'll learn how to navigate essential tools and resources that you'll need for your data analyses (Jupyter Notebooks, packages, documentation of packages, error messages etc.) ~30 minutes-1 hour
- Clean your data - Here you'll learn how to take messy raw data to a clean data table that is ready for interpretation and analysis. ~2-4 hours
- Understand you data - Here you'll learn how to understand the key features of your data (e.g. how many users are in your study? What was the average rating for your product?) and examine basic descriptive statistics. ~30 minutes-1 hour
- Visualize your data - Here you'll learn how to visualize your data; this a key step to understanding the features of your data, as well as communicating your findings in a compelling way to stakeholders. ~30 minutes-1 hour
Click here to go to the step 1 instructions.
As a researcher, I also actively research my own materials! If you have suggestions, questions, concerns, or sticking points, please file an issue on GitHub here or let me know @ [email protected].