MechE vs CS for career in robotics?

I’m currently a senior in HS and am interested in going into robotics as a career, but majoring in robotics specifically is risky because it could leave me with a limited amount of job possibilities. I was originally thinking of majoring in EE, but am now veering more towards either MechE or CS since I’m interested in both the design and the programming aspect of robotics. However, I’m having trouble choosing between the two because I would be happy in either of those aspects (although maybe a little bit more in design).

In terms of job prospects within the robotics field (and in general too in case I’m no longer interested in robotics in the future), which is better?

Also, I have heard that it is harder to switch into CS than it is to switch out into an engineering major - how true is this in general (I can provide a list of colleges I’m applying to if that would be useful)? If that’s true I might just apply for CS and switch once in college if I feel MechE is better for me.

Thank you!

(crosspost from the math/CS forum at the advice of one of the posters)

You’ve seen my responses in the CS forum, but I’ll chime in here. CS teaches programming. You’ll get no background in ME and EE, both of which are required for robotics. If you choose ME on the other hand, adding the bit of programming you need is quite possible. As robots get more complicated they might use CSs for the programming, but they’ll have no hand in the mechanical design. Say more about what you think “doing robotics as a career” entails.

@eyemgh based on your comment and those on my other post, I think I’ll major in ME and minor in CS, since ME aligns more with my interests. I think for me, “doing robotics” is about designing, creating, and testing robots (so definitely lots of hands-on work). That might be too broad - do you want me to elaborate? Say, on what types of robots I want to work on specifically?

Can you elaborate on what you mean when you say that as robots become more complex “they’ll have no hand in the mechanical design”?

As machines become more complicated it increases the likelihood that there will be a team of specialists working on them. In robotics, you could have MEs, EEs, CSs even Civils all working on the project. The thing you need to know is that the CSs would be doing what CSs do, writing code. That’s it. If you are fascinated by that aspect of robotics, by all means, choose CS. As I read though, it doesn’t sound like that’s where your interests are.

As for the minor, don’t waste your time. You’ll have to waste valuable class space taking classes that aren’t germane to what you want to do to get a piece of paper employers don’t value. Instead, focus on taking tech electives that will further your knowledge in what interests you. IF you fall into a minor, well then…ok, but don’t do it for the purpose of the paper.

The only thing I’m hesitating on when it comes to majoring in ME is the job prospects in robotics - do you know if there are plenty of jobs, or if there’s a high chance I might end up with a job I don’t like? Reading up on ME, sure, I like the robotics option, but the other potential jobs that are a big part of ME aren’t really for me. I guess I’m just worried about the likelihood of that happening.

That will depend entirely on the program you choose and how many tech electives they have that are applicable to robotics (controls, Mechatronics, machine learning, etc.). I would have to think you are far more likely to get a job in robotics with a well tailored ME degree than a CS degree.

What experience do you expect to get in a CS curriculum that is applicable to “hands on” robotics design? If you get a CS degree and can’t land a job in robotics, will you be content typing code all day? Even if you do, will you be content typing code all day for robots? You will not be designing any of the mechanical features as a CS grad.

Certainly others more experienced than I can and should chime in. My only experience is through my son who has a pretty broad background in the area that interests you.

Agree that a major in Mech E and minor in robotics (if offered at your school) or CS is going to keep doors open for you.

@eyemgh exactly, I won’t be happy coding all day, which is why I’m leaning toward ME. Tbh I would prefer a combination of the two but I know that’s probably not realistic so I’ll go for the one I like better.

@jym626 thanks for the response! That’s what I’m leaning toward right now.

A minor in CS is probably a waste of time. Look at the required classes for a minor in CS and determine how many of them will be applicable in any way towards robotics. My guess is not many, but for argument, let’s say it’s 75%. That means the hours you need for the other 25%, related in no way to robotics, will crowd out actual robotics classes. For what? A piece of paper. Take the classes that forward your ambitions, not those that result in useless paper.

Also, you aren’t going to find a lot of programs with majors or minors in robotics per se. You might have to look for mechatronics, controls or system dynamics. You might also search for concentrations as opposed to minors.

What state are you from and where are you considering applying to?

My son went through a similar experience looking for a program to combine EE, ME and CS not knowing which should be his intended major. His high school experience was a full science curriculum through AP Bio, Chem and Physics plus BC calc. He thoroughly enjoyed all subjects. Programming was self taught for three of his ECs, all tangible project based. We did not want to pay for a robotics degree without a traditional engineering core as a second major.

We are both MEs, so we had a good idea of questions to ask him. First and foremost, do you enjoy the hands-on component while working on mechatronics? How important? Would you be happy to program all day and just hand off your code to another group on the team? EEs of our generation wired and tested boards, but that was a different era and most everything is computer developed and tested. After visiting departments and labs, he decided ME because he enjoys the hands-on components and much of an ME curriculum cannot be self taught.

Problem #2. Although all schools he looked at were ABET certified, curriculum is different with a varying amount of elective flexibility. Look for programs with flexibility and relationships between the three departments. Most schools with robotics departments are, even of their robotics department is only an MS/PHD program. WPI, CMU and UPENN are northeast schools with robust robotics programs and flexibility.

You are asking the right questions. Keep visiting departments, but remember that you will have all of freshman year to explore while you complete the core with the rest of the engineering freshman class. Take a CS and an intro to ME class first semester. Schools with robotics, a focus on interdisciplinary approach to engineering and numerous electives will fit you best.

I’d add a few things to @KLSD’s great post.

One, inter-department flexibility is not the only way to get the breadth you need. This is highly dependent on how the school achieves the objective. At my son’s school (Cal Poly) for example, the first circuits course that all MEs take is an EE course, taught through the EE department. From there though, most everything else Electrical related is taught in the ME department. They have multiple mechatronics and robotics lab spaces and classes in the ME department. As an interesting side note, they don’t overlap in AE either. Both departments have multiple wind tunnels and separate fluids curricula. His department is giant (roughly 1000 ME undergrads) and is very well resourced. The point is, you need to be able to get the three areas (ME, EE and CS). How you arrive there can vary by school. You need to look at concentrations and/or minors available, and their curriculum charts.

Two, the program need not have the name “robotics” in it anywhere. As @KLSD alluded to, there are actually very few of them. You can’t even get a stand alone undergraduate degree in robotics at CMU. Nearly everyone working in robotics does not have a degree with robotics in its title. There just aren’t many of them out there.

Pull some job descriptions off of Indeed with a keyword search of “Robotics Engineer,” Amazon Robotics or Formlabs for example, and look for the qualifications they are looking for. They don’t typically ask for " robotics" experience, but rather things like “experience with controls systems,” or " experience with electro-mechanical systems. "

Third, you may or may not have all freshman year to explore. Not all schools use this style of curriculum. Some, like Oregon State use a very old style, 2 years of pre-engineering. Some, like Purdue, do one year together, and then compete to get the major of choice. Some, like my son’s school, have students compete for major at admissions and hit the ground running in major day one. Each has strengths and weaknesses. With the former, you might not get your major. The latter can be hard to switch.

Lastly, pay very careful attention to something @KLSD said… “Self Taught.” You can teach yourself many of the programming aspects you will need. My son is self taught in both C+ + and Python and uses both extensively.

Good luck!

Look at the WPI Robotics major, and it’s required courses.
Likely many of the same as EE and ME majors, less CS.
Good to have experience with all 3 but in college figure out which you are best at and focus on that.

In ME, you will probably be doing programming in classes that aren’t considered programming courses. Maybe using MATLAB so solve functions and/or C++ working with an Arduino. The curriculum may show only 1 programming course, but you may be doing programming in many courses.

@blevine, that’s a great suggesting, but tough in practice. The WPI curricula are different than any other school in the nation by virtue of their 7 week terms, but much more so, how much of their curricula fall in the various qualifying projects. It’s worth a shot though.

@youcee, my son uses Python, C++, and Assembly, along with Matlab, Solidworks, LabView and Revit and has never had a programming class per se, just as you said, learned in other classes, or self taught.

Though computer science teaches mostly programming and doesn’t offer much ME and EE background like eyemgh said, computer engineering offers both programming experience and electrical engineering experience since the computer engineering major is sort of like a double major in computer science and electrical engineering with emphasis on hardware (or at least that’s what the computer engineering major is like at the college I used to go to, the computer engineering major requirements may vary depending on university). Based on my experience with career fairs, almost all computer science job opportunities will accept computer engineering majors, and there are also a lot of engineering job opportunities that hire computer engineering majors since computer engineering majors have a good background in hardware as well as software. There was one time that I even got an interview for an electrical engineering internship despite the fact that I was a computer engineering major (to them electrical engineering and computer engineering were similar enough), so computer engineering majors seem to really do have a lot of flexibility in types of jobs they can pursue.

