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, no registration required.

So here's my situation: I have seven years of experience with web development. I can do PHP, MySQL, OOP, all of that stuff. I would like to make the argument that I have enough technical experience to go out in the real world and get a well-paying, full-time job if I were to drop out right now (I've had a number of job offers recently, and I have already gotten a lot of actual job experience), but I would like to stay in school and get a degree for a number of reasons ranging from the social aspects to the fact that I just want to have a BS in one thing or another as it seems to be important to have one for a lot of jobs, even when it doesn't have anything to do with the job.

With that said, it makes little sense for me to major in Computer Science, because that would be like studying everything I already know. I don't want to major in something COMPLETELY different, because that would be contrary to my career goals.

I am considering trying to find some interdisciplinary, customized degree of sorts that allows me to combine my current skills with a new education. I'm thinking maybe buisness or even psychology (interface design?).

Could I get some ideas for what to major in and tips on who I might talk to? Thanks!

share|improve this question
    
add comment

migrated from stackoverflow.com Jan 19 '11 at 14:52

This question came from our site for professional and enthusiast programmers.

9 Answers

up vote 2 down vote accepted

Business Studies or Management. Personally I'd want it to cover at least the basics of accountancy and economics, the basics of management and organisational theory and the basics of marketing, plus whatever else you thinks looks interesting.

If you're going to work in the commercial world, learning the basic rules is a pretty good idea. These are things which, like them or loath them, are going to influence your life and you may find that understanding them makes things a little easier. Plus it's actually surprisingly interesting in places.

One thing I would say is that in the UK at least you can do a CS degree (or any other degree) with a minor component in another subject (business being a common one). This can be a good option for someone who wants to have a wide exposure to different subjects without diluting their core subject too much. My degree was Electronic Engineering with Business Studies and I enjoyed the balance.

share|improve this answer
add comment

IMO, the important thing on the academic front is to not think too hard about what's going to be useful so much as what would interest you and push you to delve further both into the subject and push you to improve your programming skills. Even if your bonus subject doesn't pan out as a career option, having a place to really focus your development skills can help you continue to hone them further than you realized was possible and continuing to challenge yourself as a developer is what ultimately gives you most ammo at interviews, not degrees or semi-relevant skill-sets.

Also, be sure and take the opportunity to get exposure to a variety of different language paradigms. Just knowing a little bit about the various choices can help you understand a lot more about the language you're best at.

As for UI/UX, I guess I'm wondering why no mention of JavaScript or CSS after seven years of web dev? If the client-side hasn't bit you yet, you may want to push yourself to spend some time with it before considering UI/UX classes.

share|improve this answer
add comment

Your specialties are PHP, MySQL, OOP, web development, all that stuff.

How about:

  • Graphic design (make better, more refined web pages)
  • Information Technology (from a business college, infrastructure to support web dev).
  • Quantitative Information Systems (maybe use databases and web for analytics, big data).
  • Electrical Engineering with VHDL/Verilog for behavioral oriented hardware design with something that is similar to an object oriented programming language.
  • Bioinformatics (someone else recommended this, and gave good rationale).
  • Computer Science with emphasis on embedded systems (this is distinctly different than your web development).

Another thing to consider is that as much as we would like it to be about the learning, often college is about endurance. It can be about showing someone that you can learn what they tell you to learn. The reward is an endorsement that you know enough to be trusted with professional level work. It is a little bit like a club and as you know, many who have paid the dues are reluctant to share space with those who haven't.

Web development is one area where things are much more open for non-degree workers. If you can show, you can go. In other areas of programming, generally the bigger the company, or the bigger the pay, the more the demand for the degree. In some cases, the only degrees of interest will be computer science or electrical engineering. For some embedded systems teams, they may want computer systems engineering which is a mix of hardware and software training, and while they might take electrical engineers, there is a lot of proving before someone with computer science would be accepted. For simulation programming jobs, they may want someone with math and/or one of the sciences (biology, chemistry, physics, etc).

