avatarMike Schnettler

Summary

While calculus is not a day-to-day tool for software engineers, the problem-solving skills acquired from studying it are beneficial, and understanding Big-O notation is particularly relevant for performance considerations in software development.

Abstract

Calculus is a challenging subject for many, yet it is often a requirement for computer science majors, leading to the assumption that software engineers frequently use calculus in their work. In reality, software engineers rarely apply direct calculus concepts in their daily tasks. However, the skills developed through calculus, such as understanding the rate of change and problem-solving, are valuable. Specifically, calculus aids in grasping Big-O notation, which is crucial for predicting how an algorithm's performance scales with data size—a common concern when dealing with large datasets. Moreover, the process of solving calculus problems enhances problem-solving abilities, which are essential for software engineering. While formal logic might align more closely with the logical thinking required in coding, calculus indirectly contributes to a software engineer's skill set by fostering a mindset adept at tackling complex issues and simplifying logical statements for more maintainable code.

Opinions

  • The author believes that calculus, while not directly applied in software engineering, provides problem-solving experience that is beneficial to the field.
  • Calculus is seen as helpful for understanding Big-O notation, which is important for writing efficient code that can handle large datasets.
  • The author suggests that the ability to simplify complex logical statements, which is honed through calculus, is similar to the logical thinking required in writing clear and maintainable code.
  • Despite the utility of calculus in developing problem-solving skills, the author does not consider it an absolute necessity for success in software engineering.
  • The author implies that the logical thinking skills taught in formal logic courses are more directly applicable to software engineering than calculus concepts.

Do Software Engineers Use Calculus?

Let’s face it, calculus is hard for many people. As someone with a math degree, I can think back on several occasions where I blankly stared at my notebook or at a whiteboard, frustrated in trying to figure out the next step in solving the calculus problem at hand. In those moments, it is easy to think “What is the point of this anyway? When am I ever going to use calculus in my life?”

There is a perception that software engineers need to be math geniuses and fly through calculus coursework in order to be successful at their job. In fact, most college computer science programs require advanced calculus courses in order to graduate. Given that computer science majors are required to learn calculus, it would be logical to assume that software engineers must use calculus in their day to day work.

Photo by ThisisEngineering RAEng on Unsplash

So, do software engineers use calculus?

While software engineers don’t find themselves directly applying calculus concepts in their day to day work, there are skills that are acquired when learning calculus that can be helpful to software engineers.

Generally speaking, calculus revolves around understanding the rate of change of mathematical functions. Calculus courses teach people how to take functions and figure out how fast or slow the functions changes.

While I don’t think that your grade in calculus will make or break your future success as a software engineer, I think an argument can be made for why calculus is helpful. First off, calculus can come in handy for understanding Big-O notation. Big-O notation helps engineers understand how the change in the size of data being used by an algorithm affects how long it will take an algorithm to run. Large companies typically have massive datasets that they need to process, so engineers need to be cognizant of how their code will perform when it is used with large amounts of data. Having a solid base in calculus helps to understand how the change in data size will affect time. On top of that, Big-O notation is something that is often asked of interviewees during the programming part of a standard software engineering job interview. Thus, calculus can be helpful for getting that first job as an engineer.

While software engineers are not asked to figure out the integral or derivative of functions in their day to day work, the act of solving integrals or derivatives is a form of problem solving. Software engineering also takes a certain level of problem solving abilities to have success. Specifically, software engineers need to learn how to rethink challenging problems when they get stuck. Calculus coursework can provide a lot of great experience in having to step back and rethink how you are going about solving a problem. The types of problems encountered in calculus and software engineering may not be all that similar, but there are parallels in the problem solving process.

The day to day work of a software engineer involves a lot of logical thinking, but the type of logical thinking used on the job is probably more aligned with what is taught in a mathematical formal logic course. Formal logic courses teach people how to take complicated logical statements and simplify them into logical statements that are easier to understand. As a software engineer writing code, it is important to simplify the logic in your code to make the code easier to understand and more maintainable for other engineers that my need to change or use that logic in the future. While formal logic is one avenue to acquire the skill of simplifying complicated logical statements, this skill can also be sharpened through the practice of writing code, both in school and on the job.

In summary, software engineers are not applying calculus concepts to their software problems every day. That being said, software engineers must learn how to solve problems, and calculus helps people practice the problem solving process. Calculus is also helpful in understanding Big-O notation and the time complexity of software systems. While I wouldn’t say that you must learn calculus to be a successful software engineer, learning calculus can help you to develop skills that you will use on the job.

Thank you for reading my story! Click here to read some of my other articles on various software engineering related topics. Here is a sampling of some of my other articles:

Tips for Transitioning from Software Engineer to Tech Lead

How to Find More Fulfillment as a Software Engineer

Three Things I Wish I Understood Before Starting My First Software Engineering Job

Software Development
Software Engineering
Mathematics
Programming
Coding
Recommended from ReadMedium