Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

TheAngusBurger

macrumors member
Original poster
Mar 30, 2008
93
0
Hi,

Sorry if this is the wrong forum for this - I'm a student in the UK looking to apply to university at the end of this year and am currently leaning in favour of a Computer Science degree at a decent institution with any luck (Cambridge, Imperial, Edinburgh etc). I've had perspectives from student forums etc but given that there's a fair few people in the industry on Macrumors, I was wondering whether you thought such a degree was necessary or even beneficial to end up in some kind of programming job? I'm just wondering how employers etc rate the degree over other potential options like Mathematics or Engineering, any thoughts would be appreciated!
 

DesertEagle

macrumors 6502a
Jan 10, 2012
609
8
/home @ 127.0.0.1
Hi,

Sorry if this is the wrong forum for this - I'm a student in the UK looking to apply to university at the end of this year and am currently leaning in favour of a Computer Science degree at a decent institution with any luck (Cambridge, Imperial, Edinburgh etc). I've had perspectives from student forums etc but given that there's a fair few people in the industry on Macrumors, I was wondering whether you thought such a degree was necessary or even beneficial to end up in some kind of programming job? I'm just wondering how employers etc rate the degree over other potential options like Mathematics or Engineering, any thoughts would be appreciated!

Mathematics will give you a good foundation for Computer Science and for Engineering, and its value should therefore not be ignored, but that's all there is to it. If you want to become a programmer, then CS is the way to go. Like you say, you should make sure that you take it in an institution with a decent reputation for CS. You will also have to consider which path to take, such as applied vs. theoretical CS.
 

willieva

macrumors 6502
Mar 12, 2010
274
0
Study what you enjoy, the rest will fall in place.

I work for an engineering research organization. The people around me are math, physics, engineering, and cs. The people who focused on cs in college are not necessarily better programmers than the people who got into it from the other disciplines. I have seen a tendency for people from the other disciplines to be able to work on a larger variety of tasks. But that might also be a selection effect, they wouldn't be where they are if they couldn't change hats.

Ultimately what you get out of your degree is more about what you put into it than whether you take cs or engineering. And if you can, get a job as a research assistant or something like that. Not only does that look great on a resume, you'll pick up skills that will be useful for the rest of your life.
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,558
6,058
Do Computer Engineering.

At my school in any event, Computer Science majors are too theory heavy and end up disappointing potential employers.

Computer Engineers tend to focus on writing embedded and low level code that's fast. Computer Science tends to focus on writing very high level code. CS majors tend to think of the computer as being magic - CE majors tend to actually know how it works.

I'd suggest doing at least CE, with maybe a minor in CS or something.
 

mslide

macrumors 6502a
Sep 17, 2007
707
2
I'm just wondering how employers etc rate the degree over other potential options like Mathematics or Engineering, any thoughts would be appreciated!

Your degree only matters when going for your first job. Once you have experience, nobody is going to care what your degree is in. I worked with lots of programmers who have degrees in all sorts of things.

When I'm interviewing new graduates, or people for intern positions, I don't care what their degree is in. All I care about is how good they can program and how well they can work with others. My advice is to get a degree in what interests you most. If that means programming, then Computer Science or Computer Engineering would be best as that will best prepare you for your career. Personally, I prefer engineering degrees over computer science. The latter tends to focus too much on theory and high-level stuff. I don't care if you know how to design a database from scratch. I do, however, care that you know what a compiler is going to do with your C code and the cost of all that code your writing.

Ultimately, what you get out of college and your potential for a good job is up to you. College doesn't teach you nearly enough to be a good software engineer (e.g. do they even teach revision control systems?). The best programmers/engineers are those that took initiative to learn on their own outside of the classroom. If all you ever learn is what the professors teach you, you won't know enough to get a good job out of college.

New graduates with Computer Science/Engineering degrees and high GPAs are a dime a dozen. Those who only went to class and did nothing else rarely get hired where I work. Start learning all you can now.

maybe a minor in CS or something.

Minors are a waste of time, especially when they are in a field so closely related to your major.
 
Last edited:

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,558
6,058
The best programmers/engineers are those that took initiative to learn on their own outside of the classroom. If all you ever learn is what the professors teach you, you won't know enough to get a good job out of college.

New graduates with Computer Science/Engineering degrees and high GPAs are a dime a dozen. Those who only went to class and did nothing else rarely get hired where I work. Start learning all you can now.

I strongly agree with this. Why wait until you're in school to start learning?
 

Persifleur

macrumors member
Jun 1, 2005
66
0
London, UK
I will agree with other posters that have said it doesn't matter what you study, to a point. As long as it's a STEM subject, it'll broadly work for getting a job in software development. What's most important is the degree classification, so ensure you study a subject that interests you.

