Is CS going to be a dead end for me?

  • #1
I just graduated with a BA in Math (top 30) and have been unable to find a job. So right now I am doing some online undergraduate coursework in Computer Science, since I took no CS courses in undergrad. I'm sort of trying to kill the year while also getting the prereq's for a CS MS, as I realized a BA in Math alone is essentially useless.

The problem is, I really don't see myself working in software engineering in the long term. I really wanted to be an engineer or physicist, but that ship sailed because I didn't take any prereq's freshman year and wouldn't have been able to complete either major, so I "settled" for math. What bums me out about SWE is that little math or science is used. I see the work itself comparable to accounting or finance, no offense to either career or SWE as obviously the work life balance and pay is amazing.

I'm wondering if anybody can comment on the feasibility of the following scenario: let's say I finish the undergrad CS prereq's this year, and apply to some CS Master's programs. I get into a top Master's, then get a job doing something interesting, like numerical simulations in a lab, rather than BigTech/CRUD development.

Am I already too far behind the curve? Is a path like this even feasible for me, and do non-software CS jobs really exist? Or is the probability of my getting such a job so low due to competition at this point that I might as well cut my losses and just go to law school?
 

Answers and Replies

  • #3
425
258
I just graduated with a BA in Math (top 30) and have been unable to find a job. So right now I am doing some online undergraduate coursework in Computer Science, since I took no CS courses in undergrad. I'm sort of trying to kill the year while also getting the prereq's for a CS MS, as I realized a BA in Math alone is essentially useless.

The problem is, I really don't see myself working in software engineering in the long term. I really wanted to be an engineer or physicist, but that ship sailed because I didn't take any prereq's freshman year and wouldn't have been able to complete either major, so I "settled" for math. What bums me out about SWE is that little math or science is used. I see the work itself comparable to accounting or finance, no offense to either career or SWE as obviously the work life balance and pay is amazing.

I'm wondering if anybody can comment on the feasibility of the following scenario: let's say I finish the undergrad CS prereq's this year, and apply to some CS Master's programs. I get into a top Master's, then get a job doing something interesting, like numerical simulations in a lab, rather than BigTech/CRUD development.

Am I already too far behind the curve? Is a path like this even feasible for me, and do non-software CS jobs really exist? Or is the probability of my getting such a job so low due to competition at this point that I might as well cut my losses and just go to law school?
There are some math heavy CS paths you can take that are also in high demand and can get you very high pay. One example is cryptography. Another is quantum computing, or quantum computing with an emphasis on cryptography and security. Those topics however will not be easy.

A bioinformatics or biomedical engineering route under a CS program is another possibility (although, I've heard bioinformatics jobs don't pay well). These can be fairly math heavy, and also require some of the more non-trivial and math-like CS skills such as advanced algorithms. Biomedical I think is a good one, because there will be some major advances, made possible in part by CS breakthroughs. In my school, they also offered a degree in computational biology under the math department.

AI has been traditionally very math heavy as well. But a lot is focused now on statistical learning instead. Although the new thing is going back to the old symbolic AI and trying to merge it with statistical learning. So it is actually good timing if you can become an expert in this field.

But yeah, I think biomedical, quantum computing, and cryptography (or security), and AI are good bets if you can pull it off.

There are other more niche CS focuses too that are more math heavy, especially if you do a Ph.D, like graph theory, computational geometry, and data compression. And there are mathematics routs which are close to CS, like optimization, and automated theorem solving (which can be useful for AI, and might be able to get you into a research position in industry).

In the end, having the CS qualifications will also get you in the door to regular fairly trivial SWE jobs, which might sound boring, but when a company is waiving a few hundred thousand dollars at you, it can change your thinking.

Am I already too far behind the curve? Is a path like this even feasible for me, and do non-software CS jobs really exist? Or is the probability of my getting such a job so low due to competition at this point that I might as well cut my losses and just go to law school?
No, it is feasible. Yes, non software engineering CS jobs exist. Your probability of getting a non-software engineering CS job would depend on the work you do as a grad student, your effort, and talent.
 
