18 answers

Asked
Translate

Viewed 263 times
# Do you need math to be an effective programmer?

I'm curious about the possibility of being a programmer. However, I'm not good with logic or math and haven't understood Python based on some free classes I've seen of it. #math #computer #programming

### 18 answers

Updated
Translate

# Alfonso’s Answer

Great Question! Math and logic are closely related. What does a programmer do? Write logical instructions to be executed by a computer and get a specific result. Knowing math is helpful to master your logical thinking. Programming covers a variety of things and one of them is algorithms. For sure, you will need a lot of math and logic to figure out. It all depends on the project you are working on. There are many places online you can test your programming skills. Leetcode is one of them and it is free...

Updated
Translate

# Vineeth’s Answer

Math is necessary to understand algorithms complexity, at least in the first few years of programming. Of course, you need some basic math concepts, like calculus or algebra, or logic, but the very basics of it. It depends on what level of a programmer are you willing to become.

*For graphics/game, knowledge about trigonometry, differentials, polar coordinates are highly valuable

*For Operating System design, core software design, Boolean algebra, abstract algebra (data structures), computational complexity and efficiency, optimization, etc. are very important

*For security/cryptography, knowledge of prime numbers, sieves, permutations, exponents and other polynomial algebras, etc. are needed for even the basic needs

*In general, logic, reasoning, and programming algorithms are needed, But as you go higher in any direction, you’ll be starting to need mathematics, because, accept it or not, all a computer can do is mathematics and all you have is programming concepts which are mostly abstract algebra concepts (data types, structures, objects) and many algorithms explicitly use discrete mathematics and some other need physics.

*All in all, for developing an algorithm for something, you’d need to know about that, and there’s really nothing out of syllabus thing. Because mathematics connects the universe and computers process that

*For graphics/game, knowledge about trigonometry, differentials, polar coordinates are highly valuable

*For Operating System design, core software design, Boolean algebra, abstract algebra (data structures), computational complexity and efficiency, optimization, etc. are very important

*For security/cryptography, knowledge of prime numbers, sieves, permutations, exponents and other polynomial algebras, etc. are needed for even the basic needs

*In general, logic, reasoning, and programming algorithms are needed, But as you go higher in any direction, you’ll be starting to need mathematics, because, accept it or not, all a computer can do is mathematics and all you have is programming concepts which are mostly abstract algebra concepts (data types, structures, objects) and many algorithms explicitly use discrete mathematics and some other need physics.

*All in all, for developing an algorithm for something, you’d need to know about that, and there’s really nothing out of syllabus thing. Because mathematics connects the universe and computers process that

Updated
Translate

# Stephanie’s Answer

Hello Beatriz,

So programming and math can definitely go hand in hand, all depending on the area of programming. Like, in some cases, you can get away with it - like front-end development when dealing with the picture the user sees where you are just writing code to come up with that. The math there is dealing with positioning and manipulating pixels. Then back-end development would be more where the logic and math come in that how set data is being manipulated and stored.

Your teacher or boss might ask you to come up with a solution that makes X run more faster. Well, that is where logic and math come in, in that how do I want my code to run. Big O notation is a mathematical notation that helps to understand how effective the behavior of a function should run. If it is running at an exponential rate, it runs slow then starts to pick up more and more. Or at a linear rate, where it steadily increases. Or at a logarithmic rate where it runs super fast as first then starts to slow down and plateau. Or at a constant rate where it is being run most steadily. All depends on the work needing to be done and how you are processing that data.

If interested, a nice way to practice this to better your skill in that area you feel that you lack, is understanding data structures and algorithms. With using object oriented programming, like languages like Python and Java, there are concepts already set in place so you don't have to use too much logic to reinvent the wheel twice. You can use the practices already done and see how they tailor to your goal then manipulate them accordingly. Like how to make my code optimal with an array vs a linked list. When I first started out, I wasn't a strong programmer when it came to the math and logic either. But using these practices trained me to better understand the logic behind the math, which helped my thought process in coming up with my own logic to create my own algorithms.

So programming and math can definitely go hand in hand, all depending on the area of programming. Like, in some cases, you can get away with it - like front-end development when dealing with the picture the user sees where you are just writing code to come up with that. The math there is dealing with positioning and manipulating pixels. Then back-end development would be more where the logic and math come in that how set data is being manipulated and stored.