Many colleges permit majors and minors, so psychology major with a computer science minor might be OK, but I would check with a few departments to see if someone has done it because jobs for B.S. in psychology might be sparse. Some CS programs might offer specializations in UX / UI. My Google query came up with educational requirements for UI jobs:

  • Bachelor’s or Master’s degree in Human Factors, Experimental/Cognitive Psychology, Industrial Engineering, HCI, Industrial Design or related field
  • Bachelors degree in Human-Computer Interaction, Human Factors, Industrial Design, Psychology, Technical Communication, Library Science, Sociology, Anthropology, or related area is preferred.
  • This position requires a Bachelor’s degree in CS or equivalent work experience and 3+ years practical development experience.
  • Bachelor’s Degree required – preferably in HCI, Information Technology, Marketing or related degree.
  • Master’s Degree in Computer Science or Engineering (or) Bachelor’s Degree plus work experience.

Whatever you choose, good luck.

share|improve this answer
add comment

If I had to do it over, I'd minor in Economics. There is a lot of interesting data to model and lots of number crunching. Plenty of possibility of creating simulations, Monte-Carlo methods.

There is also a lack of people with both programming and economics knowledge. I see this in what Economists I work with use day to day. Excel and VBA. The odd workarounds they come up with are often a that peculiar mix of inspire and madding you see with kludges.

The ability to use better tools and richer data models might be very useful.

share|improve this answer
add comment

Depends upon what you are planning on doing for a career. There are some stable niche areas of software development (e.g. financial systems, medical systems) that can be difficult to break into fresh out of school if you don't have some background in the area.

If you think you might want to get into writing software for medicine or genomic research in the future then a background in biology and some additional statistics could lead to a career in bioinformatics. If you want to work more in the financial sector then you should look at getting a minor in finance. Likewise, being able to work well with others is always important so minors in management or even psychology could also be useful from a career standpoint.

As others have noted, more math is always useful, but at the end of the day there is also a fairly good chance that if you have a solid understanding of math you might be able to learn what you need while working on a project. Getting that solid foundation while you are in school and can ask more questions (and make mistakes!) is important, but in the long run you may see little pay off from an upper division math course where as a introductory course in another field may pay dividends.

share|improve this answer
add comment

Mathematics. It can be useful for a programmer. But even if it doesn't, I support studying it for the following reasons:

  1. Math requires many of the same thinking patterns as CS, but the math major is more difficult at most universities than the CS major. So by studying math, you are a bit like a baseball player who warms up by swinging a heavily weighted bat
  2. Math is fun! If you like CS, there is a very good chance that you will enjoy math as well.
share|improve this answer
    
Note, before anyone flames me, that I didn't say that "math is more difficult than CS". Just that the major is more difficult at most universities. –  uman Jan 19 '11 at 15:21
    
When I went to school for my CS degree the university had only recently created a CS major. Before that time CS was a specialization within the math degree. –  oosterwal Jan 20 '11 at 1:26
add comment

Studying Computer Science shouldn't just be learning how to write code. If the program is designed correctly, there should be lots of theory courses too, with a healthy dose of math. It's unlikely you would have much exposure to the theoretical background just doing web development.

That being said... Math degrees often go well with CS degrees, as well as things like Engineering or Physics (or any of the "hard" sciences, probably). It sounds like you're leaning towards the business side of things, so maybe an MBA? Combined with a technical background, it could be very useful. Psychology could give you an edge in UI design, but so could visual arts. Really it depends on what you're interested in...

share|improve this answer
    
Ah okay, sorry, I should have been more clear. I do/have done a lot more than write code. I have gotten into database design/normalization, application architectures, software planning, theoretical stuff, complex design patterns, etc. I am also planning on continuing my development skills toward the hard computer science side, so I figure even if there are gaps in the computer science side now, I will fill them in the next few years. –  sailtheworld Jan 18 '11 at 21:32
add comment

If you are interested in psychology then artificial intelligence is a good match. There are certainly business components to AI, although I don't think that there is a "business AI major".

share|improve this answer
add comment

Even though a computer science degree entails a lot of math, perhaps studying mathematics as a sole subject will help you understand complex algorithms or even write your own, complex design patterns and a lot of other things that maths makes up about 80% of.

If you're thinking of going into game development, then a physics degree might also be a good idea as well.

share|improve this answer
1  
+1 for recommending physics. My personal opinion is that most SW developers don't have nearly enough training in physics. –  oosterwal Jan 20 '11 at 1:30
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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