Last edited:
  • #4
Zap
258
79
Generally speaking, work life balance is notoriously not good in SWE. Just FYI. I also would not be expecting a few hundred thousand dollars after your CS degree. FAANG companies probably will pay you a few hundred thousand, but outside of FAANG, I would not be anticipating that kind of rock star salary.

I got a job in IT/management consulting after my physics master's, and the average work week was roughly 60 hrs. It was even more during a tight deadline, which there often was, and I wasn't making anywhere near hundreds of thousands of dollars.
 
Last edited:
  • #5
StatGuy2000
Education Advisor
1,801
906
Generally speaking, work life balance is notoriously not good in SWE. Just FYI. I also would not be expecting a few hundred thousand dollars after your CS degree. FAANG companies probably will pay you a few hundred thousand, but outside of FAANG, I would not be anticipating that kind of rock star salary.

I got a job in IT/management consulting after my physics master's, and the average work week was roughly 60 hrs. It was even more during a tight deadline, which there often was, and I wasn't making anywhere near hundreds of thousands of dollars.
Just out of curiosity, you mentioned that the average work week was roughly 60 hours. That would amount to working 12 hours each day. So did you typically work from 8AM to 8PM every day (with occasionally working from, say, 8AM to 10PM)?
 
  • #6
Zap
258
79
My hours were insane. I would work from about 9:00 am to anywhere from 5:00 pm (on an exceptionally good day) to 10:00 or 11:00pm (on a bad day). Typically, I'd leave at around 7:00 pm. I was there once until the janitors shut all the lights out, and I was just sitting on my laptop in complete darkness. Then, I would come home and have a virtual meeting anywhere starting at 10:00 pm to 12:00 am for about an hour or so. Sometimes more than an hour. Then, I would work during the weekend additional hours, sometimes even hopping on calls.

The salary was no where near hundreds of thousands of dollars, but it was good enough that it prevented me from going a-wall. And, minus all the corporate stuff that was pretty mind numbing, I was learning new things and liked what I was doing, for the most part. I was planning on quitting though, because the amount of work was too much. I was at my breaking point tbh.

Another thing to note is that the client was kind of insane and really did not understand how time consuming programming can be. Additionally, me being a total newb, didn't really understand that either. This lead to us agreeing on unrealistic deadlines and setting very difficult expectations to meet. There were also internal mayhem that kind of lead to me being left high and dry, so to speak. At one point I was doing three people's jobs, which wasn't as difficult as you think since two people were responsible for almost nothing and still didn't get it done. And after all of this, they laid me off. I definitely don't have a favorable impression of the company. I digress.

I didn't have a set schedule, though. It just felt like I was working nonstop.

I still miss that job, though. It was a steady and pretty descent income. They gave me a ton of responsibility for a fresher, which I liked but it was also too much, I think. Anyway, I got a new job that pays way less than what I was making before, so I'm anticipating a much more organized and manageable schedule, and more free time!
 
Last edited:
  • #7
1,841
209
Another thing to note is that the client was kind of insane and really did not understand how time consuming programming can be. Additionally, me being a total newb, didn't really understand that either. This lead to us agreeing on unrealistic deadlines and setting very difficult expectations to meet.
One critical aspect of my job is to ensure our teams don't have this happen to them. I work to ensure we get reasonable requirements, set appropriate deadlines, and require dependencies to be met.

I hate that there was no one there looking out for you.
 
  • #8
Zap
258
79
One critical aspect of my job is to ensure our teams don't have this happen to them. I work to ensure we get reasonable requirements, set appropriate deadlines, and require dependencies to be met.

I hate that there was no one there looking out for you.
There was but he was very busy and he was also kind of winging it, as well. It was definitely a fast paced learn as you go atmosphere. Everyone seemed to be winging it. Most people were working just as hard as I was, as well, some even more so. So, I really had to take control and own what I was doing. Which was kind of cool, but it was definitely a struggle with a lot of hiccups. I wasn't a software engineer, though. I was a consultant. So, it's possible SWE have easier lives, but would be hard for me to believe considering they are being paid more.
 
  • #9
