Hacker News new | ask | show | jobs
Ask HN: Stuck as a CS Major. Is there a way out?
19 points by hardcorenobody 1582 days ago
Long story short, I'm a junior taking CS, I hate it (sorry to everyone who loves it. Also, to clarify, my university isn't very theoretical in its approach), and because of my circumstances it's too late for me to switch majors.

I originally wanted to be a physicist, but I switched midway into my first year because CS has got more financial security, physics isn't as glamorous as pop science would have you believe, academia might be a bad fit, etc etc, and I thought I'd like it. Hell, everyone thought I was in love with CS until I started complaining their ears off, because I SEEM like I'd like it. It's to the point that it affects my work. I do submit my work on time unless life gets in the way, and I do pretty decently actually, but getting through the thick wall of "fuck fuck fuck i signed up for this" and boredom takes a lot of effort — more than I thought, and I don't have any side projects because I'm not interested in anything. My resume would probably look like a big wall of entry-level skills because I've tried so many things hoping I'd find something bearable. Finding this tolerable would really be the best-case scenario for me, but it's simply not happening. I wish I was having a bad time because I'm frustrated or burnt out, or I'm having a very very hard time, but I'm not. I just hate this.

My question is: do you know anyone who ended up with a non-coding job with a CS degree? If so, how did that work out for them? Also, were they able to get a job that didn't glue them to a desk all the time?

Right now I'm only interested in my electronics, math, and 3d modelling/animation (an elective) classes (which shouldn't be surprising - I love physics), and I wonder if I should've gone with engineering instead, but it's too late for that. I'm looking into embedded systems since it's "closer to the metal," I have some arduino parts lying around, and I do like C and assembly better than high-level languages, but if even that is too much software for me... I don't know anymore. I like managing and organizing projects ("Type A" apparently), and they say I'm a decent talker, so I'm also considering minoring in something business related and getting business experience. My family is full of businessmen, and they all say it's about the skills and a degree in management is useless, so I might be able to get into it. International business, maybe? I'm fond of learning languages.

Well, if nothing works out, I'm going to choose something random from the things I've tried (web dev, android dev, malware analysis, whatever) and run with it. It's about time I do something I hate for my resume so that I can get that 9-5 job I'll hate. Sue me, I need to eat. I'll just simmer in the irony that someone like me, who is passionate about so many things, some of which are practical, ended up in something I don't like.

If I sound desperate, I am.

Any advice?

Edit: This thread has given me better advice than I've gotten anywhere else. Thanks guys. Also, what I hate specifically about it is programming, of all things. For some reason, I just don't like coding.

19 comments

I'll bet that if you tracked the career path of CS and Engineering graduates, you'd see the following pattern. Let's assume (this is a bad assumption) the majority go into a technical role (e.g. Software Engineer, Electrical Engineer). After 2-3 years following graduation, you'd see a large percentage of people move from technical roles into semi-hands on roles (e.g. PreSales, Team Lead, Technical Marketing, etc) and then at 5 years, another jump into non-technical roles (Product Manager, People Manager, Sales, Marketing). At 10 years after graduation, I'd be surprised if even 20% of people with STEM degrees are still in a hand-on technical role.

Regarding Physics, I can't even remember how many people I know with advanced degrees in the sciences who are now in management roles in the private sector, or other roles that don't use even 5% of what they learned in their degree. I work for a company in the healthcare sector, I'm still astonished by the number of times I've heard "I have PhD in Physics/Chemistry/Biochemistry and 5+ years of post-doc research, and now I'm have meetings all day my "tools" are Excel/PowerPoint."

>do you know anyone who ended up with a non-coding job with a CS degree?

I know a lot of people who have done this. As you may have surmised from my comments, it's extremely common and people many people do much better from a career and salary perspective since they go into a job area where they can thrive, rather than stay in a coding role they don't like.