Your teacher or boss might ask you to come up with a solution that makes X run more faster. Well, that is where logic and math come in, in that how do I want my code to run. Big O notation is a mathematical notation that helps to understand how effective the behavior of a function should run. If it is running at an exponential rate, it runs slow then starts to pick up more and more. Or at a linear rate, where it steadily increases. Or at a logarithmic rate where it runs super fast as first then starts to slow down and plateau. Or at a constant rate where it is being run most steadily. All depends on the work needing to be done and how you are processing that data.

If interested, a nice way to practice this to better your skill in that area you feel that you lack, is understanding data structures and algorithms. With using object oriented programming, like languages like Python and Java, there are concepts already set in place so you don't have to use too much logic to reinvent the wheel twice. You can use the practices already done and see how they tailor to your goal then manipulate them accordingly. Like how to make my code optimal with an array vs a linked list. When I first started out, I wasn't a strong programmer when it came to the math and logic either. But using these practices trained me to better understand the logic behind the math, which helped my thought process in coming up with my own logic to create my own algorithms.

Updated
Translate

# Pra’s Answer

Programming is tricky, so don't be discouraged if you don't understand free classes at first. Different people learn best in different ways, so find what works for you! Some people learn better by reading articles, some people are better watching videos, etc.

You really don't need much math to be a software engineer, which is the most common career for programmers, but you'll also find programmers doing other things, like machine learning, which do require a lot of math.

Programming is sort of like a puzzle. For example, how do you reverse a list of numbers 1,2,3,4. You'll often draw/map out what you want to happen on a piece of paper before writing any code.

You really don't need much math to be a software engineer, which is the most common career for programmers, but you'll also find programmers doing other things, like machine learning, which do require a lot of math.

Programming is sort of like a puzzle. For example, how do you reverse a list of numbers 1,2,3,4. You'll often draw/map out what you want to happen on a piece of paper before writing any code.

Updated
Translate

# Jung’s Answer

I'd started my career as an engineer, and from my experience, you don't need to be good at math, but logical/critical thinking is key. Math is a great tool for developing your logical/critical thinking, and majority of logical thinkers tend to be good at math. Hence, many consider the two to be related, but not true. Being good at math is not a necessary condition for being a logical thinker or a good software engineer.

You just need to know a few basic concepts in math, and the rest is logical thinking and practice. Math concepts to understand - necessary condition / sufficient condition, variable / dependent variable, intersection / complementary set, etc.

Once you understand these concepts, then practice to enhance your logical thinking. A great tool for this was the 'Critical Reasoning' section of the GMAT. It helped me develop a logical thought process. In general, make it a habit of viewing the world through the lens of the basic math concepts - what is the problem I want to solve, what are the conditions to make it a success or fail, what variable can I control and what other variables would it impact, etc.

Logical thinking will allow you to design programs / write codes that are efficient, error-free, and M.E.C.E (mutually exclusive, collectively exhaustive - meaning you captured all possibilities, without any overlap). It is a skillset that will make you successful with any career path you choose, so you won't regret! Hope this gives you some confidence and guideline

You just need to know a few basic concepts in math, and the rest is logical thinking and practice. Math concepts to understand - necessary condition / sufficient condition, variable / dependent variable, intersection / complementary set, etc.

Once you understand these concepts, then practice to enhance your logical thinking. A great tool for this was the 'Critical Reasoning' section of the GMAT. It helped me develop a logical thought process. In general, make it a habit of viewing the world through the lens of the basic math concepts - what is the problem I want to solve, what are the conditions to make it a success or fail, what variable can I control and what other variables would it impact, etc.

Logical thinking will allow you to design programs / write codes that are efficient, error-free, and M.E.C.E (mutually exclusive, collectively exhaustive - meaning you captured all possibilities, without any overlap). It is a skillset that will make you successful with any career path you choose, so you won't regret! Hope this gives you some confidence and guideline

Updated
Translate

# Alfonso’s Answer

I like programming but I am not a programmer though! I am an integrator. I know the minimum to perform my job effectively. However, I engage myself in programming issues since I find them challenging and sometimes teach me to think about a problem from a different perspective. Now, that being said, programming does not mean learning a particular language. There are many languages out there. All of them have pros and cons and all depends on what kind of problems you want to address and the nature of your job. Python is a good choice. It is popular, relatively easy to learn, and most importantly, the community is very big. So, you will get a lot of resources around you.