34,288
5,925
it prevented me from going a-wall
You've probably only ever heard of this term, but not seen in in print. It's AWOL, a military term, short for "absent without leave."
 
  • #10
Zap
258
79
Sorry about that. I actually did a rough calculation and my new job doesn't actually pay any less than my other one, when I calculate income after taxes and adjust for the cost of living. I can actually afford a way nicer apartment than I could before, even though my hourly rate is significantly less.

To OP. I think you would probably not regret pursuing a master's in CS. If I could go back, that's exactly what I would probably do. If you want to work more in research and development, why not look into what kind of research projects you can get involved with in the computer science department at the school of your choice? I took a few graduate level CS courses as a Physics grad student with no prerequisites, and it was challenging, but I got through them with descent grades. I got a C+ in one, A and Bs in the rest.
 
  • #11
FactChecker
Science Advisor
Gold Member
5,840
2,197
I would tend to think that CS would open new doors, especially for someone who wanted to do engineering work. I would not call it a "dead end". But my concern is that you seem to have a negative attitude about career options that really can be interesting.
 
  • Like
Likes Locrian
  • #12
1,768
126
I got a math PhD and then had to improvise after it turned out that being great at being a math student didn't extend to being great at either research or teaching. I ended up doing software development. The thing I would add here is that while the sky is the limit in terms of the connections between math and CS in theory, in practice, the jobs you will see out there are another thing entirely. Getting something more on the mathematical side can be a little of a needle in a haystack exercise in my experience.

Just to give one example strategy I might employ if I had to do it over, maybe I'd look at some blockchain developer job descriptions (a lot of them say a cryptography background is a plus) and then try to prepare to get the skills they are looking for years in advance. Of course, you should take job descriptions with a grain of salt. Also, if you start talking to recruiters, you have to find ways to navigate around the fact that they generally don't know what they are talking about.

I do think that software engineering has some similar kinds of thinking to math (particularly notions of composition and abstraction). For a taste of that, you might check out the book Structure and Interpretation of Computer Programs, which teaches a lot of software engineering principles using math examples. To connect it more with day to day software development, you could then read books like the Gang of Four design patterns book, Clean Code, Clean Architecture, Code Complete, or The Pragmatic Programmer that are a little less academic and then try to make the connection. So, I would say maybe those "boring" jobs aren't as boring as you think.
 
  • Like
Likes Jarvis323
  • #13
FactChecker
Science Advisor
Gold Member
5,840
2,197
So, I would say maybe those "boring" jobs aren't as boring as you think.
Like many things of value, the more you know about them, the more interesting they are.
 
  • #14
I got a math PhD and then had to improvise after it turned out that being great at being a math student didn't extend to being great at either research or teaching. I ended up doing software development. The thing I would add here is that while the sky is the limit in terms of the connections between math and CS in theory, in practice, the jobs you will see out there are another thing entirely. Getting something more on the mathematical side can be a little of a needle in a haystack exercise in my experience.

Just to give one example strategy I might employ if I had to do it over, maybe I'd look at some blockchain developer job descriptions (a lot of them say a cryptography background is a plus) and then try to prepare to get the skills they are looking for years in advance. Of course, you should take job descriptions with a grain of salt. Also, if you start talking to recruiters, you have to find ways to navigate around the fact that they generally don't know what they are talking about.

I do think that software engineering has some similar kinds of thinking to math (particularly notions of composition and abstraction). For a taste of that, you might check out the book Structure and Interpretation of Computer Programs, which teaches a lot of software engineering principles using math examples. To connect it more with day to day software development, you could then read books like the Gang of Four design patterns book, Clean Code, Clean Architecture, Code Complete, or The Pragmatic Programmer that are a little less academic and then try to make the connection. So, I would say maybe those "boring" jobs aren't as boring as you think.
Needle in a hay stack. That kind of scares me. I am doing operations research and I thought maybe I could get a job in optimization like linear programming. Linear programming or integer programming would be a nice mix of math and cs. I just love the simplex algorithm.
 
  • Like
