This was a very interesting question I got from one of Simple Programmer readers… Do you need to learn math to be a programmer?
Is math really that necessary for programmers? Will you be a bad programmer if you don't know math? In what ways math can help you as a programmer and developer? Watch this video to find out.
Transcript From Video:
John: Hey, what’s up, John Sonmez from simpleprogrammer.com. I got this question from Nicholas about math and software development. I thought this was an interesting one here. He says, “Thank you so much for all your great content and hard work. Simple Programmer is helping me get a better handle on what I want to do with my career as well as becoming more mindful of financial planning and many other aspects which I consider to be important for a healthy, enjoyable life. Here’s a simple and yet not so obviously frequently asked question: How much math do you need as a programmer?” He says, “I’ve been reading a lot about this subject especially as I choose courses at a university. I read an article that pointed out that computer science and programming were essentially created out of the need for heavy duty computation in hard sciences especially math, think Alonzo Church and Alan Turing, but over the years it has evolved to include a much larger breadth of subjects which require far less math at least in the programming end.”
I’m going to summarize a little bit here, but essentially he goes on to ask about really do you need math when you’re doing things like working on frameworks in programming in general today and how far do you need the math to go.
Honestly, I would say that it’s important to have some kind of background in math. You should at least know algebra because a lot of variables in programming is going to be similar in some regards to algebra. If you know some calculus then you’re going to be able to solve problems in a way that’s probably a lot more efficient than a lot of people because—the thing is, like if you don’t know calculus you’re not going to recognize the type of problems, algorithm type of problems that exists in the world—like when you know calculus and you know it well you’re going to see this and you’re going to say, “Oh this is a max-min problem” and you’re going to identify that and you’re going to say, “There’s a formula. There’s a way to calculate this.” Whereas if you don’t know it you’re not even going to realize that that solution exists and you’re going to try to hack together some kind of solution.
It’s sort of like—so math in that regards is sort of like learning design patterns. Design patterns in programming can help you because you recognize a certain circumstance and you say, “Oh, this is just like—this is observer pattern and I can just apply this pattern” and it gives you sort of a short cut.
Now, again, this is going to depend on where you’re programming, what type of thing you’re doing. If you’re doing a lot of web based work where you’re doing a lot of frontend work, you’re probably not going to hit those types of problems as much, although you may sometimes. But if you’re doing a lot with the user interface and the design and passing data down to a database doing CRUD type of applications, probably math isn’t going to be so important, but I guarantee if you’re working on a real time operating system or you’re doing something with image processing or something that’s going to require some heavy algorithmic computations that math is going to play a lot bigger part.
It really, really depends on where you go with it. It can’t hurt to have a high level of math. If I were to—even if I were to self study I would—and become a programmer, I would want to self study definitely algebra, I’d want to know calculus and I’d want to know some discreet and foundational math because having the logic aspect of it, discreet and foundational math really gives you the logic aspect of it. That’s going to help you a lot because a lot of programming is logic and ands and ors and conditions so that’s going to help you. It’s not required but, again, that would help you.
I guess the long and short of it is basically this, “No, you don’t really need math. You can be a programmer, a software developer. There’s plenty of software that you can develop without strong math skills, but having it is going to help you. It’s like another tool in your tool belt. It’s not an absolute requirement but there’s going to be certain places where something could have taken you 20 hours to write this code, to solve this problem, but because you know calculus and you realized that this is a max-min problem or whatever it is or finding the area type of problem, you can instantly apply this and have this done in an hour. It’s going to save you the 19 hours in those cases.
It’s up to you to decide how deep to go with that. What you become as a software developer, like I said, what technology you choose, where you decide to work is going to determine that. You can always learn on your own too, math. There are things like Con Economy now which is really good resource for learning math especially advanced math. You can learn on your own. If you don’t like the kind of going to school and doing the college textbook math, that’s fine.
I don’t want to say—what I want to make sure that I don’t say is that, “Oh, if you can’t cut it in college math then you can’t be a programmer” because that I want to dispel. That’s not true. If you can’t cut it in college math, okay, fine. If you still want to be a programmer, fine, you can do it, but don’t ignore math if you can do it. Even if you just have a cursory level knowledge, even if you can just like identifying the problems, identifying those algorithms to realize that there’s a mathematical solution that someone’s already solved this. If you don’t know how to solve it, you can always look it up, right? You don’t have to have all the equations memorized.
When I first started out in the field, I had this book, this fat book. I forgot what it’s called, it’s like the Encyclopedia of Math or something. It had every single equation. I worked in image processing a lot with printers and stuff so there would always be like the kind of problems and I’d look it up. I know about it because I had enough knowledge in math. I don’t remember the equation but I would go and look it up and then I could solve the problem. This was before you google anything.
Anyway, good question. Hopefully you found this useful. If you found this useful, subscribe to the channel. All right. Talk to you next time. Take care.