Being a computer science major by itself can be hard enough. You have to figure out what classes to take with what professors, handle all sorts of assignments, learn new languages, etc. But being a woman in this male dominated field can bring a whole host of new challenges. Here are some things I wish I had known from the beginning.
- It’s very important to make connections with other women in the field
-
While this isn’t always the case, it is very likely that at some point you will be one of the only women in your class, group, or team. I highly recommend seeking out the women around you. This could be one of your peers, a professor, or if you’re in an internship, someone on your team. In my experience, women in computer science tend to be open to meeting and supporting other women in the field. In my previous internship, I had someone email me first and ask if I wanted her to be my mentor. If you’re nervous about connecting with someone, the first step is always just to reach out.
- Research is a huge part of the job
-
It’s possible that a good chunk of your first internship or job will involve things you don’t know how to do. This is very normal, especially because the computer science field is so large. These are great opportunities to learn how to be an effective researcher!
In my first internship, I knew how to do maybe 5% of the things they wanted me to do. The reason I was successful is because I was able to be resourceful and learn quickly. Websites like W3Schools, StackOverflow, GitHub, and Codecademy are great resources if you’re not sure where to start with a project. It’s impossible to know everything but being able to learn how to teach yourself and be resourceful is a huge asset as you move into the professional world.
- Practice, practice, practice
-
I will be the first to say that your classes are extremely important, but just going to class and doing the assignments is the bare minimum. Go over your notes. Re-do the practice problems, even if there isn’t an imminent quiz. If you’re looking for an internship or job, make sure to practice outside of class material in order to prepare you for any technical interview questions. There are several websites that allow you to practice and find solutions to common problems.
Codewars (https://www.codewars.com) is my favorite. You can level up as you solve problems that range in difficulty from returning a simple string to finding a position of a digital string inside an infinite digital string. For each problem you can choose your preferred language, and because of the interactive community you can ask for help if you need it and see lots of different solutions for the same problem.
HackerRank (https://www.hackerrank.com/dashboard) has tons of options to choose from, whether you want to practice specific language skills or want to work on prepping for an interview. You can also get certified in certain skills, like Python or databases.
Leetcode (https://leetcode.com/accounts/login/) is excellent for interview prep. The site has a daily challenge and also has a long list of practice problems ranging from easy to hard. Each problem is not only tagged by topic but also by companies who have asked that question in previous interviews.
- Keep track of your resources
-
I mentioned earlier that research is a huge part of being in the computer science field. Make sure you keep track of the resources you’ve used or that you think might be useful in the future. I have a massive bookmark library full of the resources I’ve found while working on projects which helps me stay organized while I work.
Another suggestion is to keep track of solutions to issues you frequently run into. I have a Google Doc called ‘Troubleshooting’ and every time I come across something I have trouble with or constantly forget how to do, I write it down. This doc has saved me so much time and frustration, and the more I code, the more I can add to it.
- Have a side project
-
Doing your own thing and having a project outside of class is one of the best things you can do for yourself as a computer science major. Is there something you’re interested in that didn’t get covered enough in class? Is there something you’re still a little confused about? Do you have an idea you want to try and build? All of these are great things to explore in a side project. Not only will this help you really practice important concepts and hone your coding skills, but also having past projects you’ve worked on will set you apart from other candidates as you hunt for internships or jobs. Probably 70% of the job interviews I’ve had have asked me if I have a side project or something I work on in my free time. Being able to explain to an interviewer what you did and how you did it will make you look like a much more competent developer.
- You DON’T really need to know what you’re doing
-
I know this sounds counterintuitive, but you don’t necessarily need to know what you’re doing. Computer science can be hard and very confusing. I spent almost three years of my college career thinking that everyone else knew how to do everything, and that I was somehow an inferior programmer since I didn’t immediately understand each concept. But my advisor told me that the only thing that separates the men and the women in the computer science department is confidence. The guys tend to speak up more in class and during group projects, sometimes bulldozing over the girls. When this happened to me, I thought that since I wasn’t fully confident in my answer and he was, that he was probably right, and we should do it his way. It took me a long time to figure out that there are a lot of people who don’t really know what they’re doing and that’s okay. Sometimes you just have to fake it till you make it (and you will make it, I promise).