I’m working my way to a CS degree and am currently slogging my way through an 8-week Trig course. I barely passed College Algebra and have another Algebra and two Calculus classes ahead of me.
How much of this will I need in a programming job? And, more importantly, if I suck at Math, should I just find another career path?
Anywhere from very important to not important at all, depending on your specific job.
There is some good news though, you’ve been lied to about sucking at math. Whether by yourself or other people I do not know, but the education research I have seen has been pretty clear that the main difference between people of normal intelligence who are ‘good at math’ and those ‘bad at math’ is how long they’re willing to work on a problem to ensure the correct answer before moving on.
I know ‘try harder’ sucks as an answer but it’s the best one I know of and at least in this case will actually make a difference.
Do you have a link to the research? I’m a math educator and I’d like some good materials for encouraging my students.
Well being able to figure out 1 complex math solution per day vs 1 complex solution per 1.5 days for the person who just has to work on the problem for longer is balloons a lot over the long term.
Like how the average calorie burning difference between people is only 400 per day out of ~2000, but over a month that is like 1.5kg difference of mass burned which is 18kg per year.
But I don’t know if I am interpreting the result you said correctly.
Agreed. Math, for the most part, is very rule oriented and problems only have one answer and often one strategy to get to the answer. If you work on many different problems (in the same subject) you should start to get used to the rules.
Overall I would say a strong math foundation is important to CS but CS isn’t just about coding. You can absolutely get a coding job without strong math skills or even without a degree, it’s just a bit harder to get started. If the discipline still exists you might consider a Business Information Systems degree (we used to call it CS lite). Depending on the position a company might equally consider BIS and CS majors.
problems only have one answer and often one strategy to get to the answer
Totally disagree
You’re thinking of equations, which only have one answer. There are often many possible ways to solve and tackle problems.
If you’ll permit an analogy, even though there’s “only one way” to use a hammer and nail, the overall problem of joining wood can be solved in a variety of ways.
You’re absolutely right. I was referring to equations which, in my experience, is 90% of undergrad math.
i would disagree that math problems only have one strategy for getting to the answer. there are many things, particularly in more abstract math, which can be understood in multiple different ways. the first example that comes to mind is the fundamental theorem of algebra. you can prove it using complex analysis, algebraic topology, or abstract algebra. all the proofs are quite different and rely on deep results from different fields of math.
i think the same thing holds in the less abstract areas of math, it’s just that people are often only taught one strategy for solving a problem and so they believe that’s all there is.
Being comfortable with basic back-of-the-envelope math can be a huge benefit. (Full disclosure: i am a math major who is now a programmer)
Over my career I have several examples of projects that have saved weeks worth of dev time because someone could predict the result with some basic calculations. I also have several examples where I have shown people some basic math showing that their idea is never gonna work, they don’t listen and do it anyway, and I see them 1 month later and the project failed in the way i predicted.
A popular (and wise) saying is that “Weeks of work can save you hours of meetings”. I think the same is true for basic math. “Weeks of coding can save you minutes of calculation”.
You can definitely be a successful programmer career without great math skills. Math is a tool that can help you be more effective.
Can you share the full story of the projects that you could predict could fail using maths?
Can’t divulge too many details, but one example was when we had 2 options for solving a problem: 1. The “easy” way, storing a bunch small blobs to s3 as a job was running on an embedded device, or 2. The slightly tricky, implement streaming of said data on the device (not as easy as it sounds).
We went with option 1, the easy one, because it was deemed faster bang for the buck. I did some basic math showing that the bandwidth required upload the high number of blobs to s3 within our time budget was not possible on our uplink.
After we spend a month failing on 1., it was clear that we hit the predicted problem. Eventuelly we implement option 2.
Very much depends what kind of programming you’re doing. Graphics uses shittons of maths. Data analysis/data science is maths/stats heavy. Other types less so!
Don’t need a degree, but computer programming is fundamentally logic and algorithms. You need to have internalise reasoning logically. In some ways critical thinking is closer to programming than trig is.
deleted by creator
As a kid, I learned to write i = i +1, before school maths taught me it can’t. The point is, computers do iteration well, especially to model dynamics of real non-linear systems, while classical maths is good at finding algebraic solutions to equilibria - typically more theoretical than real. Calculus is great for understanding repeatable dynamics - such as waves in physics, also integrating over some distributions. But even without knowing that well you could still approximate stuff numerically with simple loops, test it, and if an inner-loop turns out to be time-critical or accuracy-critical (most are not), ask a mathematical colleague to rethink it - believe in iteration rather than perfect solutions.
As others have said, It depends on what kind of programming you do. Some areas requite a lot. Others not so much. It’s logic, not math, that is needed the most.
You may want to check if your college has a different kind of programming degree. As I understand things, there are basically two kinds of programming degrees. “Computer Science” has much steeper math requirements and focuses on applications that deal with Science or engineering issues. “MIS (Management Information Systems)” degrees focus on actual programming that businesses need, not programs that are science or engineering focused.
I agree with the other answers that it depends on the type of programming you end up doing…the nature of the program being developed, but having a background in discrete math is great to have just in case.
From my experience, there can be unexpected problems where you will advantage from having grasp at discrete math. I worked on a project for a telecom company where they wanted a simulation to predict the impact on network coverage if a specific cell tower (BTS) was uninstalled. I ended up relying heavily on the cross-product formula and some ray-casting algorithms to model how coverage would shift in the area.
Math skills can occasionally be useful, but I don’t see it as a dealbreaker.
The good thing about being good with math is that it usually means you’re a good problem solver, and problem solving is an important skill for programming. But the reverse isn’t necessarily true. You can be good at problem solving but still be bad at math.
I would say if you’re struggling with the programming courses, then maybe look somewhere else. Otherwise, go ahead.
Totally depends what you end up working on as a programmer. If it’s web apps, you’ll be totally fine. All you need is basic arithmetic. Writing a game engine? You’ll need to know some basic to moderate matrix maths…
If you’re doing formal verification using unbounded model checking… good fucking luck.
On average I would say most programming tasks need very little maths. If you can add and multiply you’ll be fine. Definitely sounds like you’ll be ok.
I’m a front-end developer. I sometimes need to solve algebra problems. I’m pretty bad at it because I , but my knowledge that a problem is solvable by math comes in handy maybe once or twice a month. It’s just that on the few occasions that there’s algebra that I can’t figure out how to solve (maybe once a year), I may ask for help from a colleague.
Examples of cases where math comes in handy:
- Pythagoras when I need to figure out the x/y components of a diagonal distance
- Width/height calculations from a variety of parameters
In summary, as long as you know what math is capable of, you probably won’t have major issues. There will pretty much always be someone around to help with the math part if necessary.
As for calculus… I forgot all about the one calculus class I’ve taken and I’ve never suffered for it.
you can program without math, but it will be hard to pass a rigorous interview without math.
You should strive to learn symbolic math at least, and make sure you can do all the leet code problems and explanations using whatever math you are comfortable with.
IMO mathematical/logical/abstract thinking is critical for programming well, but IMO that’s different from “math degree” math.
Software as a means to an end can be used in almost every domain, so proficiency within that applicable domain is often either useful or necessary. That is to say, “math degree” math is likely needed for 3d rendering (certain games), scientific computation (incl machine learning), etc, but maybe not, otherwise. It depends on what software you’re trying to build.
To be more specific, general programming is definitely and specifically different from trig and calc. However, because math is also broad, “mathy” concepts like type theory, relational algebra, set theory are considered important for programming, even if only informally or indirectly so.
Math, despite being a great skill to have, is not mandatory for a large volume of programming roles. It may hurt you in some interviews but interviews are a fucking crap shoot / shit metric either way. Computers do most of the math, so you don’t have to!
Source: I’m dyslexic, suffered from dyscalculia and migraines until I was allowed to use a calculator, and barely passed high school math. No degree. No bootcamp. 8 years as a dev.
I’ve also excelled in multiple roles where colleagues were math or CS PHD’s, and become the senior or go-to on more projects than not. The key part is to know your strengths. I’m never gonna accept a role developing accounting software, or anything that would require me to code complex math on a regular basis. You’d be surprised how far you can get with Google.
I failed calc2 and am gainfully employed as a mid/upper level software engineer.
One guy at work really saved the day because he’s good at math, and made a very slow process much faster because he knows … uh… vector math? He did magic with numpy