Editor's Note: This post is part of a series produced by HuffPost's Girls In STEM Mentorship Program. Join the community as we discuss issues affecting women in science, technology, engineering and math.
Transitioning into my sophomore year, this summer has given me a lot of time to think and reflect upon my experiences towards majoring in Computer Science. I feel that it was extremely different from the way it's commonly portrayed in the media, or even of how I expected it to be. So here are the six realities of being a computer science major:
1. Chances are, it will be peer/family driven. Personally, my brother was the one who encouraged me to take a computer science class. I had tried to learn how to code before, but was so unsuccessful that I couldn't even set up the development environment. Even though he dropped out of his intro CS class, he told me that I could do it and that the field needed more women engineers like me. Through his faith in me, I took a web development course and jumped on the intro CS track at Stanford, and have stuck on the CS train ever since.
2. You will feel like God. The number one thing that attracts me to a CS major is the fact that I a) build stuff that stays around forever (who said that the internet being written in ink is a bad deal?) b) have it be accessible to so many people and c) it's like teaching a really stupid baby to do something. Mehran Sahami, a really famous and one of my awesome CS professors, told us on the first day of class that computers are really dumb, but are really good at following instructions. Almost too good, to the point they do everything to the letter. If you can talk to the computer in it's language, and make it do what you want it to do, then you're golden.
3. Suddenly, everything needs to be decomposed. My problem solving skills have become immensely better after becoming a computer science major. In fact, now everything I think of as a problem. Running late this morning? I break the problem down: what is going to take the most time, and how can I effectively cut corners to avoid wasting time? My parents often rely on me to fix anything technologically related (television, phones, you name it). I approach every issue as a software problem: what could be wrong? Look for the symptoms of the problem, see where it shows up. Understand the system, what could be causing it. And then usually, I can get the solution.
4. It's easy to give up. It's easy to give up and say, oh, who cares, someone else will code it for me. Another one of my awesome CS Professors, Eric Roberts, showed us on the first day of my second introductory class that even if Stanford graduated all of its students as CS majors, and the Valley hired all of them, they'd still need more people to fill the jobs. It's not surprising that software is where the jobs are, and even working for eBay, talent is one thing that the company is aggressively looking for. You can give up, but what about what could be? Maybe you could code the next app