I don't work for a technology company, so I tend to hire two classes of developers: those who solve business problems, and those who solve technology problems. The "technology" developer will build frameworks and establish patterns to be used by the "business" developer. Both categories of developer will require software development skills, but I require a higher level of architectural knowledge for the technology developer (and thus pay better for this role). This person will almost always possess a CS or engineering degree, but I don't use this as criteria to short-list candidates. I will interview candidates with nearly any background, as what I'm mostly looking for is evidence of logical thought (sadly lacking these days), problem-solving ability and critical thinking. What matters most is what you know, not what you learned in your degree.
 

softwareguy256

macrumors regular
Jun 5, 2010
131
0
It takes years to be sufficiently good at programming, and it's time most non-computer scientists should not have. The worst thing in life is to be mediocre at everything and be under utilized and therefore under-paid.
 

alice04

macrumors regular
Feb 15, 2013
136
1
Programmers now a days really have big salaries, that's for sure. But if you really want to be one, you can also learn from pros and you can study it on your own. If you want a degree, go for a course that you like that will suit this job.
 

beautifulcoder

macrumors regular
Apr 13, 2013
218
2
The Republic of Texas
Definitely should do Computer Engineering.

No college course will ever tech you how to be proficient at a computer language and apply this knowledge to a real problem.

My suggestion is to get a degree that at least covers the foundation for how computers work. However, this is not sufficient. You would need to spend extra time learning a computer language on your own (a language of your own liking) and figure out how it applies to the real world. Ideally, when you land that first job. You should know good techniques and best practices to solve a particular problem.

One thing I wish someone had told me 10 years ago when I first started my career as a developer is that no one is going teach you how to be a great software engineer. You must learn this yourself. I actually find myself these days spending ~20 hours each week perfecting the craft. It is intoxicating.
 

amorya

macrumors 6502
Jun 17, 2007
252
7
I was wondering whether you thought such a degree was necessary or even beneficial to end up in some kind of programming job?

It's not an absolute requirement. I'm employed as an iOS developer, and my degree's in Psychology. If you don't have a relevant degree though, you'll probably have to spend more effort justifying why a company should hire you.
 

xStep

macrumors 68020
Jan 28, 2003
2,031
143
Less lost in L.A.
Nit pick...

I see people saying Computer Engineering, but the OP wants to "end up in some kind of programming job", not design computers. So I think they should be saying Computer Software Engineering.
 
Last edited:

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,558
6,058
Nit pick...

I see people saying Computer Engineering, but the OP wants to "end up in some kind of programming job", not build computers. So I think they should be saying Computer Software Engineering.

I enjoy knowing how to build a computer even though I have no plans of ever doing so... (I hate getting down and dirty with the hardware in my hands... I inevitably injure myself somehow.)
 

xStep

macrumors 68020
Jan 28, 2003
2,031
143
Less lost in L.A.
I enjoy knowing how to build a computer even though I have no plans of ever doing so... (I hate getting down and dirty with the hardware in my hands... I inevitably injure myself somehow.)

Yea, thee is always a sharp edge to cut your self on. ;)

I really meant low level design instead of build. I adjusted the word.
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,558
6,058
Nit pick...

I see people saying Computer Engineering, but the OP wants to "end up in some kind of programming job", not design computers. So I think they should be saying Computer Software Engineering.

How low level would such a degree go? If it doesn't cover building transistors, I don't think it's going low level enough. I dislike talking to CS majors because they sometimes seem to think of certain components of the computer as a magic box.
 

lee1210

macrumors 68040
Jan 10, 2005
3,182
3
Dallas, TX
I dislike talking to CS majors because they sometimes seem to think of certain components of the computer as a magic box.

There's generally going to be a level people don't understand. That seems OK. Is that machine code? The ISA? Microcode? Instruction pipelines? Blocks of logic? Gates? Transistors? Electron flow? Subatomic particles? The origins of matter?

Does one need to be a theoretical physicist and electrical engineer and computer engineer and computer scientist to be worthy of conversing? Is there no value in respective disciplines being experts in their own field? Is there no progress to be made discussing these topics without both parties being experts?

Sorry, this just really stuck in my craw. CS is largely theoretical in an academic setting.
"Computer Science is no more about computers than astronomy is about telescopes"

Unless one seeks out details themselves, CS will not prepare one to understand the intricacies of their machine. A microbiologist need not be prepared to discuss the intricacies of the optics in a microscope to be effective in their field.

-Lee
 

softwareguy256

macrumors regular
Jun 5, 2010
131
0
go ahead and learn all that stuff and 50% of it will be guaranteed to be useless in any profession. if you are doing VLSI, you won't need to know lambdas. if you are building cutting edge software you won't need to know about MOSFETS. i know people that like to be "smart" but they aren't successful. Usually end up "talking" a lot about arcane things like transistors blah blah. My suggestion to the OP is focus on one thing and be the best at it. That is how you become successful.

How low level would such a degree go? If it doesn't cover building transistors, I don't think it's going low level enough. I dislike talking to CS majors because they sometimes seem to think of certain components of the computer as a magic box.
 

romanhdz