Focus on learning the basic concepts of programming. Once you master them, you should be able to learn any language. The very basic syntax in Python can be learned in 1 day working intensively. There are many tutorials online. You can try the courses in Coursera if you want to see something more formal. They are very good. Another thing to have is a GitHub account. Besides becoming a good programmer, you need to show to be a good organizer and maintainer of your codes, how to manage issues, and come with a resolution.

One more thing: Easy to learn does not mean easy to create products out of it. Learning a language and creating a product from that language are two milestones and they are far away from each other. It requires commitment, dedication, and passion to reach the level that you are able to develop a robust product. I mentioned in another answer to try Leetcode. The easy section is a good start to try out the water. Don't be discouraged if you feel lost. I felt lost when I started too! Take it as a motivation to learn! The biggest failure is not to try.

Focus on learning the basic concepts of programming. Once you master them, you should be able to learn any language. The very basic syntax in Python can be learned in 1 day working intensively. There are many tutorials online. You can try the courses in Coursera if you want to see something more formal. They are very good. Another thing to have is a GitHub account. Besides becoming a good programmer, you need to show to be a good organizer and maintainer of your codes, how to manage issues, and come with a resolution.

One more thing: Easy to learn does not mean easy to create products out of it. Learning a language and creating a product from that language are two milestones and they are far away from each other. It requires commitment, dedication, and passion to reach the level that you are able to develop a robust product. I mentioned in another answer to try Leetcode. The easy section is a good start to try out the water. Don't be discouraged if you feel lost. I felt lost when I started too! Take it as a motivation to learn! The biggest failure is not to try.

Updated
Translate

# Padmapriya’s Answer

Hi Beatriz,

Great question.

Math is also necessary to understand algorithms complexity, but you are not going to invent new algorithms, Of course you need some basic math concepts, like calculus or algebra, or logic, but the very basics of it.

There is a correlation between understanding mathematics and being able to "think algorithmically". That is, to be able to think abstractly about quantity, processes, relationships and proof.

Mathematicians and programmers both think critically in the abstract. Real world things are represented by objects and variables. The ability to translate from concrete to abstract also links the two fields.

I have a Maths degree, but I can't remember requiring that maths a single time in my career. It was useful in terms of training my mind for logical thinking, but I've not written any code using any of the topics that I have learnt in my college.

There are lot of online tutorials available for learning Python. Keep trying and you will get it.

Great question.

Math is also necessary to understand algorithms complexity, but you are not going to invent new algorithms, Of course you need some basic math concepts, like calculus or algebra, or logic, but the very basics of it.

There is a correlation between understanding mathematics and being able to "think algorithmically". That is, to be able to think abstractly about quantity, processes, relationships and proof.

Mathematicians and programmers both think critically in the abstract. Real world things are represented by objects and variables. The ability to translate from concrete to abstract also links the two fields.

I have a Maths degree, but I can't remember requiring that maths a single time in my career. It was useful in terms of training my mind for logical thinking, but I've not written any code using any of the topics that I have learnt in my college.

There are lot of online tutorials available for learning Python. Keep trying and you will get it.

Updated
Translate

# Sue’s Answer

I would think that math is fundamental to all Science and Engineering fields, especially computer programming. Hence math and logic thinking is important.

However it would be difficult to determine whether you are good at logic or math. Sometimes, one bad experience would lead you to think you don't like it and you are not good at it. It happened to me couple of times. I would suggest that you take another try to see how it goes.

However it would be difficult to determine whether you are good at logic or math. Sometimes, one bad experience would lead you to think you don't like it and you are not good at it. It happened to me couple of times. I would suggest that you take another try to see how it goes.

Updated
Translate

# Elias’s Answer

Hello Beatriz !

What a great question !

I would say not necessarily. Certain programming disciplines (crypto, graphics, physics engines etc) would definitely have a clear advantage for the mathematically inclined, but I don't think a good understanding is essential to give your first steps with programming.

I would suggest to start with an overview of Boolean logic and see how it goes.

What a great question !

I would say not necessarily. Certain programming disciplines (crypto, graphics, physics engines etc) would definitely have a clear advantage for the mathematically inclined, but I don't think a good understanding is essential to give your first steps with programming.

