Mechanical Engineering or CS Degree

In summary, according to a conversation with a friend, it is true that many companies prefer to teach mechanical engineers how to program rather than hiring computer science graduates for programming roles. However, this may not be true in all cases as formal education in computer science can provide valuable skills such as problem-solving, understanding of complexity theory and data structures, and knowledge of concurrent systems. Ultimately, the choice between mechanical engineering and computer science may depend on the individual's career goals and interests, with a CS degree being more beneficial for those interested in advanced programming roles such as in robotics.
  • #1
zachdr1
91
0
So I was talking to one of my friends who is a huge programmer, and he said that you don't even need a computer science degree to work in software. He said that companies would rather teach a mechanical engineer how to program, than a computer science grad how to problem solve, and that out of the 15 programmers his company has, only 2 have CS degrees.

Is this actually true?

I am currently pursuing an associate degree in Mechanical Engineering, and have been thinking about switching to CS because it seems like something that I would like. Hearing this is making me reconsider though, as I very much enjoy mechanical engineering as well.

I hope to go into management at some point, and I want to work on something that has to deal with robotics. I honestly think the programming side of robotics is what I'm interested in the most, which is why I was thinking about switching to CS.
 
Physics news on Phys.org
  • #2
zachdr1 said:
He said that companies would rather teach a mechanical engineer how to program, than a computer science grad how to problem solve...Is this true?
In the general case, no.
 
  • #3
It is true that companies looking for programmers are often more interested in programming skills than credentials. However, it is also true that people who have not gone through formal classes think their programming skills are better than they are. (CS majors may not be any better, but they usually know what they don't know)
 
  • #4
zachdr1 said:
He said that companies would rather teach a mechanical engineer how to program, than a computer science grad how to problem solve

It's true . A hundred times over .
 
  • #5
Speaking as a CS graduated here. Learn how to code is one thing. Learn how to code right is another. And learn how to think in a programming manner is even another.

Sure you can learn how to code, this is easy. It is like learning a new language (though much more logical). Pick a language and learn its commands. This, however, only allows you to do the more simpler stuff on the programming market. I know a handful of coders that have nice Jobs, but all they do is to write a bunch of boring codes (very repetitive, simple, not much logic and usually very bounded to a specific technology - like Microsoft C#, for example).

To code right is to know, for example, complexity theory and the more fundamental stuff (as in What type of operations are faster, how to avoid cache miss, disk access, use pointers if you are in low level). All that is hard to just make a training and learn at once. It takes time, and it takes time of the company because until you start making optmized code, for example, it will be a long road. Most people I know working on the core algorithms running inside top softwares are CS guys, or math or physics with CS MSc or Phd.

To think in a programming manner is to know how to tackle problems using the known structures that are already available (and a lot of times proved correct). For example, to know the best data structures for each situation, graphs. How to know if a given problem is P, or NP-Complete, and not to waste time trying to create an exact algorithm that won't scale, when you should really be going for an heuristic. Also there is the knowledge on concurrent systems, avoiding deadlocks, starvation which are all simple, but you got to have the knowledge built from some long road, you don't learn in one day. And all that lack of knowledge can have big costs to the company. For most top level jobs in programming, where you almost don't code, but rather think on how others will code, basically everyone I know today is from CS, or CE.

TL;DR : Yes, you can learn how to code, and most companies do teach that. But they won't teach you things that sometimes are needed to work on more top systems or core system, like critical.

EDIT: Just to be clear, I'm not saying you can't learn that stuff. I'm just saying that a company won't teach you most of that. And when they need this knowledge they will likely rire a CS guy. I have been tô a Google interview and they covered lots of knowledge specific to the CS degree.

Also, CS is not a big school on programming. In fact I had only two classes during the entire course that actually thaught me how to code.
 
Last edited:
  • #6
lonatico said:
In fact I had only two classes during the entire course that actually thaught me how to code.

Yes, but as you point out, it is often more important to know what to code.
 
  • #7
Vanadium 50 said:
Yes, but as you point out, it is often more important to know what to code.

Oh indeed. I was just making the point that CS is not about coding stronger.

On another note about the problem solving skills. I think that all math related courses develop their own set of problem solving skills. I know a lot of people from engineering that are very good at their fields (civil, mechanic, chemestry) but have trouble coding, and usually come to me for aid. CS does prepare you with solving skill, is just that they are directed at CS problems, which are usually very abstract.

If the OP wants to work with robotics, specially the programming side, I would suggest going for a CS degree, or completing the ME and going for a CS MSc and Phd. In my university the robotics center is in the CS departament. They work with all the software and hardware side. They work, for example, with AI applied to robotics, and for that one should be familiarized with the main algorithms and techniques existing in AI.
 
  • #8
If the OP is interested in robotics, I strongly urge him/her to stay with the ME studies. This will teach much more about WHAT is needed, and as has be pointed out, it is no great trick to learn to write computer code. The robotics person needs to understand more about kinematics and dynamics, as well as forces, so that he/she will know what calculations are needed.
 

1. What is the difference between a Mechanical Engineering and CS degree?

While both degrees involve the application of math, science, and technology, a Mechanical Engineering degree focuses on designing and building physical systems and machines, while a CS degree focuses on designing and developing software and computer systems.

2. What career opportunities are available with a Mechanical Engineering or CS degree?

With a Mechanical Engineering degree, one can pursue careers in industries such as automotive, aerospace, manufacturing, and energy. With a CS degree, one can pursue careers in industries such as technology, software development, cybersecurity, and data science.

3. What skills are necessary for success in a Mechanical Engineering or CS degree?

Both degrees require strong analytical, problem-solving, and critical thinking skills. Mechanical Engineering also requires strong math and physics skills, while CS requires strong programming and coding skills.

4. Is one degree more valuable than the other?

Both degrees have their own value and can lead to successful and fulfilling careers. The value of a degree depends on one's interests, skills, and career goals. It is important to choose a degree that aligns with one's strengths and passions.

5. Can I switch from a Mechanical Engineering to a CS degree, or vice versa?

While it is possible to switch between these degrees, it may require additional coursework and time. It is important to carefully consider one's interests and career goals before making a decision to switch degrees. Consulting with academic advisors can also provide helpful guidance in this process.

Similar threads

Replies
3
Views
84
  • STEM Academic Advising
Replies
12
Views
937
  • STEM Academic Advising
Replies
3
Views
2K
  • STEM Academic Advising
Replies
1
Views
441
Replies
3
Views
819
  • STEM Academic Advising
Replies
3
Views
839
  • STEM Academic Advising
Replies
3
Views
408
  • STEM Academic Advising
Replies
4
Views
953
  • STEM Academic Advising
Replies
8
Views
4K
Replies
2
Views
933
Back
Top