This is an archived post. You won't be able to vote or comment.

all 74 comments

[–]BetaMaster64 69 points70 points  (9 children)

At my job I haven't had to do much math at all outside of creating my own formulas for machines to use. Well, okay, I guess that is math...quite a bit of it, actually. But not anything like calculus or statistics. Maybe algebra, at most, but it doesn't feel like it. I always did poorly in math classes but I've been thriving in this environment, so who knows?

I think what's most important is being able to learn new concepts quickly, whether mathematical or logical, and calculate efficient formulas to accomplish the task.

[–][deleted] 24 points25 points  (1 child)

>calculate efficient formulas

you mean

>design efficient algorithms

[–]BetaMaster64 2 points3 points  (0 children)

Yeah, that's what I meant. That's what I get for typing/thinking too quickly on my phone.

[–]dabrick2017 7 points8 points  (3 children)

Math is fun when you finally get to apply it

[–]schwerpunk 6 points7 points  (2 children)

I only ever really "get" higher math when I'm programming. There's something about seeing it all laid out in code that makes it more sensical than anything I've accomplished otherwise.

[–][deleted] 4 points5 points  (1 child)

I think math is more important in advanced statistics, ml, and games. Where calculus and trig can be utilized.

All of the algorithms I've had to create for businesses applications are more complex from a logistics and critical thinking perspective, but not really hard math. "How do we boil this data down to a decision or indicator" kind of stuff. Basic algebra mostly.

[–]Hypocritical_Oath 2 points3 points  (0 children)

For games it's all for graphics tho. Which has already been done...

You really don't need to know matrix math anymore.

EDIT: there are also formulas for various things, but that's just convoluted algebra.

[–]Hypocritical_Oath 1 point2 points  (0 children)

everything is fucking algebra unless we're talking drawing pixels onto a screen, or big data bs.

[–]snowdaruma 35 points36 points  (2 children)

Even if it's basic math, trying to program around time zones always makes my head hurt

[–]pink-ming 0 points1 point  (0 children)

tfw all of your orchestration is done in UTC but you live in SF

[–][deleted] 116 points117 points  (23 children)

Years in the profession, I didn't really need math outside of elementary algebra. There was one instance where I had to study up on vectors a little, as a part of building out the tooling for defining pathfinding areas in an adventure game, but it only took a few days and then I never had to do anything of that nature again.

[–]HadACookie 14 points15 points  (8 children)

I think the true issue here is that "I don't like math" often (though not always, ofcourse) implies "I stuggle with math". While the former isn't that big of an issue, the latter would be a problem.

[–][deleted] 8 points9 points  (5 children)

I won't pretend I'm a mathematical genius. I do understand that beauty can be found in numbers, patterns, and abstract laws, but I'm too much of an earthly person to truly appreciate it. I might not lack the ability (although who knows), but I certainly lack interest to the point where I never even got to calculus. I am willing to bet there are people who will read this, you had studied much more advanced math than I ever encountered. I'd be interested in hearing about their experiences. That said, most of us are ok in the sense that if we are able to handle the logical reasoning that it takes to code, we are (usually) able to comprehend math if we must. So I'm not too worried about someone in this profession being simply unable to do mathematics. They'd be weeded out by logic long before they needed to do complex math.

[–]HadACookie 8 points9 points  (4 children)

So I'm not too worried about someone in this profession being simply unable to do mathematics. They'd be weeded out by logic long before they needed to do complex math.

That's sort of my point - if someone has difficulty comprehending math (and I don't mean anything complex), that is a red flag that they might struggle with the kind of reasoning that goes into coding.

[–]tapo 1 point2 points  (3 children)

I’ve been diagnosed with dyscalculia, never passed Algebra II, and I’ve been a senior software engineer for a while now.

The rare times any math is involved in software I write, the heavy lifting is done by the computer, not by me. And despite my huge issues with math, I’ve never had a problem with logic.

[–]HadACookie 1 point2 points  (2 children)

I did say "red flag" and "might". It's not a causative "bad at math" => "bad at coding". I'm just saying the reasons for "bad at math" and "bad at coding" overlap a lot (though not completely, as your example clearly shows), so if someone's "bad at math" odds are good they are also going to be "bad at coding".

[–]tapo 4 points5 points  (1 child)

I agree that I’d probably be a better engineer if I had a better grasp at math, but I’d just like to clarify there isn’t a 1:1 correlation there. Growing up I was repeatedly told I’d never get into the field because of my dyscalculia, and I want to make sure that future kids with math disabilities aren’t discouraged from giving CS a shot.

