Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I hope this wouldn't be closed especially since I think a lot of people can benefit from this question that are in similar positions to mine.

I'm been programming for a long time (since I was about 13/14, now I'm 22) and now I'm in that stage in life when I'm thinking whether and what to study.

Since I'm programming for a long time I'm pretty certain that I will not pursue a degree in Computer Science/Software Engineering because I think a lot of the material will be about things I already know.

Even if it will benefit me, I think I will lose a lot of motivation because I will be bored in class and I will always think to myself that "I'm wasting time" or that "I'm not really gonna use the material that is taught in this class".

Science really interests me, especially Physics, but Chemistry/Biology is also interesting to me. and it's also possible to study two together like a BSc in Physics and Chemistry or Chemistry and Biology, which are both offered at the university I want to go to.

So the question is, what Science degree can benefit me the most in a career as a programmer?

Are there fields that incorporate software engineering and Physics/Chemistry/Biology and that have a lot of demand? or are expected to have a lot of demand? Are there any specific careers that you know of that incorporate software engineering and Physics/Chemistry/Biology?

This is not a question of whether to study or not, this is a question of "if I decide to do a Science Degree that isn't Computer Science/Software Engineering, but which will benefit me as a programmer or widen my range of opportunities, which one do you recommend?"

share|improve this question

closed as off-topic by MichaelT, GlenH7, Kilian Foth, Dan Pichelman, mattnz Sep 12 '13 at 4:27

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, GlenH7, Kilian Foth, Dan Pichelman, mattnz
If this question can be reworded to fit the rules in the help center, please edit the question.

You may know less about computer science than you realize. Remember, Computer Science is about Math, not computer programming. "Computer science is no more about computers than astronomy is about telescopes." - Dijkstra. –  user606723 Dec 28 '11 at 21:10
As far as careers go, there is a big demand for statistics, data mining, math of many kinds, some AI, biochemistry. I predict that bioinformatics will explode very very soon. The costs are coming down and applications are many. Working on something that cures cancer also feels good but does not bring as much money as say finance. Applied math/statistics is a very safe, generic bet. I liked math and did take some extra classes there. Electrical engineering classes did not help me much. By the way, you can learn a lot outside of university: MIT OpenCourseware, Stanford, random videos ... –  Job Dec 29 '11 at 3:25

16 Answers 16

You should do a degree in the subject that interests you the most and you want to do long term. From your post that seems to be compsci. You may think you already know it all now but I guarantee it will be much harder than you think when you actually do the degree. It will also be harder to get a programming job without a compsci degree.

share|improve this answer
Don't think that's true - it's very easy to get a programming job with a maths degree. A lot easier than with a 2nd rate CS degree. –  Martin Beckett Dec 28 '11 at 17:10
@MartinBeckett: This really only applies to blue-chip recruitment. Most employers aren't so picky that they'll identify a "2nd rate CS degree". To them a CS degree is a CS degree. To put your own argument back to you, having a 2nd rate math degree doesn't help much either. –  Joel Etherton Dec 28 '11 at 17:16
There are a lot of degree-mill 'java schools' there aren't as many maths or physics ones. Yes if you graduate with CS from MIT/Stanford then Google will snap you up - otherwise a maths/physics degree and some programming experience stands out from all the other learn Java in 3 semesters candidates –  Martin Beckett Dec 28 '11 at 17:24

Every degree under the sun can be incorporated into a software programming job at some level, but the reality is that no one is going to hire you based on the substance of your degree only. If you get a degree in Underwater Basketweaving and continue to program, then you'll really have shoe-horned yourself into a specialty area that really would probably be best served as a minor degree.

Also, you would do well to consider Socrates: "The only thing that I know is that I know nothing." You may have been programming for a very long time, but it's pretty arrogant to presume that you have the breadth and knowledge that is consumed within a computer science or computer engineering degree. I had been programming for more than 10 years (professionally) when I earned my degree in computer science. I'll admit I found a couple of the very early classes tedious, but they were very few and very much in the minority. I found a significant gap in a lot of my knowledge specifically related to discrete mathematics, data structures, algorithm design and analysis.

