DEV Community

Discussion on: Even Though She Was Bad At Math, She Coded

Collapse
 
val_baca profile image
Valentin Baca • Edited

I'll come at it from the other side:

This is going to come off as bragging, but please read to the end: I used to rock at math. All through grade school up to when I finished undergrad in computer science and electrical engineering, math was my strongest subject, bar none. I was seriously one of those for which an A was given, I was shooting for 100%. Calculus and differential equations: it was as natural as adding.

Has it helped? Not a really a damn.

In fact, my math skills have plummeted in the 7 years that I've been paid to be a software engineer. Anything beyond times tables and dinner tip calculation means I'm reaching for my calculator.

But here's the secret: it doesn't matter. Math, at least as most people think of it which is solving equations, is not what programmers do. Reasoning and Logic matter. Often they're the same skill for many people. I'd say that my mathematical intuition fostered good reasoning skills. Even when the math fell away, the reasoning stuck.

The math used in programming is very different from what you had in grade school or in calculus.

Here's the math I use often now:

  • Big-O notation, Graphs, Algorithms. With computers we deal with a gigantic range of magnitudes. We write statements that take nanoseconds to execute, work with terra- or petabytes of data, millions of users, etc. There's a gigantic difference between O(n) and O(n2). It doesn't come up a lot, but if a candidate writes an O(n3) algorithm and there's a well-known O(nlogn) algorithm, they're not getting hired.
  • Estimations: not really math, but related to the "magnitudes" I mentioned previously. How long does it take to send 50MB over LTE? It doesn't have to be very exact, just on an order of correct for off-the-cuff estimations. Milliseconds? Seconds? Hundreds of Seconds? Hours? etc.

Yes, there are many places where math is incredibly important but you probably don't need them to do most website, app, server or UI/UX work.

I wish you the best and hope that this has helped!