Thursday, April 3, 2014

The Computer Science Balance

When I first showed up at Penn Engineering as a Computer Science major, I was under the impression that I would have an edge over other students because I had taken the AP class in high school. None of the people I knew from my hometown had the first idea about what being a computer scientist really entailed or what exactly I was getting up to in my small class of ten back then. I thought this trend would carry over into college, and that I would spend the next four years again having to explain to people that I wasn’t building computers, I was programming them. 

 At first, I felt entirely competent in all my computer science abilities and breezed through first semester freshmen year. However, as the year moved on, I became increasingly aware of other people in my classes beginning to build their own websites or forming a startup or programming their microwave for fun. It was at this point that I started panicking. I had not the faintest idea how the internet and computers really worked; people would say words like “proxy” and “caching” and I would cringe. I realized that while my classes were great for learning high-level algorithms and best-practice java syntax, I had no idea how to transfer this knowledge from my computer to a working application. 

PennApps this year was the first time I had any real exposure to the applications of computer science beyond what I had learned in the classroom. My teammates all knew more about web development than I did, and pointed me to websites that would help me learn HTML, CSS, JavaScript, etc. for the web app that we wanted to make. At first, I was overwhelmed with how much there was to learn, and felt like it was unfair that I had to learn all this outside of class in addition to having homework to do. I did learn, however, and this made my PennApps experience significantly more enjoyable—I felt like I was actually contributing something to our project. 

After PennApps, my workload got harder and I stopped trying to teach myself other web dev tools. My classmates continued to learn more, and I was frustrated with this fact. I was in computer science classes all day, so outside of class I wanted to be participating in clubs and activities that didn’t have anything to do with it. Instead, I felt the pressure to dedicate all my time to learning more web development instead of taking the break that I needed. As I started applying for jobs and realizing that most of them wanted me to have the significant experience that my classmates did, I grew stressed and more frustrated. 

I did what I always do when I’m stressed about school: call my parents. My dad suggested doing five minutes of outside learning a day instead of pressuring myself to learn PHP in a weekend. This turned out to be exactly the advice I needed to hear; I was so overwhelmed by everything I had yet to learn that I prevented myself from starting to learn anything at all. 

It turns out that you can remember things better when you practice them every day rather than cramming them all into a weekend (who knew?). This is by far the best way I’ve been able to learn the things I need to know for a sophomore internship, and would be the advice I’d give anyone just starting computer science at Penn. Maintaining a balance between schoolwork and non-schoolwork should be everyone’s top priority, and only after that should you be worried about coming up with the next billion-dollar startup. 

Allegra is a sophomore in CIS.  Questions for Allegra?  contact her at

No comments:

Post a Comment