Struggling with Math, But Still Trying to Be a Programmer—Advice?
Posted by HeyPanicPanda@reddit | learnprogramming | View on Reddit | 7 comments
I've never been good at math—not even the basics—but I still want to be a programmer. I’ve learned HTML and a bit of Python, and recently, I came across logic gates and their input-output combinations. It felt interesting at first, but sometimes I wonder if I’m actually making progress or just fooling myself. Some days, I feel optimistic, like I can push through, learn at my own pace, and eventually become good at this. Other days, I feel completely hopeless, like I’m just wasting my time on something I’ll never truly grasp.
I know programming is more about logic than math, but I can’t help but feel discouraged when I struggle with concepts that seem easy for others. Have any of you been in the same situation? Should I keep pushing forward, or is this just a losing battle?
chaotic_thought@reddit
You don't have to be "good" at math in the typical sense that people talk about being good at math (e.g. ability to solve large equations flawlessly, or to prove things impeccably, or to do mental math accurately, etc.).
Some skills in math are useful in programming, though. Perhaps is an example from grade-school, the "long division algorithm" aka Euclidian Division that most people learn in primary school. In "real life", most people tend to use a calculator for this -- but learning the steps to do something like this on paper, systematically, is basically what all algorithms and all programs consist of -- it's breaking down a problem into smaller things, solving them systematically, and then at the end you "test" your result to see if it is correct (e.g. multplying the result by the divisor to make sure it yields back the original dividend).
I'm also not good at math; nowadays I usually keep Python open and use it as a "desk calculator". For heavier "real math" problems, I tend to use a computational tool such as Sage to solve the "heavy" mathematical problems, e.g. calculus+, or to graph functions, etc. Or for "math heavy" times I will keep a trusty TI calculator at my desk and do it without the distraction of a full windowing environment that is on the computer. The amount of mathematical power that those handheld calculators provide, whilst running on only a few AA batteries is still amazing to me.
I seem to recall an interview with Bill Gates one time when the interviewer asked him "how much math do you need to know to do computer programming?" and he said something like "addition and subtraction." I don't remember it 100% but that was the gist. Perhaps he exaggerated a little bit in the answer, but not much.
HeyPanicPanda@reddit (OP)
Wow, this is exactly the kind of perspective I needed to hear. I’ve always felt like my lack of math skills was a roadblock to programming, but the way you broke it down especially with the long division example makes so much sense. It’s really reassuring to know that even experienced programmers rely on tools like Python or SageMath for complex math. Also, that Bill Gates quote? That hit hard. If one of the greatest minds in tech thinks basic arithmetic is enough to get started, maybe I really don’t need to stress so much. Seriously, thank you for this it’s incredibly motivating!
Radiant-Rain2636@reddit
You’re right. Programming is more logic than math. The times you feel stuck in logic/mathematics is the times when we are building our programming muscle. It feels awful when we are in the trenches. But of you go back to do the same program, you’ll see it feels like a breeze.
XandrousMoriarty@reddit
I've been a software developer and a systems administrator since the late 1980s and never once have I had to any more complex math than just basic operations and logic. I have worked for a large bank, the military, the federal government, hospitals, and dedicated IT companies and nothing more complex than simple equations. Logic and analysis and how to simplify a problem have been far more useful skills than day knowing trigonometry. Just my two cents worth.
chaos_donut@reddit
it kind of depends on the language and the field you eventually want to find work in.
You probebly want to be more on the mathy side if you want to go into datascience or work on a game engine. however webdev for example requires way less of that.
I would recommend to focus on route however and get good at that. Its wat easyer to learn a concept in another language if you already know it in another. It also helps with advanced concepts, which are often designed because of an issue developers ran into, and its therefore way easyer to grasp the concept if you have ran into that same issue before.
But in the end of the day, if your dont enjoy it, dont do it.
RoxasBestBoy@reddit
It takes time and everyone learns at a difference pace, keep at it and eventually it’ll become a little easier, practice makes perfect
ToThePillory@reddit
You're too young to give up, just keep learning.
If you want to be a developer, you have to put in the hours.