I didn’t always enjoy programming. My first exposure to programming was in AP Computer Science during my junior year in high school and I didn’t enjoy it. I found it extremely difficult to pick up and I struggled with the most basic concepts throughout the year. We programmed in Java and learned simple OOP principles and also some basic data structures. Despite a great teacher, I never fully understood the concepts we learned and did not perform as well as I would have liked. Thus when applying to college, I temporarily dropped my pursuit in studying computer science and explored some other majors when I entered my first year in college. However, I eventually lost interest in those majors and decided to give computer science another try.

I am currently entering my fourth year in my undergraduate studies here at UCSD pursuing a B.S. in Computer Science. Compared to before, I have now explored much deeper into the field of computer science and have a greater understanding of what this field and programming entails. I have found my experiences highly enlightening. I find studying computer science and learning to program to be quite different from the experiences you gain from any studying any other major (maybe aside from other engineering majors). It’s different in a sense that when you study computer science, you not only learn the subject matter, but you also learn a unique style of thinking. Personally, I find it rare to experience these thought processes if you have never programmed before. Programming is all about problem solving. Given a problem, can you come up with a creative way to solve it? Not only provide a simple solution, but solve it in the most efficient way? Its interesting to see that for one problem, there can be hundreds of ways to solve it. Some methods can produce better results than others, while others will produce the same results despite their different approaches. Programming turns out to be a very methodical thought process.

“Okay, this is my goal. In order to achieve it, I need to accomplish step 1. Then I proceed to step 2. Then step 3, and so on.”

Most of our problem solving done in daily life would be calculated so fast or result from past experience and instinct that we rarely break it down to simple steps to follow. This is one of the main reasons why I found programming enjoyable; It’s a unique and fun way of problem solving. When I accomplish my goal, and I see the small detailed, step-by-step instructions of how the process came to be, I am left feeling quite satisfied.

Most people will only think of programming when they think of computer science. Yes I agree that programming is a large aspect of computer science, but computer science also consists of numerous other aspects. One of the main aspects that I really enjoy is the opportunity to design and create. Developing new applications allow me to utilize my creativity and design skills. What is this application used for? How would it be used? What methods should I use to implement it? Every new project I pursue can be completely different from the previous ones. It always entails new designs, ideas and innovations. I may use my past knowledge or experience to start something, but the whole process and conclusion will be completely different. Programming may be the main method to build the product, but the design process is what starts and guides the entire project.

To me, these are the key ideas behind computer science and this is why I love it. As a kid, I have always loved to design and create things, whether it be drawing pictures or building things with my Legos. Now as a computer science major, I am able to innovate new ideas, develop new applications, and design new products. I love it. I am constantly pondering new ideas to pursue, simply for fun and to improve my overall knowledge and skills. I have just obtained a new internship and am just beginning to set foot in this industry and am already loving it.