A computer software engineer apply the principles of engineering, computer science, and math skills to design, develop, and test softwares.
First, they need to know the users' needs. Then, they will design, develop, test, and maintain softwares according to the users' specifications.
The job entails the design of many types of softwares, including computer games, word processing, excel, compilers, and operating systems.
Designing an operating system, such as windows 10 is indeed a fabulous and outstanding task!
There is a difference between computer software engineers and programmers.
Part of the job of a computer software engineer is to create algorithms. These are detailed instructions that tell a computer what to do.
Then, the programmer will write those instructions using a programming language such as Java, C++, C, or COBOL.
Computer software engineers are quite capable of writing programs, but it is not their primary responsibility. It is the programmer's responsibility to write codes.
People in this field face similar challenges as computer programmers.
1. Long hours of work may come unexpectedly to finish lengthy projects or unexpected problems.
Unexpected problems such as bugs, unanticipated difficult piece of codes or other types of complications come pretty much with the job description.
Furthermore, every new project is a new challenge and it may require months, or even years to bring to completion depends on the nature of the project and/or how many people are working on it.
I graduated in Guadeloupe (France) with a double major in math and computer science. I got a taste of what it's like to design and write codes.
However, I would rather solve math problems and write math proofs as opposed to playing around with time-consuming codes by trials and errors.
The only thing I would not mind doing is the making of educational math softwares, especially math games. I could survive doing that!
2. Great analytical skills, which a math major usually gives, is needed to isolate problems, solutions, and exceptions. Yes, this field requires strong mathematical skills. Among others, it is important to know discrete mathematics.
Discrete mathematics has applications to almost any conceivable area of study, but it has many applications to software engineering. Mathematics is in fact essential for creating softwares.
I believe you can be great at math even though you may have limited or no knowledge of computer science.
However, you cannot be a good programmer, or software engineer if you struggle in math.
3. A computer software engineer spend lots of time behind the computer, so it is not uncommon for people in this field to experience back problems, eyestrain, or wrist problems, such as carpal tunnel syndrome. Make sure you get yourself a nice and comfortable chair!
It is not hard to get a job as a software engineer with a math major. After I graduated with a math major, I got an interview with analog devices to become a software engineer.
Although I did not get the job, the degree in math definitely helped me secure the interview.
Any company who designs software will be more than happy to hire a math major as one of their staff.
A BS in mathematics is all you need. Keep your eyes open! The following companies may have an open position available for you: