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
5. Experimentation is key. Learning CS involves experimentation. You have to mess around with the code, really get into it. Sometimes it means that you'll break something that was already working. But the great thing is that in return, you get to learn something new, sometimes something that isn't even documented or fixed. This definitely happens to me at work everyday. Sometimes I feel like taking the lazy approach and just going back to the old ways of doing things, but trust me, it's definitely a lot better to just play around with it.
6. You'll doubt it everyday. Being a CS major is hard, which is probably why so many people don't do it. You'll doubt everyday whether you're meant for it, and will want to give up. You'll see kids doing it since they were two years old and will think, "Damn, why do I even bother trying?" You'll fail programming interviews/exams, and will ponder this question (personal experience here). The truth is, no one talks about how hard it is because they don't want to think about it. Even now, a year later, I'm still doubting my decision to major in CS or software engineering. I had these doubts the day I set foot in my first, second, and third CS class to every exam I took to the first day of my internship to days when I don't push code to Github. But the truth is, it's OK to doubt yourself, as long as it doesn't hold you back. You don't think you're the best? Of course you're not! Don't be afraid of it, you won't get anywhere unless you try.
So if you're someone who's contemplating computer science, or someone who's afraid: stop, and just do it. Forget the boys who tell you that you can't do it, forget all the haters who are jealous of your zeal. Code. If it's broken, if you get a segmentation fault or Java exception, go fix it. Chances are if you just assume that you're not meant for it, you'll never be able to feel the thrill of getting something to work (even if it is just "Hello World"), all because you're stopping you.
Sometimes, the only one stopping you is you, and the answer is to just let go.