# Want to Become a Software Developer? Learn Math

Updated: Mar 25

IT industry continues to develop rapidly. Artificial Intelligence and machine learning specialists, as well as all types of financial technology are in high demand.

According to the __Randstad report for 2020__ “Canada's tech industry is booming and that trend is set to continue well into 2020. The past year brought good things for the Canadian tech sector; IT was named Canada's fastest growing industry yet again. Cities like Toronto, Montreal and Vancouver are now well-established as leaders in a variety of tech disciplines including AI, clean tech and cloud computing.”

Top IT jobs based on the same report are: developer/programmer, IT project manager, quality assurance analyst, data analyst, IT business analyst, senior software engineer, network administrator, technical support specialist.

Students, who are interested in programming and software development can start learning the basics of coding as early as at the age of 5. Using applications such as __Scratch__, kids can learn how to build basic algorithms and develop simple codes. In later school grades, students would continue with programming using CSS, HTML, JAVA and Python. They would design and develop websites, simple apps. Robotics is another discipline that students can get involved in if they are interested in pursuing a career in technology and engineering.

Outside of school or home, there is a growing number of coding and robotics after school programs, such as __CODDY.ca__ (Ontario, Canada). They work with kids in small groups, using an interactive format and a variety of tools. Such approach helps students develop a real passion for coding, robotics, software development and later pursue a much desired career in IT.

Anyone can learn programming at any age. __Fullstack Academy__ (NYC, USA) offers boot camps, including remotely, to those wishing to become software developers. They offer intensive courses and help with career options.

It is worth mentioning, however, that success in programming and robotics is hardly possible without a solid knowledge and understanding of mathematics (both basic and advanced), including mathematical forms and processes.

So, how is math helpful when it comes to pursuing a passion and career in IT?

## ALGORITHM

The word “algorithm” comes from a name of an ancient Persian mathematician, __Muhammad Ibn Mūsā al-Khuwārizmī__, who is considered to be the father of equations and of the process of solving equations. He came up with the steps of solving equalities and when later, his works were translated into Latin, his name was Latinisized (Algorizmi) and the process of following a set of concrete steps to arrive at a solution became known as the ALGORITHM.

In math, algorithms are sets of steps that could be taken to solve certain problems. They should be done in a certain order and format and one mistake or omission could change the outcome of the whole problem solution, making it incorrect.

Algorithms are very important in coding as they are basically the recipes for the machine to follow in order to reach a certain goal. When students learn to code, the process emphasizes the importance of clear steps with no mistakes.

On the other hand, coding helps students visualize mathematical processes in terms of numbers, operations, variable expressions and problem solve faster without relying on manipulatives and such.

## VARIABLE

In mathematics, students are often being asked to determine the unknown value of a quantity. That value is a number, but since it is not known, it is represented as a letter (could also be an expression, a word). That letter is called a “variable”. The term is such due to its nature - since the value is unknown, it could be substituted by any value that satisfies the problem.

Variables could be assigned to quantities when their exact value is unknown.
For example, in __Area and Perimeter problems__, where the only information given is that the length is twice the width and and the perimeter is 60 cm - students are asked to determine the dimensions. In order to solve this problem using the proper mathematical form, it is useful to assign a variable to represent the width and an expression to represent the length: w and 2w.

When students understand the concept of a variable well, they are able to translate this knowledge to coding. In programming, variables provide a way of labeling data with a descriptive name, so that everyone who reads the program can understand it more clearly. Variables are essentially the holders of valuable data.

## FUNCTION

One of the most important concepts in mathematics is the concept of a function. A function is a relationship between the two quantities, where one quantity depends on the other and where the input for the independent quantity produces one unique output for the dependent one.

A example of a vending machine is always a good one to use to demonstrate to students what a function is: the machine is programmed in such a way, that every code the customer inputs corresponds to the unique item inside the machine; if one inputs the 4 digits that correspond to Pepsi, they won’t get Fanta instead (unless, of course, something malfunctions).

The example of a vending machine is a perfect example of how the concept of a function is transferred to coding. Programming the machine accurately, understanding the different types of functions and the resulting outcomes within them play an important role when working on developing new technology. In many ways, the concept of a function is rather intuitive, however, knowing the mathematical processes behind every type of function helps in students’ ability to apply this knowledge to much more complex situations.

## PROBLEM SOLVING

Problem solving is one of the key skills that students learn in the process of doing mathematics. Finding solutions, trying new things, combining a variety of methods and expressing thoughts in a clear format are all components of achieving the desired outcome.

Problem solving skill is definitely transferable to programming.

Sometimes, in order to get to where they need to get, programmers are required to think outside of the box and draw from a wealth of their knowledge. They also need to “explain” themselves clearly in code. By revealing their thought process through code, programmers make their point across better to both machines and other team members who might be involved in the process of product development.

“Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design. Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job.”

- __HackerRank 2018 Developer Skills Report __

## CODING AS APPLICATION OF MATH

When students learn math at school, they need to see WHY they need it. The question of “when am I ever going to use it?” is one of the most popular questions high school students ask their math teacher. Coding provides opportunities to demonstrate how math can help make their lives easier and more effective. For example, students may be asked to graph something that involves A LOT OF DATA. It may take forever! However, if they design and program a tool that would store all the data and reproduce it in the form of the graph, it would save time and effort of plotting by hand (plus it would save paper). __Code.org__ offers an activity for younger students that introduces them to the above mentioned idea of graphing. Students use symbols to instruct each other to colour squares on graph paper in an effort to reproduce an existing picture.

Programming and __mathematics__ usually go hand in hand. Programming is a tool that brings mathematics to life and helps make it even more fascinating and interesting. Some of the most important strands of mathematics that those pursuing the career in IT should focus on are: Linear Algebra, Calculus, Discrete Mathematics, Probability, Geometry and Statistics.