Alright, I think I'll stick it out. Doesn't seem like a bad trajectory. Thanks!
For what it's worth, I think that you might be wrestling with issues greater than a choice (or perceived lack of choice) of college major. I would suggest talking to a therapist regarding the boredom and frustration. It sounds like you might be depressed and mourning the loss of what you believed life could have been.

I have a MS in CS, and I work for a zoological nonprofit. It involves a fair amount of coding, but I'm also not chained to a desk. The projects are interesting and also provide a benefit to my community. I get to work on database designs, animal-computer interaction enrichment, microcontroller lighting, ecommerce, sound design, and veterinary equipment. The pay is a far cry from FAANG level, but the benefits are excellent and I've made a great career path for myself.

I was tired of working in a traditional coding role, and I started thinking about how I could use the skills I do have in a more fulfilling way for my community and the things in life I love. In the role I have now, even the boring stuff isn't very boring, because the bottom line is something that I care deeply about.

I do have a therapist. I've resolved many of my issues and I'm working on the other ones. However, choosing CS is a legacy of bad decision making in the past (I was terrible at some aspects of emotional intelligence, such as the very complicated, obscure art of knowing how I feel), so now I have to deal with the consequences.

That's a very uplifting story, though. I'll need to put out a thesis topic within the year, and the past months I've been thinking of making it about accessibility in tech. I know several people who have struggles with how tech is usually made for abled people and features for the disabled are marketed as luxuries for the abled. I was going to put off looking up this topic for the thesis proposal period, but it might be worth a google or two in my spare time.

> Right now I'm only interested in my electronics, math, and 3d modelling/animation … I'm looking into embedded systems since it's "closer to the metal," I have some arduino parts lying around, and I do like C and assembly better than high-level languages

So really there’s multiple subfields of CS that you like, you just don’t like everything and you think that it’s problem? Stick to CS, you’ll be fine.

It seems like I like multiple things about computers, but I don't like programming, specifically, and that's what I find myself doing for hours a day because of this degree. And that's apparently to be expected in this field.
Do you know what it is that you dislike about programming? Even within programming there are lots of different types and styles, and there might still be a subfield that doesn't have the problems you have with coding.
I don't have an answer for you but this stood out:

> My resume would probably look like a big wall of entry-level skills because I've tried so many things hoping I'd find something bearable.

As someone that has reviewed resumes, I can say this isn't a problem. You're (going to be) a fresh graduate, it's expected by nearly every employer that you'll have entry-level skills.

... Oh. I guess I've been pressuring myself too much. None of my friends are taking CS, so I don't have a clear idea of what the competition is like.
IMHO a simple solution is obtained, if we've fulfilled few pre requirements:

- Have very good internet connection

- ----------------- " ------------------------- access port/device (laptop, PC etc)

these must never lag, hang, interrupted, let alone overheated to sudden death

go on signing up engineering, physics, electronics, software/coding forums as many as possible and post questions in such too with no time in between

after doing those then back to first to reap all your questions' answers in that order

find some who blessedly good in both coding and physics/engineering, so try to acquire their mentality on their capability, knowledge, vision, habituated decent lifes etc, all the goodness benefit

Why is it too late to switch to e.g. physics or EE? You may tack on an extra year of school, and the financial cost thereof; and I'm sure the make-up classes and homework will be hard; but your education will set the trajectory of your adult life so it's probably worth it. You wouldn't be the first or the last to bail on a degree in their third year. Knowing some basic programming will make you better at those fields anyway.

(Edit) If you like C etc. more than app programming, do the malware analysis route you mentioned. For heaven's sake don't become another Android or web dev, you'll be in hell.

It's too late because of personal reasons not appropriate for this forum, lol.

Interesting, what's wrong with Android or web dev? I keep hearing they're pretty okay to get into.

Mobile and web development are usually more about plugging libraries into each other, fiddling with style and pixel alignment, setting widget properties to ensure the underlying renderer does the right thing, and so on. The libraries and languages cycle out every 3-4 years depending on the whims of big tech companies and whoever has the ear of your department's director. 100% there are exceptions to this but it's overwhelmingly likely that any given job in the field is mainly the above.

