At a recent MIT App Inventor Workshop for TechnovationMA and TechnovationRI teams, Master of Engineering student, Kelsey Chan, shared how she came to love computer programming. Like many students, especially young women, Kelsey was initially turned off by how programming was taught (hint: it was boring and not obviously applicable to solving real problems). Once she saw the power of coding and its potential uses in impacting lives, she changed her mind. Read about her journey below.
Early exposure to coding—not so exciting
The summer after my freshman year in high school, I took an online course that taught C and Java. To be honest, I didn’t particularly enjoy the course because it started off mostly covering syntax and seemed to focus mainly on how to write programs that would compile. My most vivid memory from this class was using for loops to print asterisks (*) in different patterns. As a high schooler, I didn’t see much value in being able to print patterns of stars, so this turned me off to computer science for a while.
When I was a senior in high school, I needed to take a “career class” to fulfill a graduation requirement, so I decided to take AP Computer Science. I enjoyed this class much more than the online class I had taken because (1) I had a lab partner, who eventually became a close friend of mine, and (2) we went beyond the basics of programming syntax and learned various sorting algorithms among other things. After taking this class, I had a more neutral attitude toward computer science. I thought it was cool, but I didn’t see myself pursuing a career in computer science.
When I was applying for college, I thought I wanted to study biomedical engineering, so that’s what I put down for all my college applications. It wasn’t until I attended my first hackathon (International Development Hackathon, or IDHack for short) that I started to become interested in computer science. The hackathon was held at Tufts, and I remember sitting in one of the lecture halls just watching a team of college students build a web application for a non-profit organization overnight. In hindsight, maybe it was a bit creepy, but I was so in awe of how well they worked together even though they didn’t know each other before the hackathon. Over the course of 24 hours, they were able to create something meaningful that an NGO was actually going to use. This was the moment when I started to see programming as a superpower that enabled people to build solutions to complex problems—solutions that can make a significant impact on the world.
Combining coding with other interests
As a computer science student at MIT concentrating in computer systems, I have taken classes that involve applying my programming skills to different subfields within computer science, including computer security and distributed systems.
I am also interested in the field of education (I’ve wanted to be a teacher since I was in kindergarten), so I’ve found various ways to integrate both of these interests. I spent a semester on the Scratch team analyzing the terabytes of data that Scratchers have generated throughout the years. I also spent a summer as a software engineering intern at Khan Academy doing some infrastructure work, as well as helping to make the new discussions interface more accessible to people of all abilities. My current stint is as a researcher on the MIT App Inventor team, where my latest projects include making new components that allow users to integrate machine learning into their mobile apps and redesigning the project gallery.
Throughout my four years as an undergraduate student, I was heavily involved with CodeIt, a program that teaches middle school girls and non-binary students how to code using Scratch and App Inventor. I developed the curriculum for CodeIt, and I was also the lead instructor for five semesters. My favorite part about teaching for CodeIt was using programming as a tool to empower my students. I was really proud of the classroom culture we defined, which valued being curious, embracing challenges, and collaborating with others.
I also spent a month as a computer science instructor for the Middle East Entrepreneurs of Tomorrow, a bi-national program that brings together Palestinian and Israeli high school students to learn computer science and entrepreneurship. By the end of the 3-year program, the students will have created their own bi-national startups that benefit both the Israeli and Palestinian communities.
After graduation, I will be joining a startup called Coda. Coda is a document platform that allows users to create documents that are as powerful as apps. I really like the idea of empowering people to build applications that suit their needs even if they don’t know how to program.
At some point down the road, I plan on becoming a middle or high school computer science teacher.
Advice to students
A co-worker of mine once told me that there are two main reasons why people choose to pursue computer science. Some people are drawn to the field because they enjoy the type of problem solving that computer science entails, and other people are drawn to it because it enables them to build tools and products that people can use. Some introductory computer science courses are tailored more toward people who fall in the first category, so if that is a turnoff for you, I encourage you to remember that programming is applicable to almost every other field out there. It’s perfectly fine if you don’t major in computer science, but I believe it’s worth taking at least one or two programming classes so that you have some programming knowledge in your toolkit. You’ll learn a lot through the process of learning how to code, and I promise you won’t regret it.