Looking Back: 5 Tips for Surviving the CS Major
By Daniela Gonzalez
6 min readDec 1, 2018
As a current senior looking back on my past 3+ years at Stanford, I’ve crafted a list of 5 tips for “surviving” the Computer Science major, especially as a woman, ethnic/racial minority, or other underrepresented person in the field. It should be noted that these tips can easily apply to other areas of study as well — however, they were inspired by my personal experience as a Hispanic woman majoring in CS.
- Own your experience. In the midst of instructions from professors and administrators, pressure (be it direct or indirect) from family and friends, general stereotypes, and unsolicited advice (such as that featured in this blog post), it can be easy to forget that your experience as a CS major — and as a college student more generally — is yours and yours only. I will illustrate what I mean by this with an example. Something I have heard many Stanford students and staff members say is that it is nearly impossible to study abroad as a CS major. Owning your experience means taking statements like this one with a grain of salt. That is to say that if studying abroad and pursuing computer science are both priorities for you, then it is possible to do them both. You simply have to do your research, plan (see tip #2), and commit. Ownership also extends far beyond academic decisions. Say that you want to be an engineer who simultaneously cares about style and enjoys wearing dresses (*gasp* How unusual!). Say that you’d rather spend your summer doing public service, exploring another country, or writing a novel than interning at a tech company. Say you enjoy coding but have little to no interest in attending a hackathon. Your experience is yours, and because of that you are by no means obligated to conform to the expectations or erroneous limitations that seem to exist in this field. If you want to do something, take ownership, and tune out the haters.
- Plan, but prepare for your plan to change. Pursuing a unit-heavy major like CS requires having a plan, especially if you’re interested in making time and space for other activities and interests during college. When I first came to Stanford, I knew I was interested in studying CS, but I also wanted to pursue an English major, take a few Spanish literature classes, study abroad (see tip #1), write for a campus publication, and join student organizations such as WiCS. Creating a four-year plan from the very beginning was a crucial step in making this all of this possible. At the same time, it’s important to remember that plans need not be set in stone — they can change, both due to external factors and your own decisions, at any moment! Keeping this in mind can make planning less daunting and also helps prevent you from limiting yourself as a result of making a plan. It’s also perfectly okay for your plan to change drastically; maybe, two years into college, you’ll realize that while coding is fun, you’d much rather be studying history. Even in these cases, having a plan in place does not hurt. My four-year plan has changed countless times, both due to shifts in my interests and changes in course offerings, but having it on hand and updating it regularly has always helped assuage my concerns about whether or not I would be able to complete my studies on time. If you’re not sure how to make a four-year plan, advisors, upperclassmen, and the major requirements webpage are all great resources.
- Don’t be afraid to say “yes,” or to say “no.” Don’t let fear get in the way of what could be a pivotal opportunity. Whether you’re afraid of technical interviews, accepting a leadership role in a student organization, or applying for a job that you might not be totally qualified for, push yourself outside of your comfort zone whenever possible. It’s cliché to say it, but that’s where the learning happens! I’ve heard my incredible, inspiring upperclassman friends say the same thing time and time again: their most rewarding experiences came from times when they were afraid. I’ve faced various situations like this throughout my academic career, but a recent example is that I opted to take a class that is known for being one of Stanford’s most challenging: Machine Learning. This class has a reputation for being extremely math-heavy, and since I don’t have an extensive math background, I worried about my ability to succeed. At the same time, taking this course was important to me because I’m emphasizing in Artificial Intelligence and hoping to work in an ML role after graduating. Although I still have two weeks left in the class and have definitely struggled, it has been a great learning experience, and I don’t regret enrolling! Alternatively, don’t be afraid to say no when something doesn’t feel right. It’s okay to turn down an opportunity, no matter how good it looks on paper, if it isn’t particularly important or exciting to you. When you’re feeling overloaded and need to cut down, re-examine your commitments and remember that (as per tip #1), you have ownership over your college experience.
- Never underestimate the power of an email. There are plenty of traditional pathways to opportunities in the tech field, but you should never underestimate the power of an email. Email is a simple, somewhat old-fashioned, sometimes scary, and surprisingly effective way to get your foot in the door. I got my first TA job (for a class that hadn’t previously hired many undergraduate TAs) by emailing the instructor and expressing interest. I also got my current job — as a software engineering-focused Research Assistant for the economics department — by emailing a professor whose work I’d admired for a long time and asking if his team could use my help. Before I even got to Stanford, emailing a current student who had started a program offering coding classes to East Palo Alto residents resulted in one of my most enriching summer experiences to date. As an underrepresented person in a field like CS, it can be intimidating to put yourself out there and reach out to people who may seem more experienced/important, but this strategy is relatively low-risk and holds a lot of potential.
- Stand up for yourself, and know your worth! There may be moments throughout your time as a CS major in which you feel that something is not right, and in these cases it is crucial to stand up for yourself! Whether that means asking for a regrade on an exam, expressing your concerns at the CS department town hall, negotiating the terms of a job offer, or confronting peers over problematic behavior, it is empowering to use your voice to push for improvement. In order to do this, it is important to know your worth. Remember that, even as a CS major, your worth extends far beyond your technical skills and also includes skills related to teamwork, creativity, communication, and insight, among many others. Even if you’ve struggled in some classes or don’t have the same level of experience as other students, you deserve support, you deserve the chance to succeed, and you deserve to have your voice heard. As in tip #3, don’t let fear get in the way of speaking your mind. Throughout my time at Stanford, I’ve gradually become more comfortable doing this, and it has helped me learn how to stand up for myself in the workforce as well. During my sophomore year, I attended a department town hall to express concerns over the unreasonable, 30+ hour weekly time commitment of a core class. During my junior year, I confronted a number of fellow students (admittedly, over Piazza, but not anonymously!) for their toxic and discouraging responses to posted questions. Later that year, two friends and I teamed up to explore the lack of TA diversity at Stanford and wrote a paper containing recommendations for improvement. Even when these actions have little immediate effects, using my voice has been central to building confidence and overcoming the challenges that come with being a woman in CS.