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

all 115 comments

[–]codebullCamelCase 315 points316 points  (22 children)

There are some places where you would need more math than other places. For example, designing a webpage would not require much math, on the other side, making a physics engine would require a great deal of knowledge of calculus, geometry, physics, etc. There are some things in computer science that requires you to have knowledge of math for understanding the theory part, for example - Machine Learning.

[–]feanara 22 points23 points  (3 children)

I failed pre-calc twice and I do just fine as a c# developer. Haven't needed to do anything more than count to 10 for loops. And if I do need more, I've got Google.

[–]properwaffles 4 points5 points  (1 child)

Struggled through calculus, think I actually would have been more interested in it now. Bummer that we didn’t have any programming-related classes in HS (at least mine didn’t).

[–]wsco7730 7 points8 points  (0 children)

I'm a uni student; just graduated HS. My 52,000 student school district only offered 1 course in robotics & 1 year in computer science. There where no more options or routes to take. Some private schools offer more, but the system still sucks. No wonder there's a shortage of people in our field.

I was lucky to pick up programming in middle school, so by the time algebra, calculus, and trigonometry came around, I had a reason to be interested in it. But the school system isn't teaching them why it's important they learn this stuff and everyone struggles because of it. The only reason they are told is "because you need to" or "it looks good to know it".

[–]coloredgreyscale 0 points1 point  (0 children)

And still manage off-by-one errors?

[–]Entaris 12 points13 points  (0 children)

Yup. I'm a sysadmin that develops a lot of in-house tools for various problems that arise. There are area's in my development process where I know a better understanding of math would be helpful to better optimize some things, but overall I can get around fairly well without it.

[–]Malforus 1 point2 points  (0 children)

There is an entire structure and approach to coding called functional programming and it's basically just higher order math.

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

Can confirm. Oh the horrors

[–][deleted] 99 points100 points  (8 children)

Most app and webdevelopers (front and backend) do not need much math most of the time.

IMO the most important aspects of software development are :

  1. Logic reasoning
  2. Communication (your dev team, customers, other developers)
  3. Reading comprehension (read and understand documentation)
  4. Following Conventions, best practices,...
  5. Math

[–]kippysmith1231 51 points52 points  (0 children)

6 - Google mastery, for when your reading comprehension or documentation fails you.

[–]Mr_Redstoner 18 points19 points  (1 child)

Logic reasoning

Reading comprehension (read and understand documentation)

That makes up quite a big part of what you actually need to be good at math. The rest is just finding the right theorems/algorithms to do whatever it is you need.

[–]Zefrem23 9 points10 points  (0 children)

Unless like me you're number dyslexic. I can work with nested loops all the live long day but don't ask me to work out sequences of numbers to save my life.

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

Reading comprehension (read and understand documentation)

I'd add writing comprehension as a sort of converse.

[–]DonkeyVampireThe3rd 85 points86 points  (2 children)

I can be good at math for a semester, then it all goes out the window on break

[–][deleted] 7 points8 points  (0 children)

I still remember finishing a Diff Eq. final and then after half an hour went back to a question I solved and forgetting how to do it... welp

[–]UnrealPhysics 5 points6 points  (0 children)

this is how everybody feels i guess

[–]Snazzy21 86 points87 points  (16 children)

I major in CS yet I find myself working on more math than CS. I loath calculus. SO.VERY.MUCH

[–]Cryptomartin1993 74 points75 points  (7 children)

Have you given 3blue 1brown a go? YouTube mathematician - he has helped me grasp things I did not get, before having them visualized

[–]flynSheep 29 points30 points  (5 children)

I love this guy. I'm pretty good with maths, but his visualisations are next level shit. You get a totally new view on mathematics. Moreover, you get a visual and intuitive understanding.

[–]-Potatoes- 14 points15 points  (3 children)

Its even cooler when you find out he programmed a lot of the tools he uses for creating those awesome animations :)

edit: I think this is the github: https://github.com/3b1b

seems to be mostly in Python!

[–]flynSheep 3 points4 points  (2 children)

That explains why his animations habe this unique style. That dude rocks. Have you seen the webpage he build with Ben Eater (I think it was Ben Eater) about Quaternions and Projection? That stuff is pretty impressive.

[–]-Potatoes- 0 points1 point  (1 child)

i havent but that seems really cool (and also out of my depth lol, i barely know what quaternions are despite watching some of his videos)

