Passion for programming but horrendous mathematical skills.

As a mathematician myself I agree that you don't necessarily need to be a mathematician to program, but I will say that it depends on the domain and having some understanding is essential for anything nontrivial. For instance, you're probably not going to be doing anything too intensive if you're writing a web page in PHP, but if you're making a video game or working with engineers in other fields you definitely will be. Mathematics is everywhere in programming even if you don't consciously use it. 3D rendering is vector calculus and matrix algebra. Understanding why you're getting a ridiculous floating point value out of your code is numerical analysis. Finding the best route in your GPS is graph theory. Google's PageRank algorithm is an eigenvalue problem. CAD is computational geometry. And so on. Having at least a superficial understanding of this is hugely beneficial. You may not be implementing them yourself (which is the really hard part), but no matter what you're doing you're going to be using it behind the scenes. Some understanding is needed to make informed decisions (e.g. should I choose a linear search or something more clever for this problem?) and diagnose errors when something goes wrong (why is this function giving me back -NaN???). I'd say a decent level of knowledge for the typical programmer is enough that you at least know the right person to ask when you have a question. You don't necessarily need to be able to deal with any issues you encounter, but you do need to know how to recognize that there is an issue and be able to find an expert to advise you. I'd liken it to learning to cook by memorizing recipes and repeating them exactly. You can certainly learn to cook like that, but what happens when the recipe calls for cheddar cheese and you only have jack cheese? Sometimes you can substitute them, sometimes you can't and you need to know the general principle of why to choose one versus the other in order to make a choice. What you don't need to know though is the nitty gritty chemistry of different cheeses and all the reactions etc. And like others have said, the only way to get better is practice. Hard work trumps talent every single time.

/r/AskComputerScience Thread