Register FAQ / Rules Forum Spy Search Today's Posts Mark Forums Read
Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Apr 13, 2013, 05:34 AM   #1
TheAngusBurger
macrumors member
 
Join Date: Mar 2008
Computer Science Degree?

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!
__________________
2.66 Ghz iMac
TheAngusBurger is offline   0 Reply With Quote
Old Apr 13, 2013, 06:24 AM   #2
DesertEagle
macrumors 6502a
 
DesertEagle's Avatar
 
Join Date: Jan 2012
Location: /home @ 127.0.0.1
Quote:
Originally Posted by TheAngusBurger View Post
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.
DesertEagle is offline   0 Reply With Quote
Old Apr 13, 2013, 07:18 AM   #3
willieva
macrumors 6502
 
Join Date: Mar 2010
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.
willieva is offline   0 Reply With Quote
Old Apr 13, 2013, 08:45 AM   #4
ArtOfWarfare
macrumors 601
 
ArtOfWarfare's Avatar
 
Join Date: Nov 2007
Send a message via Skype™ to ArtOfWarfare
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.
ArtOfWarfare is online now   0 Reply With Quote
Old Apr 13, 2013, 10:09 AM   #5
mslide
macrumors 6502a
 
Join Date: Sep 2007
Quote:
Originally Posted by TheAngusBurger View Post
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.

Quote:
Originally Posted by ArtOfWarfare View Post
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 by mslide; Apr 13, 2013 at 10:15 AM.
mslide is offline   1 Reply With Quote
Old Apr 13, 2013, 07:48 PM   #6
ArtOfWarfare
macrumors 601
 
ArtOfWarfare's Avatar
 
Join Date: Nov 2007
Send a message via Skype™ to ArtOfWarfare
Quote:
Originally Posted by mslide View Post
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?
ArtOfWarfare is online now   0 Reply With Quote
Old Apr 14, 2013, 04:08 AM   #7
Persifleur
macrumors member
 
Join Date: Jun 2005
Location: 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.
Persifleur is offline   0 Reply With Quote
Old Apr 14, 2013, 07:18 AM   #8
softwareguy256
macrumors regular
 
Join Date: Jun 2010
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.
softwareguy256 is offline   0 Reply With Quote
Old Apr 14, 2013, 07:29 AM   #9
alice04
macrumors regular
 
Join Date: Feb 2013
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.
alice04 is offline   0 Reply With Quote
Old Apr 14, 2013, 08:52 AM   #10
beautifulcoder
macrumors regular
 
Join Date: Apr 2013
Location: 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.
beautifulcoder is offline   0 Reply With Quote
Old Apr 15, 2013, 09:11 AM   #11
amorya
macrumors regular
 
Join Date: Jun 2007
Quote:
Originally Posted by TheAngusBurger View Post
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.
amorya is offline   0 Reply With Quote
Old Apr 18, 2013, 10:09 PM   #12
thejadedmonkey
macrumors 604
 
thejadedmonkey's Avatar
 
Join Date: May 2005
Location: Pa
Send a message via AIM to thejadedmonkey
Computer Engineering. I wouldn't even consider CS if I were to go back and do it all over again.
__________________
MacBook 17" MacBook Pro iPod Nano Apple TV
PS4 Custom Windows 8.1 Desktop WP8
"Good judgment comes from experience,
experience comes from bad judgment."
- Mulla Nasrudin
thejadedmonkey is offline   0 Reply With Quote
Old Apr 19, 2013, 12:03 AM   #13
xStep
macrumors 68000
 
Join Date: Jan 2003
Location: Lost in Minneapolis
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 by xStep; Apr 19, 2013 at 07:19 AM. Reason: Change build to design.
xStep is offline   0 Reply With Quote
Old Apr 19, 2013, 05:14 AM   #14
ArtOfWarfare
macrumors 601
 
ArtOfWarfare's Avatar
 
Join Date: Nov 2007
Send a message via Skype™ to ArtOfWarfare
Quote:
Originally Posted by xStep View Post
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.)
ArtOfWarfare is online now   0 Reply With Quote
Old Apr 19, 2013, 07:17 AM   #15
xStep
macrumors 68000
 
Join Date: Jan 2003
Location: Lost in Minneapolis
Quote:
Originally Posted by ArtOfWarfare View Post
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.
xStep is offline   0 Reply With Quote
Old Apr 19, 2013, 07:58 AM   #16
ArtOfWarfare
macrumors 601
 
ArtOfWarfare's Avatar
 
Join Date: Nov 2007
Send a message via Skype™ to ArtOfWarfare
Quote:
Originally Posted by xStep View Post
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.
__________________
Battery Status - On the Mac App Store
The only app that'll estimate when your wireless devices will need their batteries changed.
Including the ones paired with other Macs on your network.
ArtOfWarfare is online now   0 Reply With Quote
Old Apr 19, 2013, 10:49 AM   #17
lee1210
macrumors 68040
 
lee1210's Avatar
 
Join Date: Jan 2005
Location: Dallas, TX
Quote:
Originally Posted by ArtOfWarfare View Post
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
lee1210 is offline   3 Reply With Quote
Old Apr 19, 2013, 09:31 PM   #18
softwareguy256
macrumors regular
 
Join Date: Jun 2010
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.

Quote:
Originally Posted by ArtOfWarfare View Post
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.
softwareguy256 is offline   0 Reply With Quote
Old Apr 19, 2013, 09:42 PM   #19
romanhdz
macrumors member
 
Join Date: Apr 2010
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.
romanhdz is offline   0 Reply With Quote
Old Apr 19, 2013, 11:10 PM   #20
mizzouxc
macrumors member
 
Join Date: Apr 2010
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.

Quote:
Originally Posted by TheAngusBurger View Post
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!
mizzouxc is offline   0 Reply With Quote
Old Apr 20, 2013, 05:22 AM   #21
haravikk
macrumors 65816
 
Join Date: May 2005
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.
__________________
"Early 2008" MacPro, 2 x 3.2ghz Quad-Core Xeons, 10gb DDR2 800mhz ECC RAM, 120gb Solid State Drive (Mac & Windows OS), 4 x 750gb hard-drives (striped, users/files), NVidia GeForce 8800GT (512mb).
haravikk is offline   0 Reply With Quote
Old Apr 29, 2013, 06:05 PM   #22
old-wiz
macrumors 604
 
Join Date: Mar 2008
Location: West Suburban Boston Ma
Quote:
Originally Posted by ArtOfWarfare View Post
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.
old-wiz is offline   0 Reply With Quote
Old Apr 29, 2013, 07:38 PM   #23
skippymac
macrumors 6502a
 
skippymac's Avatar
 
Join Date: Jun 2010
Location: Hampshire, UK
Quote:
Originally Posted by ArtOfWarfare View Post
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)
__________________
13" 2.4GHz 2010 MBP, 8GB RAM, 1TB HDD/128GB SSD
32GB Red Nexus 5 | 32GB Nexus 7 2012
skippymac is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 01:20 PM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC