Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2

Author Topic: Mech Eng vs Comp Sci  (Read 3530 times)

Immortal

  • Bay Watcher
    • View Profile
Mech Eng vs Comp Sci
« on: May 12, 2011, 08:23:48 pm »

Hello everyone,
I post once in a while, run or participate in a forum game or two, talk in suggestions when a topic strikes me.
Anyways I am hear asking for advice. I am 18 and soon off to university, I have been accepted into two programs at the University of Waterloo, and they are as the title says, Mechanical Engineering, and Computer Science.
I am curious if any of you work in the aforementioned fields or ones very close too, if you could give me insights into the job availability, what you do? if you are currently studying the programs what is the likelihood to get a co-op job?
If you have no relation to the field I would still appreciate any comments.
Logged

Bouchart

  • Bay Watcher
  • [NO_WORK]
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #1 on: May 12, 2011, 09:06:52 pm »

Both are good fields to go into, and you can't really go wrong with either.  Maybe you could major in one and minor in the other.
Logged

devek

  • Bay Watcher
  • [KILL_EVERYTHING]
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #2 on: May 12, 2011, 09:30:49 pm »

Take mechanical engineering, but try to focus as much as you can on math.

Any type of engineering work requires the credentials of an engineering degree. An engineering (or any math) degree qualifies for computer programming because you have to learn C and Fortran to be good at your job.

Programming is a subset of calculus. I remember when I took calculus I already knew everything in it, I just didn't know the terms. You're going to end up knowing how to program no matter what.

Logged
"Why do people rebuild things that they know are going to be destroyed? Why do people cling to life when they know they can't live forever?"

Vector

  • Bay Watcher
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #3 on: May 13, 2011, 12:49:09 am »

I almost went into mechanical engineering, and then I almost went into compsci, and then I went into math because the people in the first one were boring and the problems in the second were boring.  Programming is (for me, at least) kind of trivial a lot of the time.  I realize I may have just been hitting the beginning, but all the same... eh.

Mathematics doesn't require knowledge of programming to be good at your job if you're on the pure side, but if you're on the applied side, then, well... yeah, you'd better know how to program.

Anyway, between the two I don't really know which I'd pick.  Mechanical engineering actually gave me some helpful skills for the math degree I'm working on.  Sometimes a professor will say "Okay, design a machine that does x based on this theorem," and then I can draw up a rough schematic in about twenty seconds.  It also helped with some of the thinking outside of the box stuff.

And, on top of that, I'm really not fond at all of the social scene in programming.  Got along a lot better with the engineers.  Don't get along with physicists either, though, so YMMV.  I'm definitely more of a mathy person.

All the same, I did find coding kind of relaxing, but I'm the sort of person who enjoys sitting down in front of a computer and working on a single problem for 36 hours over two days.  So, don't take my word on it, but give it a think.
Logged
"The question of the usefulness of poetry arises only in periods of its decline, while in periods of its flowering, no one doubts its total uselessness." - Boris Pasternak

nonbinary/genderfluid/genderqueer renegade mathematician and mafia subforum limpet. please avoid quoting me.

pronouns: prefer neutral ones, others are fine. height: 5'3".

Rysith

  • Bay Watcher
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #4 on: May 13, 2011, 09:34:43 am »

Any type of engineering work requires the credentials of an engineering degree. An engineering (or any math) degree qualifies for computer programming because you have to learn C and Fortran to be good at your job.

Programming is a subset of calculus. I remember when I took calculus I already knew everything in it, I just didn't know the terms. You're going to end up knowing how to program no matter what.

Quote from: dijkstra
Computer science is no more about computers than astronomy is about telescopes.

It's not about knowing the tools. Also, almost nobody uses C or FORTRAN anymore, or even the programming paradigms that they represent. And if you want to choose a subset of math for programming to be a subset of, you'd be better off choosing set theory[1].

A good computer science degree (as I understand Waterloo has) will focus not so much on the programming, but on how to think about the programming and algorithms and express them using whatever language and paradigm is most appropriate. As a holder of a CS degree, I'd say that the job prospects (both for internships and post-college employment) are fairly good. I can't say if they are better than what you could get with a ME degree, and would generally suggest that both of them will likely be fine job-wise, and so you should choose the one that you would enjoy more.

I'd also say that diversity is good, and so if possible you shouldn't limit yourself to one (as was suggested, majoring in one while minoring in the other, or something). The more different angles you can think about a problem from, the better.

[1] Programming can be thought of as an application of the lambda calculus, but that is calculus in that it calculates, not in that it involves integrals and so on.
Logged
Lanternwebs: a community fort
Try my orc mod!
The OP deserves the violent Dwarven equivalent of the Nobel Peace Prize.

devek

  • Bay Watcher
  • [KILL_EVERYTHING]
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #5 on: May 13, 2011, 09:57:58 am »

It's not about knowing the tools. Also, almost nobody uses C or FORTRAN anymore, or even the programming paradigms that they represent. And if you want to choose a subset of math for programming to be a subset of, you'd be better off choosing set theory[1].

Lol, so what do you think nuclear engineers are using? Visual Basic?

If you were serious, I suppose I shall laugh harder.
Logged
"Why do people rebuild things that they know are going to be destroyed? Why do people cling to life when they know they can't live forever?"

ILikePie

  • Bay Watcher
  • Call me Ron
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #6 on: May 13, 2011, 10:23:30 am »

Brainfuck is where it's at nowadays.

...

I think FORTRAN was replaced almost entirely by MATLAB. I've seen MATLAB on almost all computers (that is, all computers that I've seen) at the Weizmann Institute and such, but MATLAB's expensive.
« Last Edit: May 13, 2011, 10:32:02 am by ILikePie »
Logged

devek

  • Bay Watcher
  • [KILL_EVERYTHING]
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #7 on: May 13, 2011, 10:32:17 am »

MATLAB is awesome, my car audio wouldn't sound as good as it did without it.

However, its cost is more than financial. Keep in mind a lot of work we do still takes hours/days/weeks even on supercomputers. With FORTRAN you get performance and correct calculations, so there is that.
Logged
"Why do people rebuild things that they know are going to be destroyed? Why do people cling to life when they know they can't live forever?"

Immortal

  • Bay Watcher
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #8 on: May 13, 2011, 03:28:45 pm »

Thanks guys, in case it matters, I enjoy programming, but I hate the scene, I usually sit alone in my computer classes because I'm more of a umm a party kid. I like doing physics problems and learning and designing stuff and I like the people that it comes with... most of the time. Anyways thanks for the comments, and c is still a staple, thought my teacher mentioned using fortran when he still working as a programmer.
Logged

Nadaka

  • Bay Watcher
    • View Profile
    • http://www.nadaka.us
Re: Mech Eng vs Comp Sci
« Reply #9 on: May 13, 2011, 05:22:07 pm »

I have a computer science degree. Programming is a lot more than just being able to make some code that works. And computer science is a lot more than just programming. But it is a rare job that lets you actually use that education. 95% of what I do is boring tedious repetitive bullshit. 5% is interesting, but it is classified and I can't talk about it.
Logged
Take me out to the black, tell them I ain't comin' back...
I don't care cause I'm still free, you can't take the sky from me...

I turned myself into a monster, to fight against the monsters of the world.

Vector

  • Bay Watcher
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #10 on: May 13, 2011, 06:08:31 pm »

And if you want to choose a subset of math for programming to be a subset of, you'd be better off choosing set theory[1].

[...]

[1] Programming can be thought of as an application of the lambda calculus, but that is calculus in that it calculates, not in that it involves integrals and so on.

I don't have a degree in compsci, but I have enough of a degree in pure mathematics to suggest a background in abstract algebra as well/instead (though recursion theory is even more applicable, if generally taught at a level far too elementary to be really useful; and furthermore, the Church-Turing Thesis is mad hax in terms of teaching one to rigorously define functions, and really promotes laziness at introductory levels).

The reason why I say this is that, much as analysis is all about finding clever upper and lower bounds for things, algebra is all about finding clever functions.  One does almost nothing else.

Set theory is good, too, but in general one doesn't get into the definition of clever functions very quickly... the earliest theorems I can think of to really exploit functions (having rigorously defined them, which takes a while) are the Schroder-Bernstein Theorem, proof of equivalence of existence of a right inverse for all surjective functions and AoC, and maybe, in a very elementary way, the set-theoretical definition of natural numbers/principle of recursive definition.

With algebra, on the other hand, one tends to get the concept of a morphism almost right away, having defined a couple of binary structures, and then you are on the road to crying about kernels and well-defined formulae.  By the second week.  It is very wonderful, and very, very exhausting.

And, furthermore, number theory is usually taught (at least at the beginning) through algebra, which will drill the importance of a quick algorithm into your head very, very quickly (I am looking straight at you, Extended Euclidean Algorithm.  Straight at you).

But if you want to work with rapid convergence, what you really need is a strong background in real analysis... I was first introduced to big O notation in a mathematical text, after all.

And then linear algebra is of absolutely vital importance for a lot of applications, and also tends to cover programming concepts extensively.

Of course, there's also discrete mathematics, which is very interested in much of the combinatorial things one might find useful... and, again, fast algorithms (at least as I learned it, both before college and during).


*sigh*

Well, as one of my professors has informed me, every great computer scientist began with his or her feet solidly drenched in pure mathematics.  Of course, that person is somewhat biased, but you may take his words or leave them as you like.
Logged
"The question of the usefulness of poetry arises only in periods of its decline, while in periods of its flowering, no one doubts its total uselessness." - Boris Pasternak

nonbinary/genderfluid/genderqueer renegade mathematician and mafia subforum limpet. please avoid quoting me.

pronouns: prefer neutral ones, others are fine. height: 5'3".

sneakey pete

  • Bay Watcher
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #11 on: May 13, 2011, 08:21:42 pm »

Any type of engineering work requires the credentials of an engineering degree. An engineering (or any math) degree qualifies for computer programming because you have to learn C and Fortran to be good at your job.

Funny, they don't teach C in the mechanical engeering i'm doing. most of it is about Mechanics, which is pretty different to programming. Considering stresses in systems, strength, fracture toughness etc of materials, dynamic properties of systems.

Not to say we don't use Matlab and python, but getting into more intense programming languages like that is in no way a core of mechanical engineering. (or maybe some of the background info that we went over on how FEA programs work is actually a type of programming similar to C and i don't realise it, but somehow i doubt it. We don't make the FEA packages, we use em). While its possible to tailor a Mech eng degree to be similar to computer science, its not really what most people do in a mech eng degree.
« Last Edit: May 13, 2011, 08:29:17 pm by sneakey pete »
Logged
Magma is overrated.

GlyphGryph

  • Bay Watcher
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #12 on: May 14, 2011, 08:56:26 am »

Quote
I enjoy programming, but I hate the scene, I usually sit alone in my computer classes because I'm more of a umm a party kid.

I do not see why that would be that big an issue. While there may be LESS party people in CS than some other fields, they are there AND you can party with other people too. Especially if you join a Frat or something.

Honestly, engineers do seem to like to party a lot, but I found their parties pretty miserable a good portion of the time. You gotta make theatre friends, as theatre parties are far and away the most fun.

Vector
Quote
Well, as one of my professors has informed me, every great computer scientist began with his or her feet solidly drenched in pure mathematics.
Considering the great computer scientists I've known, I'd honestly say this is probably true. Of course, that might be in part because computer science was previously a focus in a maths major rather than its own thing...
Logged

Rysith

  • Bay Watcher
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #13 on: May 14, 2011, 11:46:33 am »

It's not about knowing the tools. Also, almost nobody uses C or FORTRAN anymore, or even the programming paradigms that they represent. And if you want to choose a subset of math for programming to be a subset of, you'd be better off choosing set theory[1].

Lol, so what do you think nuclear engineers are using? Visual Basic?

If you were serious, I suppose I shall laugh harder.

No, I think that nuclear engineers aren't computer scientists and don't represent the vast majority of things that you would do with a computer science degree. Both C and FORTRAN are still used, but they aren't the skills that you'd need to be qualified as a computer scientist, or the programming paradigms that you'd need outside of the more hardcore engineering disciplines.

Even some of the serious supercomputing stuff is moving away from C/MPI and similar to things that are easier to deal with[1], like Java (or, as was mentioned MATLAB and Python) because it's comparable performance-wise and much easier to develop in the first place (or, in some cases, handles the presence of shared-memory architectures much more safely)

Though, by all means, if you want to go into Engineering you don't need the stuff that a CS degree would teach you about programming.

[...snip...]

This probably shows that I don't have enough of a pure math background. Back to graduate school with me!

When I think of the theoretical CS stuff that I learned, it didn't even bother itself with the algorithms so much as the set of inputs, the set of outputs, and the set of machines that could transform the input to the output - the existence of an algorithm rather than an actual implementation, which seemed more like set theory to me, though I'll admit that I'm not familiar enough with where different disciplines fall within math to actually make that judgement.

Quote
I enjoy programming, but I hate the scene, I usually sit alone in my computer classes because I'm more of a umm a party kid.

I do not see why that would be that big an issue. While there may be LESS party people in CS than some other fields, they are there AND you can party with other people too. Especially if you join a Frat or something.

This. Choosing a major based on what the scene is like doesn't seem like a very good idea, especially since there isn't any reason why you have to restrict the people you hang out with to people in your major - I was CS, but hung out with the physicists (and materials/biomedical engineers) more than other CS people.

[1] Where they aren't moving to CUDA/whateverATI'sthing is, which is an entirely different pain in the neck.
Logged
Lanternwebs: a community fort
Try my orc mod!
The OP deserves the violent Dwarven equivalent of the Nobel Peace Prize.

devek

  • Bay Watcher
  • [KILL_EVERYTHING]
    • View Profile
Re: Mech Eng vs Comp Sci
« Reply #14 on: May 14, 2011, 12:30:22 pm »

No, I think that nuclear engineers aren't computer scientists and don't represent the vast majority of things that you would do with a computer science degree.

Computer science goes far beyond knowing how to use a programming language. It is like welding, some guys use it to repair mufflers and some guys use it to build skyscrapers. Programming is used by many professions, and to say certain languages are not useful because they are only useful when doing real work raises the question "Why go to school at all?"

If someone just wants to build hand tool, bike sheds, and write a few basic websites they are wasting their money getting an education because they will never recoup the financial investment. They can set up shop right now and just Google everything they need to do. :P

Once you learn the basics of programming, which you could do with a class on pascal for crying out loud, you can pick up any language in a matter of days or weeks. The only people that find C or Fortran hard are people who don't know how to program. Once you do know how to program, you would be screwing yourself not learning the various languages that are used in your field.

When I think of the theoretical CS stuff that I learned, it didn't even bother itself with the algorithms so much as the set of inputs, the set of outputs, and the set of machines that could transform the input to the output.

Just for giggles I'll throw out what I am working on right this second. Lets say my input is the content of Dwarf Fortress' memory and the output is a beautiful 3d rendered scene. I can not load down the cpu on a large embark. How would your unit testing approach solve that?
Logged
"Why do people rebuild things that they know are going to be destroyed? Why do people cling to life when they know they can't live forever?"
Pages: [1] 2