My advice to you if you want to be a programmer after you have your degree is to focus on a computer science or engineering degree and bring other disciplines along as minor degrees. The more you learn the more you'll realize you don't know.

share|improve this answer
Don't get me wrong I do not think for one second that I will know all the material or finish a CS degree very easily, I just think that like you, some of the classes will be tedious and uninteresting to me. –  fiftyeight Dec 28 '11 at 17:16
@fiftyeight: Welcome to life. You'll find that when you get a job as a programming, many of the tasks will be tedious and uninteresting. It's the ultimate goal that gets you past that. In one case a paycheck, in the other a degree. As MartinBeckett indicates, mathematics can often be just as good a degree, possibly even better since it opens up more disciplines than programming. But if you want to be a programmer, then your best bet is to seek out the more advanced knowledge that accompanies it, and that means sitting through the tedium for a couple of semesters. –  Joel Etherton Dec 28 '11 at 17:19


This is a developing field right now and you might not even be able to find an undergraduate degree in it yet; however, if you have an interest in medicine, biology, or genetics than you will likely find it interesting. Depending upon which direction you want to go (more biology focused, or more software focused) you can also find yourself doing different things in the field and might even end up with a fallback career-wise if it is not to your liking.

On the software focused side of things you will likely find it a bit easier to break in if you have a degree in computer science with a minor in biology or a second major in biology although they don't mesh together well so you might need to do more schooling. On the software side of things there are a lot of problems that need to be resolved in genetics (i.e. pattern matching) or in "big data" storage and retrieve problems (i.e. how do you interact with petabytes of data?) that popup on a daily basis. Most of the problems have some play in the rest of the business sector jobs (i.e. finance) so you could always move to a different job if you get bored.

On the biology focused side of things you might be able to find a bioinformatics undergraduate degree, but most of the ones I've encountered have been graduate level. This is changing though, so do your research. If you can't find a bioinformatics degree that you like then you could just do a major in related field (e.g. biology, biochemistry, chemistry, etc (I don't recommended biology as you don't have as many job options as you might thing)) with a minor in either mathematics or computer science. Odds are a minor in mathematics and one or two algorithms courses with get you quite far as most of the bioinformaticians I've worked with tended to do algorithm development as opposed to larger application development.

There is a lot of important work being done in this field and breakthroughs happening on a more or less daily basis still so there is also a good chance that if you start and apply yourself you could make some significant contributions.

share|improve this answer

If you really wanted to get a degree that isn't Comp Sci, then I would suggest Mathematics. It would also open a lot of doors for you related to comp sci as well as opportunities not related to comp sci.

share|improve this answer

There are programming opportunities in all sorts of fields.

Physics simulations, bioinformatics, almost all engineering fields, mathematics.

If you can, I would double major in Computer Science and another field that interests you. Depending on the school, some programs can be so compatible with each other than you can do this in only an extra semester (but typically two).

This is because-

  1. Many intro CS courses can replace "general engineering" courses. (or sometimes vice-versa)
  2. If the program requires "technical electives", you can typically use core classes from your other degree.
  3. Heavy math is common between all of these.

Sometimes a degree will require a course that's more specialized. ie "engineering linear algebra" vs "math/CS linear algebra", but typically you can get a waver signed to make them replace each other.

share|improve this answer

If you want to program and also have a degree with good job opportunity, I recommend an Electrical Engineering degree. That degree covers a wide range of disciplines: Electromagnetic theory, physics, electronics, chemistry, mathematics, etc. In many schools, the EE and CE (computer engineering) are closely intertwined, so you also get a good dose of practical programming experience. You will typically learn C, Assembly, Matlab, etc ("Engineering languages"). Employers know this, so they will hire an EE for a traditional Comp. Sci. position.

share|improve this answer

I'm a scientist with a large interest in computer programming/software engineering. I stress that I foremost a scientist, but that software engineering appeals to me (also starting programming 11). I think if you do a scientific degree, you specialize yourself in being a scientist. I do now, however, people who have a degree in geography, but now are full-time c++ programmers. Their unique selling point is having both software skills and domain knowledge. There are certainly companies who are looking for programmers who also have a MSc or PhD in e.g. physics.

