Computer Science Degree?

Discussion in 'Mac Programming' started by TheAngusBurger, Apr 13, 2013.

  1. macrumors member

    Mar 30, 2008

    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. macrumors 6502a


    Jan 10, 2012
    /home @
    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.
  3. macrumors 6502

    Mar 12, 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.
  4. macrumors 604


    Nov 26, 2007
    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.
  5. mslide, Apr 13, 2013
    Last edited: Apr 13, 2013

    macrumors 6502a

    Sep 17, 2007
    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.

    Minors are a waste of time, especially when they are in a field so closely related to your major.
  6. macrumors 604


    Nov 26, 2007
    I strongly agree with this. Why wait until you're in school to start learning?
  7. macrumors member

    Jun 1, 2005
    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.
  8. macrumors regular

    Jun 5, 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.
  9. macrumors regular


    Feb 15, 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.
  10. macrumors regular

    Apr 13, 2013
    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.
  11. macrumors 6502

    Jun 17, 2007
    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.
  12. macrumors 604


    May 28, 2005
    Computer Engineering. I wouldn't even consider CS if I were to go back and do it all over again.
  13. xStep, Apr 18, 2013
    Last edited: Apr 19, 2013

    macrumors 68000

    Jan 28, 2003
    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.
  14. macrumors 604


    Nov 26, 2007
    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.)
  15. macrumors 68000

    Jan 28, 2003
    Less lost in L.A.
    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.
  16. macrumors 604


    Nov 26, 2007
    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.
  17. macrumors 68040


    Jan 10, 2005
    Dallas, TX
    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.

  18. macrumors regular

    Jun 5, 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.

  19. macrumors member

    Apr 2, 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.
  20. macrumors member

    Apr 12, 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.

  21. macrumors 65816

    May 1, 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.
  22. macrumors 604

    Mar 26, 2008
    West Suburban Boston Ma
    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.
  23. macrumors 6502a


    Jun 9, 2010
    Hampshire, UK
    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)

Share This Page