CS Jobs being taken by non traditional students

So I was having a conversation with my CS advisor. Programming hasn’t been an easy cup of tea for me in college so far. . I have been thinking of switching out into Economics and then doing a minor in CS or self teach myself programming and see where it takes me.

Since CS is a really hard major, alot of students drop out looking for alternative means to get into the field through the back door. Do you see a pattern where a lot of the CS jobs are being taken by students who not necessarily majored in CS?

Most of the programmers I’ve worked with didn’t have CS degrees, although they almost always had some kind of STEM degree. Nothing sneaky about it. The programming jobs were there, while the jobs in their major fields weren’t.

Yes, there are some people who go into computing from other backgrounds, with self-education of the needed CS concepts. Physics seems to be a relatively common background, probably because physics majors can think logically (like CS majors have to), while physics jobs are not that common. But various other majors are also represented, like engineering, math/statistics, and various humanities, arts, and social studies. Also, there are occasional people without bachelor’s degrees. But business majors appear to be unrepresented, and biology majors appear to be very rare.

However, if you find that CS courses and programming assignments are uninteresting enough for you to want to switch out of majoring in CS, you may not have as much motivation to self-educate CS concepts as needed to be marketable for computing jobs in general. And if you are at a college where you can major in CS, why not learn CS when you have access to instructors and a designed curriculum to help you learn CS? Self-education is unlikely to be any easier than learning with the assistance of instructors.

Yes, a lot of non-CS people end up doing CS jobs. That’s mostly because 70% of the stuff that involves software is pretty trivial work, like building a website or using a database (not necessarily ragging on web development, but a lot of it does not have much technical depth and doesn’t really require CS knowledge). However, the more advanced stuff is generally reserved for those with solid CS fundamentals, and for that you need a degree in CS.

The trend is consistently moving towards CS being a hard requirement. It will take decades to get there, but it will most certainly happen.

I got into software as my first job. Still at that company a little more than a year later. Almost everyone has a STEM degree of some kind, if not computer engineering. The people who do not have degrees are very talented and I doubt they need one to do the work they do now.

However, the new job postings I’ve seen lately seem to be asking not just for people with experience but specifically for people with backgrounds in computer engineering.

You gotta have good timing, I guess.

It’s not about having a CS degree, it is about taking the most practical CS courses and getting knowledge on the current trends. My undergrad degree is in Computational Mathematics and even that degree was a little overkill. All a STEM major needs is:

Programming I (C++ or Java)
Programming II (C++ or Java)
Discrete Math Structures (read: Introductory Combinatorics & Graph Theory)
Data Structures
Analysis of Algorthms
Programming Languages
Databases
Networks

Incorporate this into a Math, Statistics or Physics major and you will get most jobs like a CS major. You don’t even need the B.S.-version of the degree. Take the B.A. version to free up more credits to fit in the CS courses (and to possibly reduce that Real Analysis requirement)

@GLOBALTRAVELER is correct to a large degree, but I’ll qualify his point for a certain subset of software jobs. IIRC, he works in Washington D.C. in the field of security/intelligence, and for that having U.S. citizenship (security clearance), a good talent for following the correct hype trains, a tolerance for frequent job hops, and the correct credentials (a Masters in engineering, even if it’s one of those useless ones) are what you need more than academic CS knowledge.

A lot of the most visible “CS” work is in web development, a field that involves rather simple technologies that come and go really fast. For that, a “practical” knowledge of programming and the ability to gain experience in the newest fad technology are more important than a degree. It also is usually (but not always) not particularly technically deep, so there’s a tendency towards ageism.

There are some topics that absolutely do strictly require a degree, because few people are capable and motivated enough to learn highly academic fields by self-study. Among these are machine learning, algorithm design, numerical analysis/scientific computing, and a lot of the higher-end hardware engineering work. If you want to work in an R&D group, whether it’s at a university, a national lab, or a company lab (e.g. Google/Facebook AI labs), you will almost certainly need an MS or PhD in CS or something close to it. A lot of mid-range work at more technical companies (as opposed to most “tech” companies that are simply marketing services with a fancy website) will generally make use of computer science at the B.S. level, though it would be rare to be given work that could make use of Real Analysis, Theoretical CS, Operating Systems, etc. with only a B.S. degree and you’d get by with the classes mentioned by GLOBALTRAVELER.

Both routes tend to pay close to the same at the median level. There is generally more upside for those that are very, very good who work on more advanced projects where they cannot easily be replaced (i.e. they have rare technical knowledge and they are worth compensating highly lest they leave). A Masters in Computer/Systems Engineering or CS is usually helpful for climbing up a few pay grades (government jobs), climbing the management ladder (corporate environment), or climbing the ladder of technical leadership (anywhere where academic credentials are respected).

In short: if you want to do the academic “fun” stuff, then you need a degree. If not, you’ll be 100% fine without it, at least for now (when programmers are in high demand but relatively short supply). Though if you have the straight CS requirement, employers will tend to be less skeptical about whether or not you can actually do the work in question. In that sense, any C.S./pseudo-CS (e.g. take computational math and call it “Computer Science and Math” on your resume) degree will suffice if it looks like a CS degree of some sort.