I would suggest to start with an overview of Boolean logic and see how it goes.

Updated
Translate

# David’s Answer

This will depend on what specifically you are doing. A software developer will use some math but will often depending on the project, not need to use very much math while if you are working on something such as machine learning this can involve a lot of math. It depends on what project you are working on.

Updated
Translate

# JAYAKRISHNAN’s Answer

Hi, Programming is all about logic and so does mathematics, if you are good in mathematics you will be having an upper hand in program solving and hence in programming

Updated
Translate

# Jung’s Answer

I'd started my career as an engineer, and from my experience, you don't need to be good at math, but logical/critical thinking is key. Math is a great tool for developing your logical/critical thinking, and majority of logical thinkers tend to be good at math. Hence, many consider the two to be related, but not true. Being good at math is not a necessary condition for being a logical thinker or a good software engineer.

You just need to know a few basic concepts in math, and the rest is logical thinking and practice. Math concepts to understand - necessary condition / sufficient condition, variable / dependent variable, intersection / complementary set, etc.

Once you understand these concepts, then practice to enhance your logical thinking. A great tool for this was the 'Critical Reasoning' section of the GMAT. It helped me develop a logical thought process. In general, make it a habit of viewing the world through the lens of the basic math concepts - what is the problem I want to solve, what are the conditions to make it a success or fail, what variable can I control and what other variables would it impact, etc.

Logical thinking will allow you to design programs / write codes that are efficient, error-free, and M.E.C.E (mutually exclusive, collectively exhaustive - meaning you captured all possibilities, without any overlap). It is a skillset that will make you successful with any career path you choose, so you won't regret! Hope this gives you some confidence and guideline

You just need to know a few basic concepts in math, and the rest is logical thinking and practice. Math concepts to understand - necessary condition / sufficient condition, variable / dependent variable, intersection / complementary set, etc.

Once you understand these concepts, then practice to enhance your logical thinking. A great tool for this was the 'Critical Reasoning' section of the GMAT. It helped me develop a logical thought process. In general, make it a habit of viewing the world through the lens of the basic math concepts - what is the problem I want to solve, what are the conditions to make it a success or fail, what variable can I control and what other variables would it impact, etc.

Logical thinking will allow you to design programs / write codes that are efficient, error-free, and M.E.C.E (mutually exclusive, collectively exhaustive - meaning you captured all possibilities, without any overlap). It is a skillset that will make you successful with any career path you choose, so you won't regret! Hope this gives you some confidence and guideline

Updated
Translate

# Sendil’s Answer

I think it depends on what type of programming you want to do. As far as being a programmer in the business world goes, I would say that the answer is no. You can become a great programmer without knowing advanced mathematics. When you do end up having to deal with math, the formulas are usually defined in the business requirements so it only becomes a matter of implementing them in code.

On the flip side, If you want to become a low-level programmer or say create 3D graphics engines, mathematics will play a huge role.

Updated
Translate

# karthik’s Answer

Math is also necessary to understand algorithms complexity, but you are not going to invent new algorithms, at least in the first few years of programming. Of course you need some basic math concepts, like calculus or algebra, or logic, but the very basics if it

Updated
Translate

# Michael’s Answer

I agree to the other answers. Math and Logic is absolutely required.

Enjoy

Michael

Enjoy

Michael

Updated
Translate

# Sendil’s Answer

I think it depends on what type of programming you want to do. As far as being a programmer in the business world goes, I would say that the answer is no. You can become a great programmer without knowing advanced mathematics. When you do end up having to deal with math, the formulas are usually defined in the business requirements so it only becomes a matter of implementing them in code.

On the flip side, If you want to become a low-level programmer or say create 3D graphics engines, mathematics will play a huge role.

Updated
Translate

# JAYAKRISHNAN’s Answer

Hi, Programming is all about logic and so does mathematics, if you are good in mathematics you will be having an upper hand in program solving and hence in programming

Updated
Translate

# Siddharth’s Answer

You definitely need to be good at mathematics, logic and analytical thinking to be successful at programming. After all, programming is the art of writing efficient code that takes care of all corner cases, and is unbreakable (at least theoretically). Writing code in this manner requires analytical and logical thinking, and mathematics as well, in order to understand whether all the permutations and combinations of the problem are addressed (while keeping the code short).

## Delete Comment

## Flag Comment