Do you need to be good at math to become a good programmer?
Mathematics is the language of Science and it’s at the core of a computer. We human developed computer because of solving critical math problem within a short time. At the beginning of the modern computer, everyone needs to be a mathematical genius to use a computer or write programs for a computer. With the evolution of computing and computer graphics, that concept gradually change. Today, more than 80% of computer users are from a non mathematical background. But, what about the programmer?
Math and programming are great partners. Programming is about problem solving and logic. Math is, too. There are definitely similarities between the two.
Programming and math have a somewhat misunderstood relationship. Many people think that you have to be good at math before you can even begin to learn programming. Even many programming books provide many examples that are solutions to math problems, or are somehow related to math. Yes, it’s true that math plays a huge role in programming, but not that much necessary for the current period.
Though computers are built out of electronics components and only recognize two different states 0 & 1 but its instructions are written out differently. With the advancement of compilers and interpreters, math isn’t really used that much by a programmer. There is a lot we can do without math in the world of programming, but then a lot we cannot do. It actually depends on what type of programming you want to do. If you want to serve business world with your programming skills, then you can be a great programmer without knowing advanced mathematics. You can create valuable software or program with your logical thinking and problem solving attitude.
But, without knowledge of advanced mathematics you cannot understand the differences between numbers - O (n^2) and O (lg (n)), intuitive sense of KB vs MB vs GB, how slow disk is compared to RAM. To create a 3D game engine, implementation of physics in the game, audio and video compression, encryption, etc. are required additional knowledge in math.
The more math you know, the more power and precision you will be able to bring to bear on a problem. It also depends on what you are going to work on.
If you are going to do a lot of text processing, the math is going to be simpler.
You should be able to do the math to describe your algorithms using big-O notation. You should understand how to flip bits, different numerical bases, boolean logic. You need to be comfortable with quantities, with how numbers work in general. You need to be able to make decisions about how much space a system you are designing will occupy. You need to be able to understand how some slice of time will compound in various usage scenarios, be it in terms of execution time or other types of latency.
You aren't going to be a very good games programmer without knowing a good amount of calculus. Math is important in understanding a lot of the fundamentals that go into things like schedules, optimizations, sorting, protocol management, and a number of other aspects of programming.
Mathematics in terms of its lessons in abstraction is a fundamental primitive for function-based understanding. We use the ability to define and undefine to establish a world of principles.
Thus, math is important if you consider math to be a method of thought and not just a method of calculation.
Computer programming will challenge and stretch you mentally. You need logical thinking, abstract thinking, problem solving, and yes - math mindset to be a good programmer. But like anything, you don’t have to jump into the deep end all at once. There are many different fields of programming and many of those don't require a particularly high standard of mathematical knowledge. It actually depends on you, in which field you like to serve as a programmer.