Therefore, I think you need to take a look at what you want to do after you finish your degree. Do you want to be a full-time programmer/software designer at a regular IT-company, I would recommend doing a compsci degree. If you want to be a programmer with a scientific touch, working at universities or specialzed companies, I'd go for some degree and take a lot of programming courses.

As a side note, compsci is not all about programming. The MSc level computer scientists I meet are more into algorithm design and mathematical proof. You can do a PhD in computer science with out doing a lot of programming. Therefore, I think when doing a BSc/Msc in compsci your gonna learn a lot of things apart from programming.

note: I'm from Holland, so my experience is based on that system...

share|improve this answer
I did not incorporate computer science as such, it was mainly computer programming. I think programming and computer science are two very different things... –  Paul Hiemstra Dec 28 '11 at 18:45

I aa mechanical engineer and I have been in programming all my professional life. The part of the industry that always fascinated me and I am winking in is CAD/CAM/CAE and for the last 10 years in finite element analysis. As you can understand the thing that matters is the kind of programming you want to do. For database programming I think computer science is OK but for my company engineering and mathematics is essential.

share|improve this answer

Programming is simply a method used to solve problems. This can be applied to virtually any field, plain and simple. Certain fields require you to have some sort of domain knowledge in order to effectively program in that field, most only require that you can program, you can always be given the specs from somebody else.

Pick a subject that interests you. As other have said, if you want to be in the IT industry, your best bet is to get a software engineering/computer science degree. I guarantee you will learn a lot and you'll be a much better programmer by the end of your experience.

However, if there is a particular field you're interested in. Astrophysics, geography, pharamaceuticals... pursue an education in that field and pick up a minor in computer science, or double major, it's certainly possible. I can virtually guarantee there are computing positions available in most fields of study. In the more specialized fields, the domain knowledge is extremely valuable, generally more valuable than the comp sci degree, outside those and other closely related fields though, the comp sci degree is certainly more valuable.

Don't think of it as what complements a comp sci background, think of it as what you want your primary field of study to be. Just make sure you pick up some classes on comp sci fundamentals along the way, they're important, and you probably don't know as much as you think.

share|improve this answer