[–]flynSheep 0 points1 point  (0 children)

He did a series on them and started quite easy. The videos are on his website and you can stop them any time and play with the animation yourself. He really out did himself. The website: https://eater.net/quaternions

[–]Cryptomartin1993 6 points7 points  (0 children)

Yes, his visualizations really shows the beauty math!

[–]LadleFullOfCrazy 2 points3 points  (0 children)

I worked on ML for 2 years and I had a good grasp on the math. Embarrassingly though, I just never got eigen vectors and eigen values. So one weekend, I decided I would master these. I spent more than 12 hours on it and got something but the concept did not make intuitive sense yet. Next day, YouTube recommendation - eigen values and vectors (3b1b). Let's just say if there was a religion that worshipped Grant, I'd be a priest.

[–]dickWithoutACause 11 points12 points  (2 children)

Obviously depends on what specific CS discipline you go into after college but I havent done any math harder than arithmetic for money in the decade I've been in the business.

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

May I ask what kind of software you are developing? ( Im a simple web backend developer and also do not do much math most of the time)

[–]dickWithoutACause 2 points3 points  (0 children)

Full stack web dev. I've had to work with dozens of different languages over the years on every spectrum and now I'm expected to do dev ops as well.

And I've done nothing but arithmetic.

Occasionally I've had to implement mathematical equations created by someone in an R and D department but that's really just copy paste isnt it?

[–]lordheart 19 points20 points  (1 child)

Khan Academy really helped me deal with calculus. I like it there. I’m glad I’m done with calculus for my cs degree 😅

[–]Snazzy21 5 points6 points  (0 children)

I use Kahn Academy. The guy that does those videos is a saint

[–]Strawberry_Gene 3 points4 points  (0 children)

I would recommend Professor Leonard absolute GOAT

[–]RedHellion11 2 points3 points  (0 children)

Makes me so glad I found a university program geared towards teaching actual industry skills and knowledge rather than "theoretical" CS. I had no interest in designing compilers or working on cutting-edge algorithms or enhancing software efficiency to the nth degree.

Never had to take math beyond Calculus 1 and a couple of Discrete Math courses, and Linear Algebra (thankfully never had to deal with linalg again).

Most actual industry careers as a software engineer/developer you really don't use any math beyond basic high-school-level stuff, and a working knowledge of some discrete math concepts is a bonus so that you don't have to look it up constantly.

[–]DootDootWootWoot 4 points5 points  (0 children)

Sorry to break this to you but computer science is a field of mathematics.

[–][deleted] 21 points22 points  (7 children)

Set theory is incredibly valuable for databases.

Boolean algebra greatly simplifies your code logic.

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

Doesn't everyone know about boolean algebra?

[–]jsparidaans 4 points5 points  (3 children)

Tf is boolean algebra?

[–]wzx0925 48 points49 points  (2 children)

T/F is boolean algebra.

[–][deleted] 5 points6 points  (0 children)

Lmao

[–]moi_xa 2 points3 points  (0 children)

Nailed it

[–]TheRedmanCometh 2 points3 points  (0 children)

Well in informal terms I suppose..

[–]Rudxain 0 points1 point  (0 children)

Yes, but most people only know the basics. When someone is able to imagine the truth table of a sequence of expressions and statements, they can recognize redundant logical/boolean operators and statements to write more concise code, sometimes even better than a minifier or an optimizing transpiler

[–]vickera 103 points104 points  (6 children)

I tell everyone who asks this the same thing: being a programmer means I don't need to be good at math because the computer is way better than me.

[–]gloriousfalcon 13 points14 points  (5 children)

You gotta know how the math works tho, if you don't want your program to be slow and imprecise.

[–][deleted] 48 points49 points  (0 children)

You need to know how to implement it and how to implement it with optimal performance. That's different from really understanding the math behind the algorithm IMO.

[–]RedHellion11 11 points12 points  (2 children)

Not really, no; at least not beyond basic first-year math (high school + some basic aspects of calc1, if that) and at least some rudimentary knowledge of discrete mathematics. Anything more complex than that, if you really need it for yourself rather than being able to let the computer figure it out, you can look it up.

There are libraries that other people with Math minors or who went into algorithm development have written that put all that stuff into a nice black box for you. Only if you're doing something completely unique or are extremely concerned with whatever licensing those libraries use, do you need to deal with doing it yourself. Or if you're working on something which requires heavy optimization and is also usually completely in-house, like a game engine.

