So I will be attending Penn State in the fall as a freshman as a CS major. I really enjoy math and coding, and I dedicate a good amount of free time to writing code and learning new programming languages. I was surprised however at the sheer number of people that I have heard are majoring in CS. With so many graduates in my major, I worry that the market will be oversaturated and my value decrease. Also, I worry about outsourcing. I realize this is an issue for all STEM jobs, but it seems very present in CS. Further, I hear that while fresh graduates can get jobs, they become less valuable the longer they are out of school because they aren’t exposed to the newest technologies.
I guess my main question is: is majoring in CS a good investment that will continue to pay me back for the rest of my career, or would it be a safer bet to choose a more “established” (and I use this term relatively) field like engineering or statistics/actuarial studies (my next choices).
Thanks!
@sphericon I have the impression that CS is the major where the distribution of jobs and salaries is very wide.
The downside: Last time I went to get my mac repaired, the person helping me said the had a CS major. A recent CS grad from UIUC that we know ended up working at a call center. I also hear that some CS majors are struggling to get any job.
The upside: The students getting jobs at Google, Apple, Facebook, Amazon, Microsoft, and similar companies are getting some really amazing offers.
I think it is a great major if you want to work at it and stand out. Just be aware that it is important to go the extra mile to develop the specific skills that employers are looking for.
A lot of people believe that certain majors, like CS, are a ticket to a good high-paying job and/or insulation from underemployment. They’re not. Computer science majors can end up underemployed in retail or service jobs. They are far less likely to find themselves there than, say, an art history or philosophy major - but it’s not impossible.
However, a CS major who has thoughtfully prepared themselves for the workforce early on is far less likely to find themselves underemployed (just like an art history or philosophy major who has done the same). You need to learn useful skills, and you need to do internships or find other ways to get experience in college. Simply knowing how to program and having a BA in hand isn’t enough - there are millions of other kids with the same credentials. You have to do some work to set yourself apart and make yourself appealing.
It would be great if you could get a job at what one NYT journalist refers to as “the Frightful Five” (Google, Apple, Facebook, Amazon, or Microsoft). The reality is that the vast majority of CS majors do NOT work at one of those five companies. There are plenty of good, well-paying CS jobs to be had at other companies. First of all, there are lots of other top companies that come with good pay that maybe don’t sound as sexy - think Intel, Oracle, Sun Microsystems, Cisco, IBM, HP, Western Digital, Texas Instruments, Palantir, Qualcomm, Square, and Tableau.
But secondly, the majority of CS jobs are probably at smaller companies you may have never heard of, but that doesn’t mean that you’ll like the job any less. You’ll probably get paid less than a Google or Apple developer, but you’ll still probably make more than the national average for BS holders and have nice perks.
There is, of course, the chance that the market will be oversaturated by the time you graduate. There’s really no way to accurately predict that. What you can do to forestall it is learn some other skills that make you valuable: learn statistical analysis, or technical writing, or UX design/research, or something else. Don’t just be a developer; be a developer who has a nuanced understanding of something else that enhances your value and makes you hireable (and worthy of keeping).
…no, it’s the opposite: As you gain more experience, you should become more valuable. The key though, is that you have to continue to gain more experience and keep learning. Just because you aren’t in school doesn’t mean you aren’t learning new technologies: you can learn them on the job, through continuing ed classes, etc.
Look at the Hamilton Project for data on income by major. Look at the employment surveys in CS for your school. While you can’t perfectly time the job market, I doubt there’s been a time in the past 25 years, when the average art history was getting better job offers than the average CS major. You still can’t sleep walk through school. You need at least a 3.0, better yet a 3.5 or above, and co-ops or internships to be competitive in the job market. Even in engineering, your skills are still perishable and need to be kept up to date. There’s a perception there’s more age discrimination in CS than other fields, especially for those 45+ who haven’t jumped over to management.
Really depends on what you’re interested in doing. There are many different jobs your could go into, most requiring a BS in CS or a good amount of work experience.
The major problem with a CS degree is that a lot of what’s taught in classes won’t directly help you get a job. Employers want to hire people that can come in a start making the business money. Take a look at some job postings on places like indeed.com or monster.com to get an idea of what skills are marketable before you go too far down the academia rabbit hole.
You’ll learn a lot of cool stuff at school, but whether or not it’ll help you get a job is questionable. Always keep in mind what you wanna do afterwards and try to work towards gaining those skills in your free time.
I mention all this cause most of the people saying they’re going for CS will either switch majors because they don’t know what they’re getting themselves into or have no practical knowledge for a job, so they won’t be much of a competition outside of school ;p
Whether you wanna do web development, app development, or Java software development, you gotta work on building a good portfolio in your free time to show employers. I made a video talking about good ways to build a portfolio if ya wanna check it out https://www.youtube.com/watch?v=KWh-q6bhXvo&t=165s
A CS grad has to be flexible regarding location. If he refuse to relocate outside of Illinois say he may not get off to a good start. A CS grad may also have graduated with a 2.2 GPA which will not impress an employer.