That said, the jobs are lucrative (for now) and you won't hurt for employment (for now), and they can certainly scratch the same creator's itch that hardware and low-level development do. Maybe you need to try a project or two.

I don't think there's anything inherently wrong with it (speaking as a full stack web dev), but depending on what specifically you dislike about coding it might not be a good fit for you.
Better to switch now than to have to redo this in 5 to 10 years when you get tired of wondering “what if I had changed”.

Seems like EE is more your thing.

If you want some more random stuff to try, look into working in the semiconductor industry. There are a bunch of jobs with varying degrees of programming. It would be difficult to get a digital/analogue design job as a CS major, but there are a bunch of things you could do.

Production Test Engineer: You write code that runs on every device before it's marked as good. You're trying to optimise for test time (every extra second costs money) and minimise false negatives/positives. There are many opportunities for statistics/physics here, especially in the mixed-signal space.

(Field) Application Engineer: You help customers use the products produced by your company. You help make reference designs for PCBs, write demos that show off the product etc. The field version travels to customer sites and helps debug problems.

Verification Engineer: You'll be writing lots of code to test stuff written by the digital designers. This profession is in a really weird place, most people that get hired are EE's, but verification has basically become software development at this point. Lots of high level software abstractions exist now and lots of people that work in this area are struggling with them (at least from what I've seen).

Quality engineer: honestly, not too sure what they do. Lots of statistics, maths and complaining about shit :).

Probably more titles I can't think of right now.

Anyway, just some ideas to try which might be things you haven't heard of before. I have no idea where you are based, but many semiconductor companies offer internships where you can get a taste for some of these areas. It's difficult to know if you'd enjoy any of them though. I didn't quite get what specifically you hate about CS :).

Sorry that I was unclear. My bad. I hate programming, of all things. Math, electronics, all good, I hate code.
Product Management with a focus on backend might be a good fit if your just looking for a job that makes CS level money. There are places that hire "out of school" junior level product managers now. And a real struggle is finding people who can understand the use cases of enterprise teams that expose backend apis and not just a CRUD app.

A product manager with technical skills is a niche that exists.

Interesting. By backend apis do you mean for things like angularjs and azure?
No, yes, maybe. So like imagine your a product manager, but your product isnt a CRUD app, its a REST api users hit to get data. They either pay access for it, or more commonly you expose it for people in your enterprise. (So say you work for Walmart or Amazon and your team exposes an api for another team in the enterprise to make updates to a delivery time)

Most product managers are not technical but can understand CRUD apps just fine (the app should do this when the user clicks this!). They struggle when the product is an endpoint you can hit with curl that has an interconnected chain of dependencies and other teams that also expose APIs that are owned by other product managers.

How do you go about getting experience for this? It sounds like the type of thing best learned on the job.
Finish you degree with a minor in Business and go into the management aspect of IT sounds like the best plan. After you got some experience you should be able to “shop around” a bit for some other type of management position that aligns with your interest.
There's a program in my university called "Management Information Systems." I suppose I should look at what kind of things their majors do, and what their jobs are usually like?
MIS is like programming + business. You take regular business classes (accounting, marketing, finance, management) but also programming related classes like database design, programming, project management, etc. It skips the 3 semesters of Calc and 3 semesters of Physics and replaces it with statistics and business calc. It's more practical and less theoretical than CS. It's a nice balance IMO. You could just minor in Business if you are too deep into CS.

MIS more prepares you for building IT in regular business. It's broad but shallow; you learn about database design, project management, application development, networking, the whole gamut (depending on your school). You learn the real stuff on "the street" anyway. Companies typically treat it as equivalent to a CS degree. You can get into whatever industry that interests you.

*I switched from CS to MIS and glad I did, but this info is 20+ years old, things might have changed since.

