College Essay

04/09/2020

Prompt: The lessons we take from obstacles we encounter can be fundamental to later success. Recount a time when you faced a challenge, setback, or failure. How did it affect you, and what did you learn from the experience?

As I went through the challenges of computer programming, I learned to enjoy the tasks involved at a deeper level, and this, surprisingly, has helped me enjoy other subjects more. Now, I consider myself as someone who can genuinely say that programming and STEM are just as fun as English, music, and history. My journey as a programmer, which began when I was eight years old, has given me tools to overcome plateaus and stay optimistic throughout any process that I undertake.

One summer day in high school, I joined a project called YACS. A big team of college students at RPI welcomed me to the group and assigned me some “easy” tasks. I made very little progress despite spending many hours reviewing their code library and working on issues and features.

Noticing the surprising jump in difficulty between my previous projects - which came together reasonably quickly - and this project, I felt like I had just hit a big plateau. Through this struggle, my first principle was to remain optimistic. After all, I had many more years to learn programming, so time was on my side. My past projects taught me how to type quickly, write code that compiles correctly, and use design patterns, but I was still stuck. I thought to myself: perhaps I should focus less on those specific skills and make it my next goal to move towards general skills such as analyzing a complex problem, memorizing hundreds of terms, and making many iterations of a prototype. Throughout the next couple years, I kept this goal in mind.

In school, I worked more methodically and in more detail, because I knew that coursework — the hard work of a long English project and the difficult memorization in BC Calculus and AP Chemistry — provided opportunities to build general skills. I noticed the strategies the teachers used to help us develop general skills and changed my programming workflow accordingly. I distributed my time differently in programming projects, allocating more days to analyze each part of a complex problem. I also developed mind maps and visual images to memorize concepts.

Wanting to improve the creative prototyping, I changed my mindset of programming as more of a design art and less of a technical exercise. I brainstormed features in great excess just for fun and experimented with different ways of implementing those features. It reminded me of my first days in a programming summer camp as an eightyear-old, where even though I could only code simple projects, I was still able to invent features upon features to add to the coded video games, immersing myself in many hours of brainstorming.

Training general skills and changing my mindset helped me as a lead programmer for MealMatch, a non-profit startup that matches restaurant meal donations to people in need in the local community. The biggest recent challenge was that I only had two weeks to learn the Flutter framework for developing a mobile app. This time, I learned the Flutter framework much more effectively than when I learned the Angular framework for YACS two years earlier. I was able to keep track of a 4000 line codebase in my head. We submitted the app to the 2020 Congressional App Challenge. In the next few weeks, we will be releasing it to the community.

I originally viewed programming as merely learning new languages, reading technical materials, working on projects and writing code. My experiences have opened my eyes to new dimensions for exploring the world. I find joy in developing strategies for overcoming obstacles and plateaus, even when it takes significant investigation and time.