“I’m thinking of switching to CS”: Advice on changing majors from Chemical Engineering to Computer Science @ UC Berkeley
I recently graduated from UC Berkeley with a double major in Chemical Engineering (ChemE) & Computer Science (CS). Over my 4 years as an undergraduate I gave and received a decent amount of advice to and from a decent number of people on whether or not to stay as a ChemE, switch to CS, or try to do both. I figured it could be beneficial to leave behind my experiences synthesized into succinct advice for anyone who might want it. Note that although this article focuses mainly on ChemE → CS at UC Berkeley, elements will be relevant for switching from other engineering fields (mechanical, biological, civil etc.), and also at other institutions. However, keep in mind that what I say is by no means absolute. Read everything with a grain of salt and keep in mind that no two personal situations are the same. Also at the time of writing this, I have a very shallow understanding of the new data science major, so only time will tell what its success will be. That being said, if you are reading this and considering making the switch, a lot of careful thought has gone into this, so hopefully at least parts of it will help in your decision making process at this critical conjuncture.
Before even considering the switch: Take CS61B (Data Structures) as soon as possible, if you really enjoy the class & do well in it (keeping in mind Berkeley’s GPA cutoff) then switching to CS should be a serious consideration. Note that taking 61A (Intro) beforehand is optional. It will probably make 61B a more enjoyable experience, but it is very possible to do well in 61B, declare the CS major, and get a software engineering job without ever taking 61A.
Now, before reading the rest of this article, I want you to think critically for yourself and write down the top 3 factors you are looking for in a career, ordered. Also try to give 3 reasons why you are dissatisfied with ChemE (or alternative current major) and are considering making a switch. Note that these can and probably should overlap. Before I give you my motivations to switch or not to switch, it’s critical that you understand your own motivations first. Having been through this exact experience, I understand how hard of a decision this is, given many of us have dedicated much of our life to date working hard to get here in the first place.
Once you’ve given it some thought, please read my thoughts below.
- If your primary motivation is maximizing your earning potential and/or attaining a comfortable lifestyle, if possible, drop ChemE and switch to CS today. Job growth is ~2–8% for Chem E and ~15–20% for CS. The average salary for a Berkeley CS graduate is~100k, while for Chem E it is ~70k. Granted this does not take into account cost of living, which brings me to my next point.
- If living in a major city such as San Francisco or New York, or staying in the Bay Area while working at a big company with job security is a high priority for you, a CS degree maximizes your chances of doing so. Be mindful that while ChemE jobs do exist in the Bay Area, the vast majority of high paying jobs at big companies are not.
- If you are an international student who hopes to stay in the US. Be aware that 95% of Chem E jobs will not sponsor you. Your best chances are with a CS degree or by going to grad school.
- If you know for sure you have no interest in graduate school or research. Berkeley is fundamentally a research school. ChemE here is very theoretical, research oriented and graduate student focused (although the new Dean Arnold is doing a great job of slowly changing that!), with little emphasis on practical industry experience. Although CS here is also research focused, it has many industry ties and we are located in the heart of Silicon Valley where jobs are very accessible. The EECS undergraduate department here is a highly optimized machine that consistently pushes students into top industry jobs.
Why NOT switch?
- If everyone else is doing it/someone is encouraging you to do so. If you know your passion is in science or you know there is something specific you want to do i.e. get into biotech, revolutionize the food industry, work in energy and batteries, Berkeley is full of sheep, don’t be one of them. Although you can get into all these fields with a CS degree, you will only ever be the CS guy for those companies. To start something on your own in these fields you need a “hard science” background.
- If it’s solely for the money. Software engineering in particular can be work that requires a lot of grinding, with the constant demand from you to continually get better and keep up to date with the most recent technologies, practices, languages etc. I have recently graduated software engineering friends at large tech companies who hate their jobs already, due to a lack of passion for their day-to-day tasks. Can you keep this up in the long run if you have no real passion for it?
- If you hate [insert name of chemical engineering class here]. There are classes and professors that are terrible in every major, including CS. Just because you are struggling in or are completely uninterested in a couple classes doesn’t mean this is not the right career path for you. If you are completely uninterested in all the ChemE classes, that’s a different situation.
- If you think CS is perfect. It’s not, CS has many problems too. Imposter syndrome, a decent number of miserable people in the major only there for the money, boring or unfulfilling work at large tech companies due to the gargantuan workforce size and many, many ethical concerns. Are you ok with your engineering work resulting in genocide in Myanmar, sexual assault, government surveillance for violating people’s privacy, unethical advertising, or developing products that optimize for wasting peoples time?
On Double Majoring (Simultaneous Degree): This is a bit of a controversial topic because while being a ChemE & CS double major sounds impressive, that’s about the extent to which its helpful. Do not do it. Those of us who are doing it or have tried to, are only doing so due to indecision — the inability to make a healthy but difficult choice. To break down why I believe the double major is suboptimal:
- There are very few cases in life if at all where this overlap of skill sets will be useful, and these require going to graduate school. Even then, you are better off doubling CS with chemistry, biology, physics or materials science.
- You will be worse at both CS and ChemE compared to if you choose to specialize in one. Trying to fit 2 majors in the space of 1 will inevitably mean when it comes to applying to jobs or grad schools you will always feel you could have been better or more prepared, purely because your time was split between 2 majors. Compared to those around you, your focus was split between two professions. You took less classes in a specific major, less research, less side projects, and spent less time networking with professionals. Most likely you were just drowning in problem sets.
- Most importantly, college is short, and both CS and ChemE are tough, stressful majors. Having time to try new things outside of classes, explore hobbies and spend time with your friends is truly invaluable. Enjoy your life today to the fullest and live with no regrets.
Now that you’ve considered switching factors, its time to make a decision. If you are looking into go into industry as a chemical engineer but want computational skills, see the section below on staying as a chemical engineer. If you want to make the jump to CS but are hesitant to do so, see my section below on how to make a smooth switch.
To those of you who choose to stay in ChemE: Make sure you are doing so for the right reasons. Don’t stay out of fear, be it fear of starting too late, fear of not being able to succeed in something new, or fear of losing attachments and connections to the College of Chemistry. This was definitely a factor in me deciding to stay but it probably shouldn’t have been. Now, if you are still interested in giving yourself a computational and data analytics skill set, which I think every modern engineer should, there are ways of doing that without doing a CS major or minor:
- Essential classes: CS61B & Data 100. Great classes, useful for any engineering major, take them as soon as possible. If you enjoyed those 2 classes but want more mathematical maturity, take classes from the Stats / IEOR departments, or take EECS 126, 127. If you want to look more into machine learning then take CS189.
- Although classes like CS188 (AI), CS70 (Discrete Math & Probability), CS61C (Computer Architecture) etc. sound cool and useful, as a chemical engineer they really won’t be applicable at all, think of taking them as taking a history class, interesting, maybe will be useful one day, but probably never directly to your job.
Also, if you were considering switching majors in the first place, consider your reasons for doing so — what about ChemE were you dissatisfied with? The way I view it, as a chemical engineer the general opportunities available to you are process engineering, graduate school, or a non-STEM career i.e. Management, Law, Consulting, Finance. Which one do you want to optimize for? Why? Will you be happy to do one or more of these options? If you are thinking of going into a more non-traditional ChemE route, think critically on if maybe neither CS nor ChemE are for you. It is true that consulting, finance etc. do hire from engineering fairly heavily. However, to do well in these fields requires a high GPA (which is difficult to get as a ChemE), a lot of time to practice case interviews, and networking — not just info sessions but meaningful conversations through cold emailing and coffee chatting (which is difficult to do when you are drowning in ChemE problem sets and research). ChemE is often advertised as “having a broad skill set with flexibility to do anything and everything!” In retrospect, this only holds true because we’ve learned how to grind difficult problems. If you hope to pursue a non-STEM career, and I understand how hard of a decision this will be, but perhaps a non-STEM, or lower workload major is more optimal.
To those of you who decide to switch to CS: If you are doing it for the right reasons, I congratulate your bravery. There are several things I recommend going forwards.
- Meet the GPA requirement whatever it may be right now, for me it was a 3.3 average across CS61B and CS70.
- Start building a CS network — friends to take classes with you and mentors you can ask for advice with classes, recruiting etc. Don’t abandon your old ChemE friends, but EECS is a big and scary place where people don’t really make friends in classes (of course there are exceptions). Try joining a club, fraternity or any kind of organization where you can meet friendly CS majors.
- Start building side projects; this is probably my favourite thing about CS, you have the power at your fingertips and a wealth of resources available to you: stackoverflow, YouTube, and friends! Think of something cool you want to do and reserve some time each week to build it.
- Recognize that even within CS there are a lot of different options, not just software engineering. There’s data science (which often requires graduate school), production engineering, and a variety of roles throughout the stack. Software engineers often move onto different roles based on their interests, such as Engineer Management or Product Management. A lot of Berkeley CS majors go on to start their own companies as well.
The CS major is broad and flexible. There are plenty of resources out there for you to take advantage of, i.e. HKN, UPE, EECS 101 Piazza page and many more. Take advantage of being a young person majoring in the most in-demand field while living right at the center of a really exciting tech bubble.
To the College of Chemistry: I first want to apologize if it sounds like I’m encouraging a mass migration of students out of the CoC — that’s not my intention. I’m just hoping to give advice to the many students like myself who came into Berkeley without really understanding what both chemical engineering and the landscape of opportunities in our modern society are really like. A couple changes that I think would be good for the College of Chemistry to stymie student discontent are:
- Increase average GPA awarded in core chemical engineering classes to match grades given across other top chemical engineering schools in the US, as well as other engineering departments here at Berkeley. This will allow us to be more competitive in the job market, particularly for those looking into getting non-traditional chemical engineering jobs who do not understand the rigor and grade deflation of UC Berkeley Chemical Engineering.
- I’m not sure how much of this comes from the College of Chemistry itself, but dissatisfaction stems from a failure to meet expectations. In Berkeley Chem E students case, I believe the root of this is the false advertising that “Chem E’s can do anything”. The school should put effort into its marketing materials to more properly explain what Chemical Engineering is really about, and do away with fluffy statements of grandeur.
- Start a data science / computation concentration, not just CBE 143. Let students take CS61B, Data 100, and IEOR & Stats classes to fill graduation requirements.
- Double down on efforts to provide improved, appealing career opportunities for students who want to go directly into industry, preferably with opportunities to stay in major cities or California.
- More alumni connections with people in “traditional” Chem E jobs i.e. process engineering and manufacturing. Our education is really theoretical and we lack connections. Even if these jobs exist, we are severely under prepared to land these jobs relative to graduates from other schools.
- Take advantage of the two big things the CoC has that the EECS department does not:
- Widespread supply of potential undergraduate research opportunities. This is really powerful, and really influential, even for students who initially have no interest in going to graduate school. Find ways to make getting research positions early on more accessible.
- My favourite aspect of the CoC that I think the EECS department and many other departments on campus are severely lacking, is a positive, community environment. Take advantage of this, and also be cognizant to keep building upon this to ensure it never disappears. In classes, work to promote group projects and the sharing of knowledge and resources. Build a CoC specific communal study space that opens late into the night. Drastically improve Junior Transfer community integration, and finally increase funding towards community building events and organizations such as Chem X, Fall Festival, AXE and AIChE.
Finally, I want to thank my friends, those who decided to switch / double / stay, who helped to peer review and add valuable contributions to this guide. If you the reader have any comments or feedback to provide, feel free to reach out to firstname.lastname@example.org!