It's been a long time for me too, but I went to a school with a well regarded MIS program and I interacted with a lot of MIS people.

I'm saying this wery lightheartedly - I felt like 80% of the people in MIS programs where people who needed (because society dictates you have to get a degree) to go to college and didn't care really care about tech or business, but they need a degree so why not both? 10% were people who should have majored in CS or Business, but for some reason didn't realize it early enough in their college journey and they didn't want to redo 1-2 years of coursework. The other 10% were destined to become the a$$hole VPs/SVPs who everybody hates, and the MIS degree was just another step to world domination and them self-justifying that they have a "technical" background.

>Companies typically treat it as equivalent to a CS degree.

I don't think this is true at all unless the company is one of those who hires SWEs who don't really do any actual software engineering.

In my experience, you could get a lot out of it if you were really into it like I was. You could also coast by and not obtain any desirable skills for employers and still pass. I suspect most degrees are like that though.

I really enjoyed it though. I learned so much that my first job utilized everything I learned. At a small growing company that needed in-house expertise. I did the network, the switches, the workstation builds, the servers, built the database and applications on top of it all. I did project cost/time estimates and carried them out. After about a year we hired a full time network/client guy and I stuck to applications / database. It was a lot of work but I really enjoyed it and got a lot out of it. I don't think I would have been able to cover that much ground with just a CS degree.

>I don't think this is true at all unless the company is one of those who hires SWEs who don't really do any actual software engineering.

I don't know if it's still true, but when jobs would require "CS degree or equivalent," they meant MIS/CIS, at least 20+ years ago.

> I did the network, the switches, the workstation builds, the servers, built the database and applications on top of it all.

You are most certainly an exception to most people I knew in the MIS program at my school. :)

>I don't know if it's still true, but when jobs would require "CS degree or equivalent," they meant MIS/CIS, at least 20+ years ago.

I'm old enough to remember when people I know would graduate with "MIS" or "IT" degrees and get a $55K job building and installing Windows NT 4.0 servers with a bunch of other stuff (e.g. networking) on the side. It was a great starting salary at the time. Then the dot-com bust happened.

I definitely think software engineering now is at the point where CS or STEM degree really means that. Programming has just become a lot more specialized than back then. Well, at least hiring managers seem to think so...

I agree with Clubber, stick with CS and a minor in business. MIS sounds nice if you want to go IT.

The minor in business can take you in some of the management positions in IT, experience can take you into others. But the minor in business can also take you out of IT.

Nothing speaks against finding a job you “like” (love is asking much of a job) and turn tech into a hobby and going more into electronics instead of software. To be honest technology makes a nice and exiting hobby but often a less exiting Job. As soon as a cool idea meats up with customers things can get ugly for stupid reasons.

MIS is a generic enough degree that I wouldn't read too much into what people do with that degree. There are lots of degrees that are basically catch-alls for people who don't really feel like they fit into a particular discipline.

The end result is that there is a wide variance in what people do after they graduate, and the degree isn't really an indicator of anything other than them getting a degree.

I have one of these generic multi-disciplinary undergraduate degrees and honestly, years later I feel like I would have less regret about how I spent those 4 years had I done CS or another program that was more focused. YMMV.