macrumors member
Apr 2, 2010
51
0
From what I gather at my university, Computer Engineering folks seem more hardware focussed, while Computer Science students tend to pay more attention to the software side of things. I can't speak much for CE students, but my CS degree covers more than the usual host of programing technologies. I'm really glad that my degree deals with logic, taking apart / analyzing algorithms, and more theoretical subjects, along with the usual topics. I'd say that a CS and CE degree are just as related as a Math and Physics degree. Same foundation, but different application and focus.
 

mizzouxc

macrumors member
Apr 12, 2010
85
0
Go double E. Programming in just a few years is going to be like learning to type was 10 years ago. Anyone can write code, it's what you do with it that matters. The best coders I know are EE's.

Hi,

Sorry if this is the wrong forum for this - I'm a student in the UK looking to apply to university at the end of this year and am currently leaning in favour of a Computer Science degree at a decent institution with any luck (Cambridge, Imperial, Edinburgh etc). I've had perspectives from student forums etc but given that there's a fair few people in the industry on Macrumors, I was wondering whether you thought such a degree was necessary or even beneficial to end up in some kind of programming job? I'm just wondering how employers etc rate the degree over other potential options like Mathematics or Engineering, any thoughts would be appreciated!
 

haravikk

macrumors 65816
May 1, 2005
1,499
21
I did a Master's degree in Computer Science because I think it sets you up a lot better for work in a wide range of computing professions; although the stuff you learn is more general purpose it should prepare you for any field with just a bit of self-teaching to learn specifics, it also shouldn't focus exclusively on programming but also give some in-depth examination of computing at the hardware level, which is important for knowing how your code will actually run; compilers can do a lot of optimisation but they still don't help when it comes to choosing how to multi-thread your program for things like I/O heavy tasks and so-on.

There's such a range of courses now though that it can be a bit overwhelming, and you can't really say that any one course is better or worse as they should all give you a good range of knowledge, since the industry is moving so quickly that the key skill to learn is how to learn, as there are always new technologies that you will need to master. Computer Science is intended to be general purpose, but to still provide in-depth understanding of general concepts like the hardware capabilities of computers, how to decompose a problem into manageable pieces and identify algorithms that can be used to build the solution, etc., it should prepare students for a wide range of jobs.

It's partly about keeping your options open; loads of people want to get into game development, but there is a lot of other work out there. For example, big banks have their own in-house software development, and they won't be interested in game development degrees, but will leap at computer science graduates as they should be able to work with just any system be it lower or higher level.


Since this is the Mac Programming forum I'll finish with this thought; don't learn to program for OS X/iOS only, the last thing you want is to be tied to a platform. If you learn C/C++ or even C# or Java then you shouldn't find it hard to adapt to Objective-C if an opportunity arises to use it (or you decide you want to do some of your own stuff in that language). Personally I'm of the opinion that if you can learn to work in C and C++, then you're prepared for anything, as the majority of languages borrow from C/C++ heavily, and do a lot of the work for you, meaning they should be easier to learn as a result, but that's just my experience.
 

old-wiz

macrumors G3
Mar 26, 2008
8,331
228
West Suburban Boston Ma
Do Computer Engineering.

At my school in any event, Computer Science majors are too theory heavy and end up disappointing potential employers.

Absolutely! When I was working we had new CS degree people who didn't really know how to deal with large amounts of code or real projects. They were big on theory, but terribly lacking in the real world. They thought they knew a lot about, for example *NIX, then would get on the console and say "we can make this work a lot better by changing permissions.." I would say "no, you can't"...then let them go ahead...resulting in unbootable machine...then showed them how to restore from backup. Twits.
 

skippymac

macrumors 6502a
Jun 9, 2010
592
3
Hampshire, UK
Do Computer Engineering.

At my school in any event, Computer Science majors are too theory heavy and end up disappointing potential employers.

Computer Engineers tend to focus on writing embedded and low level code that's fast. Computer Science tends to focus on writing very high level code. CS majors tend to think of the computer as being magic - CE majors tend to actually know how it works.

I'd suggest doing at least CE, with maybe a minor in CS or something.

I'm assuming you're in the US? Our schooling system is rather different to yours. People tend not to do majors/minors, we just do a degree in a specific subject - more popular or general ones (maths, english literature, economics the list goes on...) will be offered by most universities whilst more specific degrees (marine biology etc) will be offered only by few unis.

It is a less flexible system than yours, I don't know the ins and outs but I would be inclined to believe it would offer slightly better education in that the courses are tailored to work together, at the cost of options and flexibility. (I just remembered the point I was going to make; Few, if any unis in the UK offer CE, it's all CS, though actual taught material differs from uni to uni).

Anyway back on topic - I'm currently on my gap year working for IBM so I think I'm in the year above you. I'm going to study Electronic Engineering in september, and the impression that I get from my department degree-wise is as follows: Most (say 60%) did CS, a significant minority (about 20-30%) did EE and the rest did something else, usually business related.

So my advice would be to study what compels you most, as really after getting a graduate job you can do anything vaguely related to your field of study. (One piece of advice that I've been given and would say is probably sound is don't skimp on any opportunities to do business or statistics related modules)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.