It is highly likely that you will change your career several times before you get too old to work. The last university orientation session that I volunteered at claimed that you will have 3-5 totally different careers during your working life. Rather than obsess about "what degree is best", the question becomes more along the lines of "what degree path will help me learn the best set of tools to help me keep learning as I get older". My first bachelors degree is in electrical engineering. My next degree will be in accounting (the CPA credential requires enough courses in accounting that you will get an accounting degree, and soon, the requirements will change so that you'll need not just an undergraduate degree in accounting, but an advanced one as well just to sit for the CPA exam).

That being said, there are a few reasons for getting degrees:

  • networking. This is one of the major reasons for MBAs.

  • occupational credential/license. Several professions, such as law, patent agent, accounting and engineering require certain degrees in order to be able to do them.

  • learn stuff. In my opinion, this is the most important reason.

  • have fun. I've done this.

  • to get out of the parents' house. In my opinion, this is the worst reason to get one.

Many companies require applicants to have a bachelors degree. Some are specific in what they want. Some are specific in what university yours is from. Some couldn't care less what the degree is, or from whom it comes - just that you have one.

There are a number of fields that relate to what you mention an interest in: computational biology, chemistry and physics. For example, many of the researchers in string matching got recruited into "bioinformatics" during the human genome project, as the techniques of matching strings is very applicable to gene sequencing. Earlier this year, I was employed at one of the national research labs, working on energy usage in buildings. That was mostly applying mechanical engineering and simulating the results. Other national labs worked with other fascinating areas, including (trying to) making fusion practical as well as keep our nuclear stockpile ready.

what Science degree can benefit me the most in a career as a programmer

I'm going to turn that idea on its head and suggest that you won't be a programmer all of your life. While I've been a programmer most of your lifetime, and my first degree was before you were born, you'll do a lot of different things. There are a number of courses that you'll probably think are fluffy useless things, but based on past experience, they've been useful in a working career: at least one course in public speaking, at least one course in accounting, at least one course in business. You will get up in front of your peers and give presentations, or at least argue why position A is better than position B.

I'm not really gonna use the material that is taught in this class...

Everyone thinks this thought about every course they take in university. Some of the most memorable lectures were at the end of the semester where the instructor was flipping through slides going "remember that nasty equation we spent x weeks on? Here's what that equation is used for..." If they had flipped that around to be one of the opening lectures, everyone would have been energized and excited enough that everyone would have gotten an A in the course.

share|improve this answer

Try to have a look in Financial Engineering as well if you are interested in that field.

Usually it is an MSc, so you could do a BSc in Math and an MSc in Financial Engineering.

However, I would still recommend you to do at least a Bachelor in Computer Science, you would be surprised how much you can learn in a high-level academic environment. As I said already several times on this site, knowing a language is not enough, you need to understand the paradigms, understand the advanced algorithms, and so on. You should consider whether you really are that good in CS and you really have nothing else to learn.

Financial Engineering is a good place to apply a good Computer Science background. But you won't get anywhere is your knowledge is not solid.

share|improve this answer

I've met programmers with all sorts of backgrounds, ranging from the liberal arts (English and Philosophy majors) to social sciences (Economics and Business) to the hard sciences (Mathematics, Chemistry and Physics). The common thread was that these programmers had a strong interest in programming. Going a non-CS route will give you some challenges in learning the theory, since you won't be required to take those courses to graduate, but it's definitely doable. Several successful development managers have had non-CS backgrounds but picked up a MS in CS - the breadth of their academic backgrounds probably helped them in their professional lives.

One other option, as you've mentioned, is to double major or select an interdisciplinary major. You might not go as deeply into a particular topic, but you'll be exposed to a wide range of information - that is what's valuable about a college education, in my opinion. Obtaining a CS minor isn't a bad idea either, if you want to show future employers that you are interested in programming.

In the end, the choice is yours - even within CS there is a significant range of topics that you could specialize in.

share|improve this answer

Well, I majored in Political Science but that was 30+ years and a couple of career changes ago. I moved to statistics in grad school (after deciding not to go to law school), got bit by the programming bug and managed to move into this field where I've been ever since.

The problem is there are a lot of CS majors out in the market today and you'll face a lot of heavy competition from people who've had that particular ticket punched. The flipside is that with a different degree you'll have subject matter knowledge beyond what the average programmer has. This will make you attractive to a number of employers who're not hung up on the whole CS degree thing. For example, my knowledge of statistical reporting has made my work valuable in the areas of insurance, finance and logistics.

share|improve this answer

Biology or BioTech is the best long term compliment to a C.S. degree. Be strong in math and programming, then explore the bioinformatics problems. The next technical wave will be in biomed/tech.

share|improve this answer

Are there fields that incorporate software engineering and Physics/Chemistry/Biology and that have a lot of demand? or are expected to have a lot of demand? Are there any specific careers that you know of that incorporate software engineering and Physics/Chemistry/Biology?

Look at any modern physics/chemistry/biology laboratory. Look at all the measurement instruments that are obviously software-driven. The people who make those instruments must know the domain very well and be able to not only do some programming according to some given spec, but to create the whole instrument the from ground up, with all its details, starting from scratch.

People who can program decently are rare enough. People who additionally have other skills are rarer still.

share|improve this answer

Since I'm programming for a long time I'm pretty certain that I will not pursue a degree in Computer Science/Software Engineering because I think a lot of the material will be about things I already know.

You're blinded by the light! What are the things that are the most fun? The things you are good at! You can apply your knowledge, get good grades and teach your peers. Pursuing a CompSci degree will lead you to to social acceptance and confidence. It'll make you happy.

And also, you're just 22 and you think you can program. But believe me, you have no clue yet. Those 3 websites you made and the amateur programs you created don't count at all. Programming/CompSci is more than you currently think.

Go for CompSci and learn the domain knowledge for the stuff you need later on. Except you want to dive into embedded development. Then I'd recommend electronics engineering.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.