Are you me? I got a degree in computer engineering, minor in CS and Math. I initially thought I hated programming and wanted nothing to do with it until I started making games in Unity. It turns out that what I really enjoy is learning and problem-solving. My CS coursework just didn't offer interesting problems to solve-- it was more about rote memorization of Data Structures and Algorithms. I think you should try and find a discipline of CS that interests you, and pull on that string. Do a little self-directed learning in your free time. For me that string was AI for games.
Aerospace contractors hire CS to do physics modeling and simulation. Go to a place that will pay for your masters in something you’re interested in and pivot to science
:0 NEAT
If you have a chance to change, do physics, but there's every chance you wouldn't enjoy that as much as you think anyway. Except for people that work at universities, most people that I know who did physics (even to associate professor level) are no longer physicists. Physics is a great entry point to business, accountancy, finance, actuary, insurance, data analytics/MI/AI all kinds of stuff that you might equally hate :-)
This is exactly why I left, actually. Although it's looking like I'm more obsessed with it than I thought. Whoops. I'm seriously considering taking a bachelor's in it for fun in the future, after some years of working.
If you like and understand physics, try adding an EE minor or applying your CS skills to robotics. Both these career paths are physics-adjacent (electrodynamics and mechanics respectively) and might allow you to have a passion for the software you're developing. Also, remember that your career is simply there to pay the bills and that you can pursue your interests outside work too (I build wooden boats).
But you need to have some sort of interest in what you do, no? I spend the 8hs at work thinking of what I do outside of those 8hs. When I have things in my personal life that I have to do, I find that they “get in the way” of the things I actually wanted to work on.

In other words, the 8hs that pay the bills steal time from the things I actually want to do and it makes me dread them tremendously.

How about automation? I used to work in an automation company (as a dev), and the work the engineers did seemed to fit your profile pretty well: Electrical engineering, project management, customer support and some dev to put it all together. I'm guessing the roles will be more distinct in larger companies (we were about 60 people total), but ICS is a nice middle ground between EE and programming.
Heh, I've never heard of automation companies. I'll look this up, thank you!
I think the correct term in english is ICS (Industrial Control Systems). Sorry, not a native speaker :P
No problem. Thank you! Added to the very long list of things to look into from this thread.
I was a CS major... then I had like 5 other majors before I dropped out of college altogether. I never had traditional "software engineering" job. There are a million things you can do. These last few years I've been going deep into some esoteric cybersecurity research. Coding is helpful to get the job done, but it's not assembly line style programming.
Didn’t like my CS program, switched to Math with CS minor. Much happier. Ended up doing sysadmin, then devops, then back to software dev.

During part of that progression I worked for a non-profit that I loved.

Small tweaks (which professor you have, which boss you work for) make a huge difference in your level of enjoyment and fulfillment. Experiment with choices, try to figure out what you like.

How about electrical or computer engineering? You would satisfy your 'how does it work' jones, and also get a healthy dose of physics.
You could probably be a product manager or a technical sales person.
Why do you hate it?
I realize any interest I had about computers was more of a "how does this work?" type of deal, and I'm not interested in making whatever app or site or something. "Oh, you don't need to know that. You just need to know enough to use it. Treat it like a black box." Great, I'm interested in how it works, and not in what I can do with it. And when it's something like networks or operating systems how it works can become boring very fast because they're often basically just design decisions of other people, from how I see it anyway.
Even computer engineering is like that --- a bunch of neat ideas supported by an inordinate number of man-hours.

But since you are stuck as a CS Major, here are some areas that you might find interesting:

1. Security --- This is an arms race, so there is always something interesting to do

2. Machine Learning --- While this field is very hyped up right now, there are still many areas that need a lot of work. Things like robustness against adversarial attack

3. Quantum Computing --- Honestly, I don't have much experience with this. But this is one field where your interest in physics can complement your current major

Honestly, you're right on the money. These are the fields I find the most tolerable. Cheers.

1. With security, I tried it and I'm not sure my brain is built for it.

2. Machine Learning — I got discouraged because I heard they mostly do deployment, which is a shame because the theory looks interesting, and the stuff you make can be funny. Maybe I dismissed it too fast? I got tired of spending months learning things only to consistently dislike them. I should give it another shot.

3. I might pursue quantum computing if I go back and take that bachelor's in physics.

You should view computers as a tool to amplify your ability to otherwise do the tasks and hobbies you like. By becoming a computer scientist learn so many tools that can be applied to just about any other industry. School is supposed to be hard and you’re being exposed to a lot of different areas of computer science and you’ll find your own niche that interests you