Does a Math Degree Help in Software Engineering?
I am currently in my fourth year of completing a double major in math and computer science at the University of Prince Edward Island. As such, I am in a unique position to comment on my thoughts on whether or not a math degree will help one in software engineering. I have also been working in software development positions both, part-time and full-time, for about two years.
What a math degree offers!
In a math degree, you will start by learning calculus, linear algebra, and other algorithmic-based learning. As you progress, most of the math becomes proof-based. Generally, you are given a set of axioms (true statements) and using those you have to contract some proof to show some proposition to be true. This forces you to think outside the box as no two problems are the same. You can't just apply an algorithm to solve your problem. Some of these courses are real analysis, group theory and measure theory.
Will you use what you have learned
If you are going into university and wondering if a math degree will be useful for a future in software engineering, in terms of practical use, the answer is, probably not. If your goal is to be a general software engineer and write code for web dev or a similar field that you most likely will not use any of the facts or knowledge that a math degree offers. There are some exceptions. If you think you might want a future in machine learning, cryptography, research, programming software bundlers, and the list goes on and on. These are some of the many fields where you will use the knowledge and skills of a math degree in practice. If you are thinking of going into one of these fields, a math degree or possibly a minor will help you out tremendously. I have used many skills I have learned in my math courses as I complete my honours this year in machine learning.
Does it help you work as a software engineer?
Math courses challenge one in a way that traditional computer science courses do not. In math courses, specifically upper-year proof-based courses (which are almost all of the higher-level math courses), really challenges one's problem-solving skills in a way that you don't see in typical computer science courses. For example, as I talked about before making a proof comes down to when given a set of axioms (truth facts) you must manipulate those facts to prove a given proposition. This is a skill that is rarely used in your computer science courses. From my experience, a lot of CS courses are about memorizing facts or algorithms and then using those facts or algorithms through coding assignments, general assignments and exams. This type of learning rarely comes up in a software engineering position. No one is going to ask you to memorize the typescript syntax and then test you on it. You may learn it by using it but no one is going to sit you down and drill you with obscure abuse questions on the subject. What you will have to do a lot is problem-solving. You will be given many problems or tasks and you will have to break them down, understand them and finally solve them. This sounds simple but in practice can be very challenging. Math courses challenge you in a way that is similar to this. Many times, you are given a question that you have never seen anything like it before and are forced to practise and learn problem-solving techniques and skills.
If you are going into university and are faced with picking a math degree or computer science this can be a hard choice. A math degree will teach you problem-solving skills and some practical skills depending on what kind of field in software you wish to enter. A CS degree will probably teach you more practical skills for software engineering but may lack problem-solving skills and depth of knowledge for some fields. Overall, you should pick the field that interests you most. If you think you like math more, pick that, and you think programming and computers sound more interesting pick that. Overall, if you do what interests you more you will find the field or job that will be more enjoyable.
Thanks for hearing my thoughts, Logan Anderson