I think I would like to be a software engineer one day in the aerospace industry, maybe writing programs for autopilot systems in spaceships. Should I major in Computer Science or Aerospace/Mechanical Engineering?
#aerospace #computerscience #aerospace-engineering #majors #college #engineering #mechanical-engineering #technology #space #software
If you'd like to be a software engineer, I recommend majoring in Computer Science or Computer Engineering. At most major aerospace companies, you will be working as a developer who programs according to the requirements passed onto you from the product manager.
Source: I am a project manager at US-based aerospace company
If your interest is in writing software I'd recommend a degree in Software/Computer Engineering or Computer Science. The Software/Computer Engineering will go into more of the theory behind how things work and then get into learning different coding languages where Computer Science will focus more on coding. You mention Aerospace/Mechanical engineering, so I wonder if you are interested in writing software to control mechanical systems? If yes, I would definitely investigate different Software/Computer Engineering curriculums at different colleges to see if you learn about any mechanical engineering topics.
Best of luck!
As you stated you would like to be a software engineer writing programs - you should major in Computer Science or Software Engineering. But programs you will be developing are not intended for the common-purpose desktop/server computers or for mobile devices. These programs are named embedded software, as they are executed on multiple microprocessors/microcontrollers embedded deeply into vehicle or plane/spacecraft. Most common software engineering principles are also applicable for such kind of software; however, there are a lot of specifics you need to consider. So studying Computer Science it would be worth to track and elaborate such specifics wherever possible; “embedded” is the keyword. And to advance your capabilities to apply your software engineering skills for embedded applications you may try to get minors in Microelectronics/Mechatronics or Communication Protocols. Sometimes program development or debugging would require even to take an oscilloscope and probe signals on the circuit board. And as Aerospace is all about safety/reliability/security, it would be great, for example, to narrow some of your course assignment projects to software reliability area.
It seems to be easier to pick-up industry-specific knowledge being a Software Engineer rather than to pick-up programming skills being an industry engineer. I know several success stories, including myself, when people with major in Software Engineering worked well in automotive industry, developing and testing software for engine control, vehicle stability control, etc. Working on industries intersection is twice as interesting as it would be in each of them separately. With Aerospace it would be even triple. Good luck!
This is a tough one because in the future, I'd imagine that most jobs would require a level of programming expertise. In addition to this, I feel that Aerospace engineering is little less generic and more specialized compared to the extremely broad field of computer science. However, the difference between good and great programmers is the theory and 'science' that only a good computer science program in college can provide. So with that said, if being an expert programmer is a big goal of yours, I'd find a good computer science program to Major in.
There are two aspects to this:
1) In-depth knowledge of aerospace systems and manoeuvring.
This would require engineering degree in aerospace.
2) Knowledge of relevant programming language used in those systems.
This can be obtained by taking up a master's degree in computer engineering.
I would recommend you to have a degree in Computer Science. You will learn the domain quickly, there will be experts who can define and pass on the requirements. Having a strong core Computer Science knowledge will help you to write quality code for the autopilot systems.
If your goal is to write software, especially embedded autopilot software, I would recommend to have a Master Degree in Computer Science. There will be mechanical and aeronautical engineers to help you understand the physics. But you will need to know how to properly write the program and that requires good knowledge in computer science.
There are some courses which would be help you to get aerospace related jobs like certification in DO178B and DO178C ( Guidelines ).
I did my Bachelors degree in Aeronautical Engineering in the early nineties. Although that was a long time ago, there was a lot of software programming (Fortran, C) involved during the degree program. There was almost a symbiotic relationship between the software programming aspects and the structural, computational fluid dynamics and/or the propulsion systems on an aircraft/spaceship. The point I am trying to make is that you will need to learn programming in any aspect of Aeronautical/Aerospace Engineering curriculum as most aircraft/spaceship, over the last few decades have become 'fly by wire' with the software aspects of the aircraft/spaceship driving the mechanical components which keep the aircraft/spaceship in the atmosphere, not to mention the terabytes/petabytes of telemetry that is generated and processed during flight.
If your interest is in Aerospace/Mechanical engineering, I would recommend that you do a degree in either of those areas with a deeper focus in software engineering courses during your degree curriculum, meaning take a few more software engineering courses than what it prescribed in your curriculum, perhaps if possible, major in either one of those areas and minor in computer science or a software engineering area. That way you can stay focused on your core interests and also have some depth in software engineering which could be applied to aircrafts/spaceships and even to cars, trucks or any mechanical device in the future which have potential for an Autopilot.
Best of luck!