Likes FactChecker
  • #15
I dont know I also feel cs is dying. I am studying OR but I feel like the math does not apply to real life scenarios. For example I took a class called mathematical statistics and we have prove simple things like VAR(X+Y)=VAR(X)+VAR(Y)+2COV(X,Y) and the we do not learn things like python in the class. The python I have to teach myself :cry:
 
  • #16
FactChecker
Science Advisor
Gold Member
5,840
2,197
I dont know I also feel cs is dying.
IMHO, nothing could be farther from the truth. I think the next few decades will be dominated by AI, machine learning, and other CS-related subjects.
I am studying OR but I feel like the math does not apply to real life scenarios. For example I took a class called mathematical statistics and we have prove simple things like VAR(X+Y)=VAR(X)+VAR(Y)+2COV(X,Y) and the we do not learn things like python in the class. The python I have to teach myself :cry:
Although the programming languages are covered in other disciplines, virtually every human endeavor has some random or indeterminate aspects, some optimization, some feedback and control laws, and some dynamic aspects. To deal with all that, CS is a necessary tool.
 
  • Like
Likes Jarvis323, Locrian and sysprog
  • #17
1,768
126
Needle in a hay stack. That kind of scares me. I am doing operations research and I thought maybe I could get a job in optimization like linear programming. Linear programming or integer programming would be a nice mix of math and cs. I just love the simplex algorithm.
Yeah, you could look into it and you'll see some postings for that. That background would probably also be good for machine learning, too. There are certain subjects that definitely will give you an advantage, like optimization, statistics, or maybe numerical analysis. It's more "generic math background" that will particularly lead to the needle in the haystack scenario.
 
  • #18
Office_Shredder
Staff Emeritus
Science Advisor
Gold Member
3,999
218
I think a lot of people get hung up on math being the pure intellectual pursuit, and everything else being dumb human things. Good programming is basically math from an intellectual standpoint, even if the thing you are doing doesn't actually contain any math. If you are told to write some software to do a thing, you need to pick your algorithm and prove that it's going to work. In many cases, the hardest part about writing software is picking the framework in which you are going to structure everything so that you even can try to enforce the correctness of your program at a high level - many computer bugs are written because the software is a tangled mess that nobody tried to think about conceptually before creating (or someone did, and then a hundred other developers came in and added whatever hodgepodge they wanted to it).

Maybe a good analogy, being given a problem and deciding the way you will write your program to solve it is not dissimilar to being given a math problem, and deciding the first step is to put everything into a linear algebra context.
 
  • Like
Likes Jarvis323
  • #19
425
258
Some areas of CS theory (computability and computational complexity), to me, are an even more pure intellectual pursuit than mathematics. It's close to philosophy of mathematics. It's basically theory of how math can be done, what can be solved or proved, how complicated it is to solve/prove something. Remember computer in theory isn't necessarily a machine, it's modeled based on people, with paper and pencil and time (maybe even an oracle), and asks what intellectual pursuits can be done with them. Pure mathematics (basically any type of problem solving) is rather a sort of applied CS in my opinion.
 
  • #20
1,768
126
I think a lot of people get hung up on math being the pure intellectual pursuit, and everything else being dumb human things. Good programming is basically math from an intellectual standpoint, even if the thing you are doing doesn't actually contain any math. If you are told to write some software to do a thing, you need to pick your algorithm and prove that it's going to work. In many cases, the hardest part about writing software is picking the framework in which you are going to structure everything so that you even can try to enforce the correctness of your program at a high level - many computer bugs are written because the software is a tangled mess that nobody tried to think about conceptually before creating (or someone did, and then a hundred other developers came in and added whatever hodgepodge they wanted to it).

Maybe a good analogy, being given a problem and deciding the way you will write your program to solve it is not dissimilar to being given a math problem, and deciding the first step is to put everything into a linear algebra context.
That's a good way to sum up what you'd learn from my book recommendations.

Having said that, I do kind of miss doing math proper sometimes. I do a little on the side for fun, but there's not much time to go in depth with a lot of the stuff I'd like.
 
Top