The computer engineering major is also a good option if you want to pursue a career in robotics or are interested in making any other products that use embedded systems like medical equipment, cars, washing machines, elevators, etc. You’ll be able to program the robot since computer engineering like computer science also requires a lot of programming, and your engineering background will be helpful, especially if doing lower level things like programming microcontrollers. And you probably could also be able to work on the electrical aspect of the robot as well. There were quite a few computer engineering majors in the robotics club at the college I went to (and they did a variety of things too ranging from doing AI to soldering circuit boards), and one of them was even originally an electrical engineering major but later decided that computer engineering is a better major for pursuing a career in robotics.

If you are more interested in the overall design of the robot, then maybe mechanical engineering with a CS minor or mechanical engineering using CS classes to satisfy technical elective requirements is a good option for you. But I just thought that I should at least talk a bit about computer engineering since computer engineering, like computer science, has a lot of job opportunities in general, and it also provides some engineering background and seems to be a good option based on your interest in robotics so it might be a major worth considering if you decide you are more interested in the programming aspect of robotics (although based on the posts on this page you might be doing some coding as a mechanical engineer anyways). You should look into the major requirements for the computer engineering major at the schools you are considering though if you are considering computer engineering though, because like I said, I don’t know if the computer engineering major is different in the schools you are considering and my conclusions are all based on my experiences at the college that I went to.

Also, to answer your other question, at the college it’s a lot easier to do an engineering major and switch to CS than the other way around. The engineering programs at the college I went to are pretty selective, whereas they’ll allow anyone who got a C or higher in one CS class in college to major in CS. Although, it may vary depending on college (maybe some colleges have very selective computer science programs). But regardless of selectivity of major program, engineering does have a lot of pre-reqs that also make it harder to switch from CS to engineering.

I’ll jump into this conversation. My husband is a ME from the dinosaur age, learned programming to do robotics for his MS in ME (still in the dinosaur age). He works in the field now and complains about CS majors, and this is why (direct quote): “The analysis of complex and multidisciplinary systems is taught across all engineering majors; CS majors are at a loss.” I’m not knocking CS as a major. Many job descriptions nowadays ask for CS or engineering and, full disclosure, my oldest son, who’d majored in CSE, ultimately dropped out midway to take a job as a software engineer. So maybe it doesn’t matter for employment overall. But my dh, employed in robotics, does see the difference in the field. Does that make sense? My younger son plans on studying ME, fwiw (though he loves to program; just like his father). Best wishes to you.

I would add that as CS and ME are so very different, you ar likely to develop a much stronger interest and maybe aptitude in one over the other. Start engineering and take cs electives that allow a decision to switch soph year if that is what you prefer.

Also depending if the school houses CS in the engineering college or with math/sciences, will dictate the ease of transmission. Same college would have more overlapping requirements. Separate college in university would change non major requirements that can impact time it would take to switch later.

I know of at least one uni that allows CS in both Eng and A&S colleges, same core courses, but outside major very different depending on which college you join.

@eyemgh I’m from California and my current college list is some UCs (B, LA, SB, SD, I), CSUs (Cal Poly Pomona/SLO), UIUC, USC, Mudd, CMU, Cornell. I have pretty high stats (4.4 W, 1550 SAT) and decent ECs (I can PM you those if you want) so many of those colleges are a reach. I would definitely need to reshape my college list though depending on the major I want to apply for.

@KSLD thank you SO much for the detailed response! Since you’re a ME, do you happen to know exactly how hands-on ME is? As in, my parents seem to have the idea that ME is all big heavy construction equipment and they are pushing me towards CS. I’m wondering if that’s actually true or if I will be able to focus on only the robotics aspect of it. As @eyemgh brought up, CS is definitely something I can at least partially self-learn (which I’ve already been doing with basic programming languages). The only thing I’m worried about is choosing ME, taking my first year and deciding I don’t like it, and then not being able to change my major to, say, CS.

@CompEngGirl123 interesting, my parents were also suggesting CE! The only thing I’m worried about is that I might not enjoy EE - do you have more info on what exactly people with a CE/EE background could do on the robot?

@Pbrain what does your husband do in terms of his day-to-day job (if you have any info on that)? The point you brought up is exactly why I was considering not majoring in CS - it doesn’t seem enough like an engineering major to me. Best wishes to your younger son!

@blevine interesting point, I’m consdering doing my first year as a ME major and seeing how that goes.

This next part is in general, not to any specific person, but I’ve found myself in a bit of a dilemma. My parents are staunchly against ME because they have the perception of it as a construction-worker type job where I would be working with heavy machines all day and I’m not sure about the validity of this statement. They’re pushing me toward CS or CE because they’re “safer” but honestly idk if I can see myself in front of a computer all day. Any advice on how to approach this situation?