This is my own journey on getting a CS degree and why I think you should or shouldn't major in Computer Science.
If you google right now, what are the best majors to study in college, it's a guarantee that Computer Science (CS) will be on almost every list. There are so many statistics about how much CS graduates make. At some big companies the likes of FAANG (Facebook, Amazon, Apple, Netflix, Google), fresh CS graduates can easily command six figures salaries, including benefits and cool perks. The total compensation in these companies is hardly less than six figures ($100,000)!
Computer Science is considered one of the top majors as far as ROI (Return on Investment) is concerned. Just year one out of school and into the workforce a CS grad will be making higher compared to grads from other majors. Even when someone isn't lucky enough to land one of the positions in big tech companies (FAANG), still they can easily make 55k fresh from school. It should also be noted that the writer of this article is based in the US, so the figures here might not be so representative of other regions in the world.
So looking at the job prospects and earning potential, you can see why there is such a flux of students wanting to do CS in college.
And here is the question, should you major in Computer Science?
This post is about my journey on deciding to major in CS and why I would advise someone to major or not to major in CS.
December 2014, I got the news that I will be going to a small college in the Midwest of the United States for my college education. I was 23 by the time and at that point in my life, I had made some big life mistakes already (like quitting high school to become a professional athlete). As you might have guessed that didn't end well. 2 years and a half taught me a lot about life, dreams, aspirations. and most importantly it taught me about family...that will be a blog post for some other time. But there I was reading the email that in about 8 months I would be in school again for my bachelor's. Before quitting high school, I used to say to myself... "if I go to college I would study Psychology and Philosophy"...because the two fields really dug my intellectual curiosity. But when people asked me what would I do with Psychology or Philosophy...I didn't know what to tell them...I only knew I wanted to learn more about the two fields. I wasn't interested in a professional career in any of the two fields...just wanted to study them. Did that ever happen to you?
So I didn't want to make the same mistakes I did during high school years...I intentionally made a choice of choosing a major field of study that will be lucrative and pretty much guarantee me success. There I was googling the best majors to study in college.
Here is a short snippet of that research:
Armored with that research plus a lot of other information I got from friends who were already studying CS and those who graduated with good jobs, I narrowed to Computer Science.
Fall 2015, my first year in college:
Sophomore year, Fall 2016
By the end of Spring semester 2017, I had completed 22 credits of the 46 credits required by the CS program at my school.
In the fall of 2017, I didn't return back to campus...I had an opportunity to study abroad in London where for the whole semester I didn't take any Computer Science class. The school offered just general classes like Art History, Psychology, Religion, etc. In short, the study abroad program was a mixture of travel experience and study.
Junior Year, 2018
Senior Year, 2019
That was the order in which I took most of my CS classes, I dropped a few classes during my time and had to take them in the semesters that followed. But for easy of following through I just listed in the order of the first time I took them. In addition, I took one elective from another school which was CS 428 Network Programming, and also I took EN 300C, an Advanced Writing class from another department in my school which substituted for my Technical Writing class in my CS major. And one more Math class was required to satisfy the requirements for the CS major.
So in a nutshell, that was my major. 4.5 or 5 years later, 46 CS credits bagged and I graduated with a bachelor's in Computer Science.
The reason I listed all those classes above is to give you kinda a full picture of what a CS degree is about. When you just hear the words 'Computer Science', you might not really know what it's about...So the subjects above will at least shade some light. However, if you really wanna dive deep, I would suggest not just to look at the subjects offered in the program BUT make sure you read the syllabus too if you're able to get one. Syllabi will list topic by topic and week by week of exactly what the specific CS subjects will cover, there will be no surprises!
Now comes the meat of my blog post...Should you major in Computer Science?
Taking the money component out - we already know that a CS major can result in higher earning potential overall. What other reasons are there for you to major in Computer Science? Are you even interested in the field itself?
Most people when they hear about the Tech fields or Silicon Valley or working at Google or Microsoft, they mostly think about Computers and they might think about Computer Science as a way to get there, though they might not really know much about the Computer Science field itself.
I don't blame them, I was in the same situation...Initially I thought Computer Science will be learning about how to create these beautiful websites that I see on the Internet. Or maybe by studying Computer Science I will be able to make the next Facebook, Instagram and so forth. That was what initially clouded my mind.
Some of you might be surprised to know that a career in tech especially the one involving Computer Science or Programming for that matter...might not necessarily constitute you making products from scratch. There will be a lot of trying to understand, fix and maintain past code base. It might not be as alluring as some of the TV shows might make you believe. The technologies you work with might not be the ones of your interest. For example, I have never liked C# as a programming language or .NET framework as a web dev platform but there I was at my first job...using Windows, Visual Studio and .NET framework. You can imagine how excited I was.
As someone who has traveled this journey though not for so long, I can't emphasize enough on the importance of knowing exactly what you're getting yourself into. After all, college is a big investment both in terms of money and time, so pick both your majors and careers carefully. One way of getting a good feel for what you're getting yourself into, either it's Computer Science or any other field is to make sure you get some internships while in college. Get an internship in something you're either majoring in or considering a career in. That will give you real-world experience of what your profession will look like once you graduate. It will give you time to think about the work culture, the work hours, the pressure, the work itself, etc. ...I had a friend in college who after doing an internship for about 4 months or so...he found out a career in Computer Science or programming wasn't for him. And he went ahead and changed his major from Computer Science to Economics, on the way he secured a minor in Computer Science.
One of the things that will make you like your job is by first enjoying studying the field that you're in. Do you enjoy the field you're majoring in?
Look at the classes I listed above, do they interest you in any way? If they do then congrats! A CS program might be a good fit. But don't just end there like I said in the beginning...I would like you to go and check the syllabus for all those classes and see what you will study week in and week out.
So what am I trying to say here..? If the reason you decided to get into a CS program is because you love to design and develop websites...then you might be in the wrong place...a CS class in Computational modeling will be pretty much a bore to you. You would appreciate that time instead if you were learning first hand the tools and languages you will be working with in the real world.
Walk this process backward...ask yourself...who do you want to become...a web developer? a software engineer? a UI/UX engineer? a database administrator..? a network engineer? Then once you know whom you want to become...look for resources that will allow you to do that...these might involve a major in college, maybe a minor, books, online courses, tools used in the industry, etc.
If you pick a major, don't be blinded by a bracket name like a 'Computer Science'. Understand exactly what that entails...go and look at the syllabus of each course you will take in that major. Don't just assume a CS major will grant you those mobile or web development skills etc. The job market can be very specific...They might look for a Java developer, a PHP developer, a Python developer, an iOS developer etc. While knowledge of one language might help you easily pick up another one...it's a good thing if you can focus on what you're interested in early on.
...Being a mobile developer is different from being a web developer...So if you're interested in mobile development...look at programs tailored specifically to that. A CS degree might be just too general...Believe me, you might not learn about Android or iOS development in a CS degree...If you're lucky, your school might offer just one elective for mobile development course. So why waste so much time studying stuff that you're not even interested in.
Back to my journey...I was and still am interested in web design and web development...plus UI and UX...Those are things that are dear to my heart...I can spend nights just reading random articles on that stuff...because I enjoy them...I love them. I am kinda (actually a lot!) sad that the CS program didn't give me that joy...I just persevered and survived the program...there were very few classes I liked. Most of the classes just wasted my time because I knew was not going to apply those skills anywhere...I didn't want to be a software engineer or a computer scientist...I enjoyed web development.
So again if your goal is to get into the tech industry...please do your research, ask questions, and know exactly what you're interested in and go for it. The tech field is huge...You might want to be a system administrator...do you really need a CS degree for that? You might want to be a database administrator, product designer, UX engineer, data analyst, etc... If you decide to go to college...get your hands on your school catalog/bulletin and check the major you're interested in, courses offered and the exact syllabus that constitutes topic by topic of what you will be studying...it will give you an idea of what you're getting yourself into.
Some schools are doing this so much better now...For example, understanding how the tech field can be so diverse Purdue University through their Polytechnic School offers majors in these different fields, Web Programming and Design, UX Design, Data Visualization, Cyber Security, Game Development and Design...etc. This is how things are out to be... Purdue is doing it right...In addition to the fields mentioned they also have Computer Science as well as Data Science under their College of Science and Computer Engineering under the College of Engineering. They even have several tracks like Software Engineering in their CS program. It's pretty hard to go wrong when you have all those options that clearly show you where your profession will lead. Unfortunately for a lot of other schools in the US, Computer Science is the only closest major for someone who is interested in Tech can pursue. And for me that was also the case!
I would really recommend for all those interested in Tech to check out Purdue University (Just to be clear, am not paid for this!) and their different tech programs that do pay attention to the integrity of different professions. Don't just settle for CS while your interests are in other tech professions.
I don't want to go into too many tangents...but I think I have explained my point...That...if your interests...are in the following subjects...(Computer Theory, Computational modeling, Algorithms, Data Structures, etc.) then a CS degree might be for you. But if you google those things and are not excited at all...then don't major in a CS degree because it will be torture.
Again it's also important to note that Computer Science is not the only Tech degree out there...there are a lot of others. Just to mention a few you can major in Computer Engineering or even Software engineering which won't be so far from CS, you can major in Information Technology (IT), Data Science, Information Systems, Network Engineering, etc. And if your interests are just to work in Tech you should also look into product design, project management, UI (User Interface) & UX (User Experience) design, Web Design, Web Development, etc. The tech field is huge...I have not even mentioned about Artificial Intelligence, Machine Learning, Cyber Security, Systems, Databases, etc.
Last but not least, the aim of this article was not to give you one answer...of whether you should major or not major in CS. I have raised a few issues and hopefully, they have made you think. Armed with this information plus your own research you will make an informed decision.
Everything around you that you call Life...was made up by people that were no smarter than you