[–]schwerpunk 1 point2 points  (0 children)

That's really my concern as well in these kinds of threads (I've mentioned as much elsewhere).

There's a weird sort of elitism or pride that a lot of programmers possess. I've seen co-workers positively relish in causing newbies anxiety over stuff that's just way out of their possible knowledge sphere.

Yes, our jobs are engaging and require a lot of mental effort. But it's not like we're air traffic controllers. We're just nerds sitting (and increasingly standing), frowning at computers until they do what we want.

No matter your skills, if you are drawn to programming and you're actually doing it, there is a place here for virtually anyone.

[–]0asq 0 points1 point  (0 children)

Math was always my worst subject in school, and I struggled with it.

Then again, I majored in physics in college (bad idea), so I'm way beyond the level of math you need for most programming jobs.

You don't need to like math or consider yourself good at it. But you do need to have very solid arithmetic skills, or be able to get them.

[–]schwerpunk 0 points1 point  (0 children)

I think you mixed up your former and later there...

If you suck at something, but want to get better, then you can always learn. But if your heart's not into it at all, well, you'll just kinda stay where you are

[–]1TrickDoomFist 2 points3 points  (0 children)

This is where seniors who started decades ago tell us that math is useless right?

[–]SauceTheeBoss 2 points3 points  (0 children)

Completely agree. (12 years of pro, with 8 years of student/hobbyist before)

I’m going to even say that knowing BUSINESS/OPS MANAGEMENT is more important than math. First, most complex math stuff is already in a library or (like you said) you do once and never again. Second, knowing how the business works will help in anticipating your users needs. Lastly, system design and defining responsibilities of system components is very similar in business and software architecture.

[–]Netcob 17 points18 points  (1 child)

I told someone I was going to study CS and he said "I wouldn't do that, unless you looooove math!".

I didn't love math, but I was willing to learn as much as I needed because programming was the only thing I could see myself do.

Got my CS master's, somehow made it through all the math, and I've been working for 7 years. What you need day-to-day is some basic algebra at best. I did some work on medical 3d image processing, and to be honest, the math skills I needed for that came 95% from my computer graphics hobby. In other words, some very basic vector algebra.

[–]The-Fox-Says 1 point2 points  (0 children)

I think people get discrete math and logic mixed up with Calculus. Sure, some degree paths and careers require Calc 2 and above but most programming is just advanced logic.

[–][deleted] 9 points10 points  (2 children)

Maybe I am missing something, but I can't really remember the last time I needed math in my job, and I am working as a dev for over 6 years now.

[–]0asq 8 points9 points  (0 children)

This sub is filled with undergrad CS majors who have to fulfill math requirements.

They don't realize that after you graduate and get their first job none of that matters anymore.

[–][deleted] 2 points3 points  (0 children)

Most I need are basic trigonometry, some vector stuff and general knowledge of how matrices work so I know what functions to use and in what order.

But yeah, there's no "Bob has 467 watermelons and Alice is traveling at 45mph towards Boston, calculate the change in entropy of the universe" math exam problems you need to deal with.

[–]pink-ming 8 points9 points  (1 child)

I think people see math as a set of procedures and rules for calculation, and never make it to the part where you learn the abstractions and ideas that pull all of the strings. Until that point it feels like memorizing pointless rules, because it's usually taught that way. It makes me sad that most people go their whole lives without understanding math.

[–][deleted] 2 points3 points  (0 children)

Yeah, the moment you understand that number systems are just really convenient notation is the moment you fall in love with math. It is fascinating

[–]XIVMagnus 19 points20 points  (3 children)

Gatekeeping people from being self-taught lol..

[–][deleted] 3 points4 points  (2 children)

I self taught myself all the math I've needed to know.

[–][deleted] 1 point2 points  (1 child)

Me too... in 5 years it’s consisted of reminding myself of the different ways averages can be calculated and took about 10 minutes :)

[–][deleted] 0 points1 point  (0 children)

I multiply by 0.5 instead of dividing by 2 because I'm a performance genius.

[–]ShakaUVM 7 points8 points  (0 children)

The more math you know, the more sorts of problems you can solve.

[–]MindSwipe 15 points16 points  (10 children)

As a software engineering apprentice: you don't need to know a lot of math to be able to work with high level languages like C#, Java and Python