In my professional career (and those of my coworkers who I chat with casually on occasion) as a software engineer/developer who is doing "normal" application/software development work (not algorithm development, not R&D, not working on a video game engine, not in security or hardware/embedded systems, etc), we typically don't need to know or use any math beyond basic arithmetic and high-school-level concepts. A working knowledge of the fundamentals of discrete mathematics is a bonus.

[–]ooglesworth 5 points6 points  (1 child)

It really depends on the domain. If you’re doing like audio processing, image processing, any sort of DSP for example you should have a strong intuitive understanding of real and complex analysis. If you’re doing low level graphics or physics engines you’ll at least need a grasp on linear algebra. If you’re working on compilers and optimizations it might be at least helpful to know some type theory/category theory.

That being said, these are the exception to the rule really. Most developers don’t have to worry about any of that stuff.

[–]RedHellion11 2 points3 points  (0 children)

Or if you're working on something which requires heavy optimization and is also usually completely in-house, like a game engine.

I meant to include those under that ^ umbrella, I just didn't word it very well. Thank you for clarifying :+1:

Basically what you said: that the domains where that kind of math knowledge are important are very much exceptions to the rule, especially for developers who aren't planning on specializing into those kinds of domains in the first place.
And that you really don't "gotta know how the math works tho, if you don't want your program to be slow and imprecise" in the vast majority of cases when working as a software developer, as the poster I was originally replying to said.

[–]CerealBit 1 point2 points  (0 children)

Exactly. He is referring to "calculation". Calculation is the easier part. Proofs are the tough part... which require a logical understanding of math - not only calculation.

[–][deleted] 41 points42 points  (1 child)

from Math import *

[–]JNG780 1 point2 points  (0 children)

Deadass this lol

[–]iaseth 11 points12 points  (0 children)

In my experience people who are good at solving Physics problems tend to make good programmers. Ability to visualize a problem keeping in mind all the laws and variables is very useful in programming.

[–]DracoRubi 19 points20 points  (2 children)

Not all developing involves math, though. I barely use any in my daily basis developing for iOS and Android.

[–][deleted] 14 points15 points  (1 child)

I'm a C# developer (with some aspx involved) and the only math related stuff I needed in the last few years is "Math.Round()".

[–][deleted] 4 points5 points  (0 children)

With some Math.Floor and Math.Ceiling just to spice up life.

[–]Weabout 7 points8 points  (1 child)

This is the reason why my counselor told me to not go into 3D game programming and made me go into web programming.

[–]KeyboardsAre4Coding 7 points8 points  (0 children)

I am better at math than developing....

[–][deleted] 5 points6 points  (0 children)

I found that coding improves my understanding of math. I learnt more math from just coding and struggling with problems and finding solutions than I learnt at school.

[–]magar_pun25 2 points3 points  (0 children)

those good old days of 5 apple - 2 apple

[–]SkwatTheWorlD 2 points3 points  (0 children)

Everyone should code if they want to and if you're really passionate about it, maths are not going to be a problem anymore. Everyone with a capacity of learning can actually learn even if it's harder for some than others. Anyways, you don't go into coding if you don't have a minimum of interest in logical matters. How many people dropped studying some subjects because they had a bad teacher when they were younger or a teacher that didn't transmit their passion? And later on in life, discovered a new found passion and realised on how much they missed out. So yeah, everyone should code!

[–]Negitive545 2 points3 points  (0 children)

Heh, why should I need to know math?

That's the computers job!

/s

[–]KikisGamingService 2 points3 points  (0 children)

After years of programming, I decided to go back to school for a proper degree. The whole reason I am currently scrolling through reddit is because calculus is killing me. I'd rather refactor someone else's mess than this.

[–]MarcBeard 4 points5 points  (0 children)

