Hi, I'm Carrie Cai!
What do you work on?
I am a computer science graduate student at MIT specializing in human-computer interfaces for language education and online learning. Depending on where I am in the research cycle, I am usually coding interactive systems and prototypes, brainstorming how to help people learn languages, or gathering and analyzing data.
Last year, I augmented Tetris with speech recognition so that learners can practice speaking foreign language vocabulary while they play Tetris. In order to rotate the block, the player has to first speak the correct word for the picture on the block. You can read more here and see a video demo below!
I am now exploring new ways to help people learn informally by making use of wait-time during a person’s otherwise busy day, such as at a bus stop, during commercial breaks, in the midst of stalled conversations, or during less interesting parts of a football game. The hope is that, by giving people bite-sized items to learn during time that they would ordinarily spend waiting anyway, learning can feel less time-consuming and more integrated into the rhythm of daily life.
How did you learn to program?
I didn’t learn to code until age 23, well after college. I had no interest in computers, and had always been interested in human behavior, so in college I majored in an interdisciplinary mix of psychology, linguistics, and education. In my first job out of college working in sales and HR, I became motivated to learn programming when I found myself frequently coming up with ideas, but often dependent on engineers or other teams to implement features or fix bugs for me. I eventually went back to school and spent a year or so taking foundational computer science courses alongside college undergrads. Within the first few weeks, I got hooked learning about recursion, and was surprised to discover how similar programming was to solving mini-brain teasers. Even though I wasn’t enrolled in a degree program, it turns out that simply being on a university campus can open many doors! Not only did I join a research project on dialogue systems for childhood language learning, but I also got to teach programming to other students. I eventually applied to PhD programs in computer science and was thrilled to be admitted given my limited background.
Looking back on my first day of CS courses at age 23, I remember sitting in a room full of college freshmen and feeling completely daunted by the sight of a Unix terminal. I sometimes questioned whether I was in over my head for switching into CS. Fortunately, I had the support from peers who hacked through projects and problem sets with me, mentors who took a risk on me with timely opportunities, and family who believed I could succeed even when I changed my career direction mid-flight.
What’s most gratifying about learning to program is that I can still renew my earlier interests in psychology and education, but now I can also enact these ideas through code, evaluate how they impact human behavior, and share them with others!
What do you do when you're not programming?
I love dancing of all forms, especially in fusion. I also enjoy playing piano improvisation for fun. As the Arts Chair in my graduate dorm this year, I’ve organized a number of events for students to learn different forms of art informally, from theatrical improvisation to swing dance and painting. When I’m not programming or working on research, I’m usually dancing or taking a musical improv break.
What’s your one piece of advice for new programmers?
It’s never too late to learn to code! But know that coding is not necessarily the end goal, but rather the means.