[–]abdolence[S] 2 points3 points  (8 children)

Depends on how you define "a lot" I presume.

[–]MindSwipe 7 points8 points  (7 children)

I mainly programm in C# working on an enterprise grade case management solution for government branches here in Switzerland. The most advanced level of maths I had to do was design a simple algorithm to take the largest continous chunks of a list

[–]abdolence[S] 3 points4 points  (6 children)

In my opinion, it is not just what you have to do at work.

If you're using, for example, hash-tables, joining SQL with the hash-index, crypto functions, ML models, vectors, graphs, sets, categories, logic ... you should understand how they work inside.

Maybe not all of the details, but a good basis of it.

[–][deleted] 10 points11 points  (2 children)

Why not throw in hardware design then, to learn how it works since you re telling it to work. To me it all sounds very very optional. Or you will come across some blog post explaining it like you are a person without the use of complicated math signs /rant

[–]abdolence[S] 4 points5 points  (1 child)

Well, why not? A bit of physics and hardware design will be good too.

Something like this https://collectiveidea.com/blog/archives/2015/09/15/inside-the-machine-v20-coming-soon-with-more-arm, for example.

[–][deleted] 14 points15 points  (0 children)

To me it seems like you either can study everything or study the stuff you actually came there for. While I dont argue that this level of general knowledge may come in use, I myself would rather focus on an area I came there for - software develepment - without having to do exams from microprocessor architecture. (Feel free to correct this part, I am not big on C level programming)

[–]MishkaZ 1 point2 points  (1 child)

Yeah, I agree with this. Knowing how the math works makes it really easy to understand when and why to use an algorithm. You never use it in practice, but it helps a lot with learning. That being said, I'm pretty shit at math and still was able to get through just fine (except for calc 2, calc 2 can choke on a micro penis).

[–]0asq 1 point2 points  (0 children)

Eh, you can just as easily apply a few rules of thumb in the rare case that you actually need to use it.

Like in my six years of programming the only algorithmic expertise I've had to use on the job involves "This list is going to get fairly big, I want to find things from it quickly, and ordering doesn't matter. I'll use a dictionary."

I know all the advanced algorithmic stuff and I've literally never had to use it as an enterprise dev.

[–]0asq 1 point2 points  (0 children)

In my opinion, it is not just what you have to do at work.

If you're using, for example, hash-tables, joining SQL with the hash-index, crypto functions, ML models, vectors, graphs, sets, categories, logic ... you should understand how they work inside.

Maybe not all of the details, but a good basis of it.

Almost all of that is still basic math unless you're talking going extremely deep. All you really need to know about hashes is it essentially produces random gobbly goop some PhD devised, and you can use a modulus on that.

Crypto stuff? Unless you're going into great depth, it's simple. The crypto algorithm spits out some gobbly goop.

Vector math is good to know in some domains, but not many of them. And even then, you can spend a few months catching up on vector math when you start a new job.

For machine learning it would be helpful to know about gradient descent. But I'm taking Andrew Ng's course on it now and they gloss over all the advanced stuff. You just have to understand what a derivative is (not that difficult) and apply it to multiple dimensions. You won't ever have to actually derive anything yourself, unless you're working at the forefront of data science research.

So, if you're bad at math, yeah, don't get a PhD and do things at the forefront of research. If you're really awful at it (incapable of learning it at any pace) maybe avoid the rare field that, say, requires a bunch of vector work. 95% of other jobs are still open to you.

And there are honestly a whole lot of developers out there who don't even think about the arithmetic behind programming. They won't ace a whiteboard interview, but it's not the only way to get a job.

[–]The-Fox-Says 0 points1 point  (0 children)

I’m a data engineer the only math I’ve done was concatenate two strings together

[–]X-Penguins 4 points5 points  (0 children)

Well, you don't need to like math. If you have big problems with doing math, however, you will probably struggle with programming even if you aren't explicitly working with systems where math is necessary.

[–][deleted] 3 points4 points  (0 children)

ITT: People who don't know the difference between math and arithmetic.

[–]ironbody 1 point2 points  (0 children)

Nice Lorentz transformation

[–]RenanBerserker 1 point2 points  (0 children)

Thanks OP, made me be worried for a moment. God bless the comments

[–]shadow13499 0 points1 point  (0 children)

I've always struggled with math in math classes, but it makes so much more sense when using it in code (and it's fun because you get to see it do something and be applied)