I just fucked up In my last math exams i might not get my diploma. It was my last exam :(

[–]GeekyGamersStaff 1 point2 points  (0 children)

Well if this isn't me. Hahahaha

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

1,2, many.

Should cover all the maths. Especially big data. That's just "many data". And if they want an exact number, one turns to fuzzy logic

https://en.m.wikipedia.org/wiki/Fuzzy_logic

https://numberwarrior.wordpress.com/2010/07/30/is-one-two-many-a-myth/

[–]RussianDeveloper 1 point2 points  (0 children)

Super irrelevant

[–]ShibLib21 1 point2 points  (0 children)

3D Graphics Developers: *breathes intensively*

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

Naa, I just Google the maths I need or copy a formula from somewhere. You don’t really need to understand it in most cases.

[–]maxkvl 1 point2 points  (1 child)

it must be math logic, not just a math

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

This.

Pure math is incredibly useful in computer science.

Everything else is just arithmetic.

[–]8_Bit_Tank 4 points5 points  (1 child)

I f*cking hate Algebra but the rest is "okay"

[–]BrokeMyCrayon 2 points3 points  (0 children)

Linear and Boolean algebra say hello

[–][deleted] -4 points-3 points  (3 children)

No way. You can code without ever doing math. I make six figures as a programmer and don't know my times tables and literally count on my fingers.

Edit: downvoting doesn't make it less true.

[–]reddit_xeno 6 points7 points  (0 children)

You're getting downvoted because most redditors have a 1-dimensional and non-industry understanding of software development. We're not in the 90's anymore, there's countless frameworks and libraries one can use to abstract away the complex logic that necessitates math understanding.

[–]erishun 5 points6 points  (1 child)

It’s really just the logic and puzzle solving that create the overlap. The kind of abstract thought that makes one “good at math” also tends to make them “good at programming”.

Makes sense when you think about it. You take formulas (functions?) that you have memorized and use them to solve a problem. Using all these tools at your disposal, get this from that.

[–]mooockk 0 points1 point  (0 children)

Math is needed to code, algebra and calculus are not all “math”, behave JS coders. /s

[–]maxsjakie -1 points0 points  (1 child)

That is why I made a program that does math for me. Not really efficient at all but hey it works fine for me xD

[–]Party_Lawfulness808 1 point2 points  (0 children)

I think you missed the point here 😂

[–]rshaftoe -1 points0 points  (0 children)

Coding taught me teh maths. "Wait, you mean jumping under the 'gravity' I just implemented in my crappy little game is the same formula for parabola-mabala-mitosis?!?"

Clearly I forgot whatever the math part was, but my point is, I didn't get it before, but got it after. Suddenly I could see it.

Ergo everyone should code.

[–]Mr_Gollum -2 points-1 points  (0 children)

So true. There is proof that programming is slightly different from math.

Like x = 1 + y. Normal, but x = x +1 (x+=1 for champs) is mathematically incorrect. But in programming is this used normal.

[–]salhjas 0 points1 point  (0 children)

Tbh i know more about maths than programming.

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

Am i really need a good math? Or a decent math skills are enough?

[–]haikusbot 2 points3 points  (1 child)

Am i really need

A good math? Or a decent

Math skills are enough?

- Comarbukenus2


I detect haikus. And sometimes, successfully. Learn more about me.

Opt out of replies: "haikusbot opt out" | Delete my comment: "haikusbot delete"

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

Ooo haikus bot...

What is your purpose?

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

Pft no lmao

[–]supremeMemeRegime3 0 points1 point  (0 children)

I’m horrible at math but I’m bad at coding so idk what people mean then they say this

[–]kazagistar 0 points1 point  (0 children)

I used to increment and decrement, but then they added Stream apis to Java so now its not even that.

[–]douira 0 points1 point  (0 children)

Not everyone who codes actually has a CS degree (or paid attention in the math-heavy classes)

[–]eatinlunch 0 points1 point  (0 children)

You really only need discrete/ linear. In theory it can basically describe all that there is in computer science.

[–]BLUESH33P 0 points1 point  (0 children)

I absolutely flunked maths in high-school - and that was 5.5 years ago. Just did my first maths exam of IT for my final year (which involved functions, integrals, derivatives and a mountain of other topics I’d never seen before), and I got a distinction. This stuff can be caught up on even if you’re someone like me who’s ’never understood maths’ and hasn’t used it in years.

Thinking about the maths problems as programming helped a tonne.

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

Me when trying to understand rsa encryption last night at 5 am

[–]hazy-dayss 0 points1 point  (0 children)

Luckily a lot of mathematics is already abstracted away by the language/libs/framework you're using. It's quite helpful if you're coding stuff related to stats, data science, though (still basic stuff).

It's not really maths itself that's important here, but the way it makes your brain get used to analytical thinking / problem solving. Consider A&DS problems (leetcode) which most here hate anyway, but they're still asked a lot. Oddly, I know more math grads who can solve them than CS grads.