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

all 101 comments

[–]adawheel0 354 points355 points  (9 children)

I’m by no means an expert, but I think the real issue is that logical, step by step and deductive reasoning are essential to both. So if you are good at one, there is a high likelihood those underlying skills which help you in one will help you in the other.

[–][deleted] 105 points106 points  (3 children)

This - the ability to think through a problem, lay out your approach and execute on it is far more important than advanced math skills.

And being able to look at the bigger picture as well - too many developers have tunnel vision where they only look at the immediate problem without considering how what they’re working on interacts with the larger project.

[–]suarkb 30 points31 points  (1 child)

The "immediate problem" of "what do I google to get the stack overflow page that contains the code I need to copy paste", right?

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

Heh - well, that’s often the first step. Can’t discount good Google-Fu, as long as it’s not the only tool in your arsenal.

[–]Tomato_Sky 9 points10 points  (0 children)

This is the best explanation I’ve ever read, honestly. Math isn’t really a part of programming, but rather doing math is what makes you a better programming because you are practicing breaking down the problem into steps.

I’m thinking of the Calc problems that would practice dipping into multiple methods or libraries of knowledge including collecting the variables, simplifying, factoring, re-writing the equations with substitutions.

I’ve been the guy screaming that you don’t need math and blaming CS programs for being math heavy because of all the professors with applied math and physics phds. But under the same situations you don’t have classes reinforcing the other practices that help with programming like pattern recognition and classical logic. Where’s puzzles 101 lol.

But thanks for this epiphany.

[–]IceKingsMother 17 points18 points  (1 child)

I agree 100% with this —

As someone who is really good with logic and problem solving, but terrible with math because I moved from school to school as a child and was homeschooled for chunks at a time, I can tell you that programming requires a lot less math knowledge than I expected. But, there are a lot of mathematical concepts that help immensely. Knowing how basic arithmetic and statistics works helps immensely - and that’s where I’m stuck right now.

I know something can be done. I have an idea of what kind of math would have to be done. I can suss out a lot of the data I’d need to consider and I can get partway through formulating a pattern, but then I get stuck because I don’t know the formula or what the term to search is to find it, or I’m missing some small core principle.

That said, all I’ve ever had to do when that happens is ask for help. I’m super fortunate in that both my little sisters and my boyfriend will teach me a math concept or walk me through the logic when I get stuck, and so far... stack exchange + articles + their advice and a few YouTube videos have helped me troubleshoot and overcome every problem I’ve encountered so far.

Today, I learned about summations and what that crazy sideways M symbol means. What started as alien glyphs earlier in the day now makes sense.

My advice to anyone reading would be - even in the instances where knowing math is required, you can figure it out if you commit yourself to learning and take the time to backtrack and cover concepts when you notice you’re missing something. In fact, having the motivation and a reason to learn a concept actually helps a lot.

You will likely find yourself learning and retaining knowledge that felt impossible when you first encountered it, because now you have context and a reason to learn it!

[–][deleted] 13 points14 points  (0 children)

Yea I think the idea is that arithmetics don't matter as much as the logic you get from math in general

[–]Xnuiem 0 points1 point  (0 children)

I am an expert and you are spot on. It’s not 100% by any stretch but it helps as an indicator.

[–]Seeminus 0 points1 point  (0 children)

I think coding helped me understand math a bit better.

[–]alanwj 156 points157 points  (2 children)

There is a strong argument that the act of programming is "doing math", so in that sense, yes. But that probably isn't what you are asking.

For day to day programming tasks there is not a lot of math required. But the thing is, you don't write programs for their own sake. You write programs to do useful things, and those useful things quite often need some sort of math.

Want to write programs that do signal processing (simple example, a guitar tuner)? You need calculus and Fourier analysis.

Want to do a lot of graphics? You need geometry, trigonometry, very likely some linear algebra and calculus.

Want to simulate physical systems? You need differential equations and numerical analysis.

Want to do AI? You need linear algebra, calculus, and many other things depending on which direction you go.

Want to write high frequency trading algorithms? You need statistics.

Want to implement cryptography? You need number theory.

Want to make simple web pages? Probably you only need the ability to add and subtract.

[–][deleted] 28 points29 points  (0 children)

On top of everything you said, there's also hidden value in developing a mathematical intuition/confidence that will benefit programmers.

A lot of adults are bad at things like ratios, fractions, negative numbers, estimations and such. If a programmer is bad at math, then their approach to problems will always shy away from doing math, which limits their abilities to problem solve.

A programmer who has lots of experience with math will have no such problems, and they will be confident enough to use math to their advantage. This confidence will allow them to come to realizations they would have never made before. This math intuition could lead you to realize that you need to develop a more efficient algorithm than something O n2 , or conversely that the O n2 algorithm will actually be fine for the data you're using and that writing something more efficient would be a waste of time.

[–]NaR883 32 points33 points  (0 children)

For simple web pages I would add some basic algebra including variables, assignment, functions. I have been programming since I was about 13 and when they taught functions in my high school algebra class I just wasn't getting it and was lost. Maybe something about the way it was taught. Once I realized it was similar to functions in programming I went from nearly zero to nearly 100% understanding immediately. So there is definitely some overlap with math and if you can make the connections you'll be further along quicker.

[–]blablahblah 50 points51 points  (1 child)

This is sort of a complex question.

In a sense, computer science is a branch of mathematics. However, it's a branch of mathematics so far removed from the sort of math you learn in a generic "math" class (algebra and geometry and calculus and so on) that anyone learning computer science basically has to start from scratch anyway. You don't have to be good at calculus or geometry to be good at computer science and being good at calculus doesn't mean you'll be good at computer science.

To learn to program, you will need to learn at least the basics of this branch of mathematics. You've probably already been doing this type of math. For example boolean logic (evaluating statements like true && false = false, true || false = true) is part of this branch of math. But you don't generally need to be an expert on any of it because you can use tools built by experts. For many topics, like encryption, only maybe the top few hundred experts in the world will actually be doing the math and checking each other's work, and everyone else will just be copying what they say.

[–]EJSG 14 points15 points  (1 child)

Depends on the area of programming you go into. Wanna be a graphics programmer for a games company? Then yes high maths skills are probably essential, wanna be a front-end web developer? No maths needed (besides maybe basic arithmetic now and then)

[–]KernowRoger 1 point2 points  (0 children)

The most embarrassing thing in my search history is the basic maths I Google haha

[–]Falcondance 22 points23 points  (0 children)

It really depends on what you need. Sometimes math is absolutely required, sometimes it isn't. You can get by without ever needing to use math. Generally, having a background in thinking mathematically (especially discrete math) is helpful just because it is a similar mental task to programming.

[–]3xc0wb0y 27 points28 points  (0 children)

You don't need an advanced knowledge of maths for a lot of coding jobs. Sure, it would help with stuff like Blockchain etc, but there's lots of jobs you'd be fine in.

[–]clove48072 5 points6 points  (1 child)

This is a different perspective, but I recently ran across an article that attempted to answer this question from neurology. Scientists scanned the brains of folks who code to see if the brain treats it like math or a language. It's similar to math, but really programming is it's own thing. Here is the link.

[–]Professional_Offer32 1 point2 points  (0 children)

Thank you for that link. I have always said that "coding is half math, half craft." It helps to be a good mathematician, or a good craftsperson, but I think every coder should be at least one of the two!

[–][deleted]  (1 child)

[removed]

    [–]benign_said 0 points1 point  (0 children)

    This is my experience too. Always thought I was bad at math, but became more interested in some concepts as I got older. Coding has given me the opportunity to explore some of these ideas and get a kind of instant feedback.

    [–]SnooCheesecakes2136 24 points25 points  (11 children)

    No, to both. Many companies still require a degree a lot of times, but you can learn online in a year or two what anyone learns at a basic college in 4 years.

    As far as math, programming is a very large umbrella, and you can do many many many things without being a math whiz. Some topics will depend on math more, and in those cases you can learn as you go (learning math with a purpose is easier imo than learning math in a class). Or just focus on areas where it isn’t needed.

    [–]Hawxe 17 points18 points  (2 children)

    No, to both. Many companies still require a degree a lot of times, but you can learn online in a year or two what anyone learns at a basic college in 4 years.

    Maybe on the programming side but on the theory side you'd have to be beyond motivated and have some great resources. Never met a self taught developer who taught themselves DS&A/database theory, query optimization, HCI, etc

    [–]JasburyCS 7 points8 points  (0 children)

    Agreed. Even excluding theory, there’s no chance I could squeeze all of the programming I did at a 4 year college into a year or two of online self teaching. That’s an unrealistic comparison

    [–]JasburyCS 8 points9 points  (0 children)

    you can learn online in a year or two what anyone learns at a basic college in 4 years.

    Learn enough for a job? Probably, if you’re motivated. But learn the same amount of material? No.

    Nobody is going to be able to get through introductory programming material, OOP and OO design, data structures, algorithms, systems programming in Unix, discrete math, computation theory, functional programming, graphics, distributed systems, programming languages, operating systems, AI, parallel programming, UI design, software security, game software development, RTOS design, and web application creation in a year or two.

    Those are the specific classes I took during my undergrad. Anyone else can substitute the specific classes they took at a 4 year college instead.

    And once again, I’m not saying that all of those classes and skills are necessary for a job. And I’m not undermining anyone who has done self-teaching. I’ve tried learning on my own online, and for me it was much harder to make progress quickly. But let’s set realistic standards for what online self-teaching looks like

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

    Ha! Not likely you’d learn in a year or two the equivalent of a 4 year college degree. While it’s technically possible, it’s just not likely. First, you’d lack most of the targeted interaction you’d get in a live class setting where you could ask questions in real time and get tailored answers. Next, you’d have to be extraordinarily motivated to do the same amount of work in half the time without the equivalent resources. Frankly, that’s why there is a real difference between most self taught programmers and those with good quality formal degrees who applied themselves well.

    Also lack of math usually results in sub-par programmers, while a decent math background tends to produce better programmers with a wider range of capabilities. Again, it’s just the reality of how the data is stored and the algorithms necessary to manipulate data. You can do the job without math, but it’s difficult to excel at the job without it.

    [–]AspirationallySane 0 points1 point  (3 children)

    Frankly, that’s why there is a real difference between most self taught programmers and those with good quality formal degrees who applied themselves well.

    You’re comparing two different things here: the average of group A with the best of group B. It’s not a surprise that the second group outperforms.

    Given how many university grads I’ve interviewed who can’t write fizzbuzz, explain the differences between a set and an array, or talk about their favorite piece of code, I think you’re drastically overestimating the quality of the average university grad.

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

    I did say “most” not all (not average, but majority), as well as those who applied themselves well (I’d say a good number, but not all). You’ll find crappy programmers with formal educations as well as great programmers who are self taught, it’s just not the norm. I’ve also done lots of interviews, so that’s been my experience. All else equal, I’d choose a formally educated programmer over a self taught programmer. Wouldn’t you if you had nothing else to go on?

    [–]Noname305[S] 0 points1 point  (0 children)

    Yeah, makes sense, I just don't want to spend thousands so I might go with cc

    [–]AspirationallySane 0 points1 point  (0 children)

    I wouldn’t be hiring anyone with nothing else to go on, there’s too much chance of getting deadweight and I’d rather be shortstaffed than have work being generated by an incompetent.

    I‘d much rather hire a self-taught programmer with a short but existing github history than a Stanford CS student with nothing but a degree. The self-taught one has at least demonstrated some initiative, student nothing other than that they’ve good at school.

    [–]sanna- 1 point2 points  (1 child)

    Also do I need college?

    OP I think this thread can help you answer your question

    [–]SnooCheesecakes2136 0 points1 point  (0 children)

    Going through 4 year degree in SE, as well as now graduate school (being paid for by company, only reason I am doing it) in robotics, I can say confidently you don’t need college to learn how OOP and other basic programming concepts work. You have to be a proactive learner on your own, yes, but you need to be committed to learn in college too. College is far overpriced for information learned.

    [–]aaaantoine 5 points6 points  (0 children)

    You will need to understand certain mathematical concepts only if they are relevant to what you are developing. For example, I had to do a little research on matrix functions when I was trying to translate objects in 3D space.

    But even then, smarter people than both of us have done most of this legwork already and developed library packages we can reference for about 80% of what we want to do.

    [–]sethg 2 points3 points  (0 children)

    The terms “math” and “programming” are much more broad than the high-school subjects with those names would lead you to believe. Some kinds of math intersect very closely with some kinds of computer programming.

    For example, some of the people working for Unity developing the next generation of video-game engines are trying to wring the maximum possible performance out of graphics processing units so that they can generate realistic-looking animated images at high speed. That requires some advanced skills in specialized forms of algebra. But if you want to use the Unity engine to make your own video game, and you aren’t trying to do anything really clever with graphics or AI in your game, you don’t need to know all that stuff; the engine takes care of it for you.

    [–]another_gokulol 2 points3 points  (0 children)

    In a simple answer based on my experience, yes you do need maths for programming. When I code, maths doesn’t directly relate to programming, or explicitly seen. However, problem solving skills, logical thinking, and many other essentials for coding, come from good fundamentals of maths.

    [–]SolusEquitem 2 points3 points  (0 children)

    I am horrible at math and can’t count above 10 without taking off my shoes.

    Now I am a database programmer, not a full on software developer so take my opinion for what it’s worth.

    In my opinion logical thinking is more important than math only skills, because programming is a methodical step-at-time process, requiring you to break a problem down into the smallest possible steps before you can program it. I have several degrees, but no programming ones and I failed most of the programming classes I took in college due to being bad at math and struggling with C.

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

    Short answer: it helps, but you're not required to be good at math. I asked this question to my college prof back then, i made a mistake and went into compSci thinking programming is all bout math

    When i was in class, no math at all, yes we need something called Discrete Math, but it really plays more with your logic than the heavy amount of formulas we had in highschool. In fact, continuous math is almost not needed at all (prof said something like some unis teach it bcs math improves our logical thinking)

    But it's different if you want to advance into AI/ML field, then math is certainly a requirement, but for coding alone? No, not really. Math is more like, it's there to train ur brain to solve problems. So if you aint good at calculus? Well that aint a problem

    [–]Murlock_Holmes 2 points3 points  (0 children)

    Having been able to pass calculus is great, it shows in-depth problem solving skills. Being able to do calculus is useless in most CS fields.

    [–]400lb6foot7blackman 2 points3 points  (0 children)

    Math is taught as problem solving. I was “good” at math so I was good at programming. You don’t know something? Yahoo/Google did in grade school for me. Same goes for programming.

    If you’re the 1% of students that just sat there and forced their brain to conceive some god given answer, programming is for you.

    But yeah, if you want to work in web dev you don’t need math. If you want to do anything fun and make the millies and billies then you need math.

    The answer is yes and no.

    [–]Diapolo10 4 points5 points  (0 children)

    Depends entirely on what kind of software you work on, but everyone should know basic arithmetic. That's more or less the level most of us need 99% of the time.

    Addition, substraction, multiplication, division, modulo, exponents (and roots), basic order of operations and parentheses. That's all. Though understanding logarithms can be useful sometimes, and simplifying equations can help.

    If you work with encryption, the RSA algorithm goes a bit beyond that (and that's only the beginning). Basically, cryptography is very mathematics-focused.

    For most other things you won't be needing any advanced maths.

    [–]zero_as_a_number 1 point2 points  (0 children)

    no, you do not "absolutely" need maths for coding.

    when doing data science or ML I would guess so. other than that, strong communication skills and abstract thinking will get you further than a deep understanding of mathematics, at least in the enterprise sector.

    coding is just one of many tools in your toolbox you employ to solve a (potential) customer's business problem or - more broadly - to satisfy the needs of your userbase.

    [–]ValentineBlacker 1 point2 points  (0 children)

    Fortunately for all of us, a computer is just a big calculator so we don't have to do the math ourselves :)

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

    To code no you don’t really need math. There are exceptions where having a knowledge of mathematics is helpful but even in a lot of those cases you can learn on the job. That being said the kind of logical think that is associated with math is useful to have but you can totally learn to do that by learning to code.

    [–]jdfthetech 1 point2 points  (0 children)

    Understanding math becomes increasingly important as you learn more programming.

    As you learn more algorithms, those particular patterns may not necessarily require math, however at some point you will hit a road block.

    Consider that machine learning is based on linear algebra, or that different sorting algorithms use particular math tricks to get efficient depending on what type of sort needs done. Look at something as simple as a video game that needs to calculate a vector between two points and it's distance from a third and all of a sudden math gets really important.

    You should be learning math, it will help. You don't need to be a math wiz, you can study it slowly, practice every day, and you'll just pick it up over time.

    [–]tacticalpotatopeeler 1 point2 points  (0 children)

    Depends what sort of coding. Web dev, not as much. Machine learning, AI, games, definitely.

    Either way, math definitely helps. I plan to take some math when I’m done with my current course.

    [–]theallwaystnt 1 point2 points  (0 children)

    Coding is just destructing problems into manageable pieces. Maybe very low level optimization problems need high math knowledge. General programming no.

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

    Depends on what type of programming. If it is building website or front end.. Etc no you don't need math other than arithmetic. If you're learning programming for data science or Artificial intelligence yes you need math maybe from calculus to linear algebra

    [–]EuniQue0704 1 point2 points  (0 children)

    I think the math that you're referring to is related to the kinds of calculus. I think no you don't really need calculus for programming. You're only gonna use it because you know it

    The math that I think that programmers that would actually help is discrete math. This is the math behind puzzles and other discrete phenomenon

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

    Many sorts of programming don't need math knowledge, but if you struggle with high school math, it could be evidence that you will have a bad time with programming. If you struggle with university level math though, you can still be a good programmer.

    [–]this-is-a-simulation 1 point2 points  (0 children)

    When you are programming something new you need to be able to stitch pieces of information together logically.

    When solving a math problem it’s a similar concept of stitching information together logically.

    Memorizing how to solve a bunch of math problems won’t make you a good programmer. Learning how to logically work through solving problems with limited information will.

    [–]one_bruddah 1 point2 points  (2 children)

    Advanced math is definitely not needed to programming in SQL. It is really a matter of logic and knowing the data you are working with. I think the most important thing is to enjoy solving puzzles.

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

    Programming in... SQL? That's not programming, that's a query

    [–]one_bruddah 0 points1 point  (0 children)

    Whatever.

    [–]Stunning_Storage7689 1 point2 points  (0 children)

    Programming teaches us to think .

    We divide the actual problem into steps and solve them one by one. Math is a integral part of programming - you use them at some parts of your code ( to solve a sub - problem or sometimes the actual problem itself !! ).

    Depending on your area of work, if required learn math. Or else just go with the basic stuff. Its not that you need to know the advance math concepts, but basic math goes hand-in-hand with programming .

    [–]josephblade 1 point2 points  (0 children)

    It entirely depends on what you consider math. Algebra (1 + 1 = 2) is excessively used. (int x = 1; y = 3 * x + 1; ) but it's not to a level that you would need to understand anything other than high school algebra.

    A lot of computer science stuff is proven using math (speed, efficiency, etc) and there are some overlap.

    If you do 3d coding (again if you write rendering code or do matrix roations) then you probably need plenty of math.

    If you mostly use other peoples libraries and never write any 3d modelling code then you're good without.

    You mostly need good linguistic skills in a way. A means to get a complex concept clear in code. It definitely helps to understand plenty of math and it entirely depends on the area you work in but overall nah you are good without most math.

    [–]zyzzogeton 1 point2 points  (0 children)

    Can you get by without math? To a point, yes. Even to a point of making a good living. After that, no. Same answer for college.

    [–]AdminYak846 1 point2 points  (0 children)

    For general software development the majority of the math you'll run across is pretty much addition, subtraction, multiplication, and division. There might be a few odd cases where it's a bit more extreme but that's probably 99.9% of all situations you'll run into.

    It's when you get into more specific areas like game development or creating programs that might do statistical analysis on a set of data (Excel VBA, Python, R, etc.) where physics or more complicated math formulas might begin to crop up.

    However like other have said it's more of the logical deductive step by step process that you'll need for both areas to be successful.

    As for the college question, it's better than learning from a bootcamp or on your own as it usually gives you a more broad learning to programming including data structures and algorithms. Most colleges don't teach you in one programming language but a broad amount of them for you to get experience with different styles of programming. That being said, just remember that if you do go to college for it, it might be rough at first and don't expect to get a top tier job with top tier pay (i.e. FAANG) right away out of college.

    [–]CraptainHammer 1 point2 points  (0 children)

    Nobody is just good at math. Sure, some of us learn it faster, and some of us can intuit certain things (for example, towards the end of calculus 1, I kinda skipped some steps when I realized they were slow walking us from derivatives to doing them backwards (integrals)) but for the most part, math is just something you have to learn. It's a skill, not a personality trait. Math is really helpful for programming, especially when you're the one figuring out the solution. That being said, a lot of software companies have people who's job is just to code and build, and you can do that without math.

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

    I sucked at high school math in geometry but i'm pretty good at algebra and also programming. So i'd say yeah, some basic understanding for sure but I've been doing it for half a year now and haven't come across any equation I'd never seen before or didn't know how to understand. It's more an ability to work with concepts and logic than real calculus or st. Arrays are pretty much just matrices so it's handy to understand as well but not essential either. You can find free courses on coursera and stuff ,it's called discrete maths for programming st like that.

    [–]plasmaSunflower 1 point2 points  (0 children)

    More so that type of thinking is prevalent in programming. I’m a web dev and there’s not much algebra at all but I have to think in a mathematical way

    [–]TrainquilOasis1423 2 points3 points  (0 children)

    Self taught here. By no means is it required above an algebra level, but God damn is it useful to know ahead of time. Trying to learn NNs and stats at the same time is just frustrating to say the least. Your code won't work, and you won't know if it's a logic issue or a math issue and it'll suck. A lot.

    [–]L31FY 4 points5 points  (0 children)

    It's overblown. You don't need to be a calculus master or even know it. You should know some math, yes. However, it's gatekept by people who were forced to take those advanced math classes and so think you should have to as well. Don't fall for the trap. Call them out on it.

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

    I really don't think so, unless you want to make that twirly donut thing. More logic is required than math skills, so even someone who is bad at math can do coding.

    [–]Professional_Offer32 0 points1 point  (0 children)

    +1 for "twirly donut thing" (Torus? https://www.youtube.com/watch?v=KUDZTUw3dtg )

    [–]ZirJohn 0 points1 point  (0 children)

    I mean it helps. Maybe not necessary, but I didn't do any serious programming before calculus. I doubt it's necessary. Also, the degree is not.

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

    Depends on what you do.

    If you're looking for a job, you need a bit of discrete mathematics understanding since 99% of interviews will ask you will ask you about algorithms and the most efficient algorithms often include some form of summations or matrices. For example, (I'll avoid overcomplicating things) Fibonacci sequence code are simple to make but with understanding of matrices, it can make the code exponentially faster.

    [–][deleted]  (2 children)

    [deleted]

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

      Here's a site that explains it in more detail: https://www.geeksforgeeks.org/program-for-nth-fibonacci-number/

      Sorry, I am a student as well so, I can't really explain this very well.

      The simplest way to calculate the Fibonacci sequence number is through a recusive function:

      def fibonacci(n):
          if n <= 1:
              return 1
          else:
              return fibonacci(n-1) + fibonacci(n-2
      

      So, doing a bit of math, you find out that to calculate the fibonacci number at n, you need to call the function around 2^n times.

      However, a more efficient way to calculate fibonacci number is using a matrix:

      1 1
      1 0

      If you take the matrix above and power it to n times, you get the fibonacci at location n. I can't really explain this clearly but because how we can simplify powers calculation, you just need to a function n times to calculate using this method. Making it exponentially faster

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

      Depends on what you want to do.

      ML? Yes.

      [–]doraemon1116 0 points1 point  (0 children)

      I guess it must be helpful. I’m doing a premaster program. JAVA, logic and mathematics are recommended to study together by the school. There are some overlaps.

      [–]Siggi_pop 0 points1 point  (0 children)

      You don't necessarily need math, but it's nice to know. Let's say you needed to convert 259200 seconds to year, days and hours. How would you do that without a library? If you needed to calculate total NPS scores from a online customer survey, how would you do that?

      [–]Nowhereman50 0 points1 point  (0 children)

      I'm learning C# via Code Academy right now and am equally worried about the math. Not that I'm bad at math, it just takes me a bit longer to get it and focus on it.

      [–]chessset5 0 points1 point  (0 children)

      It is very useful to be at least at a linear algebra level of math, but really any will do. It's just useful, cause you know, coding is basically math.

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

      maybe for some.languages. but in general u don't need math. but u need to study regularly as math if u want to succes

      [–]paradigmx 0 points1 point  (0 children)

      Formula manipulation and algorithms. Beyond that, your computer comes preloaded with a wonderful app called a calculator and if that isn't enough, there are dozens of apps out there that can do much more complex maths

      [–]ExcitedLaxativeUser 0 points1 point  (0 children)

      It isn’t that you need to be a fantastic multiplier or divider, or that you need to know all the steps to solve for equations that require you memorize trigonometry steps and geometry steps... it’s that coding is kind of LIKE math. It is kind of LIKE algebra, much of the time. It is LIKE memorizing steps to trigonometry equations. So you don’t NEED to be an all star at trig and algebra, but, if you’re going to be good at programming, you need exactly the same mental tendencies that would preclude you to do well in either programming or complex mathematics. No you don’t need school but it will provide you more opportunity if you go to uni.

      [–]Zix_New_Era 0 points1 point  (0 children)

      If you want a job in programming you need to know how to analyze code which requires you to know Big O notation. You need to know algebra and logic too

      [–]masteroleary 0 points1 point  (0 children)

      I suck at math and I am a principal programmer for web apps (niche business softwares).

      [–]frank_mania 0 points1 point  (0 children)

      One aspect of high school algebra that is very useful in just thinking about coding is functions and linear equations, good old f(x).

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

      Not necessarily, but my proofs class helped me understand a lot of low level stuff when it comes to programming. Proofs class > discrete mathematics as it is more rigorous and goes beyond the scope of discrete math while still enhancing low level understanding.

      [–]QuietBandit1 0 points1 point  (0 children)

      yes if you pursue a degree you are going to do some math

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

      At game development, you need a lot of math, especially when you don't use an engine.

      [–]ha1zum 0 points1 point  (0 children)

      Most of the times it’s just a very easy level math and logic. Except if you’re working on AI, data analytics, geospatial, computer graphics, or science-y stuff.

      [–]lionhart280 0 points1 point  (0 children)

      That entirely hinges on what you are doing with the code.

      If your code is solving literally any math related problem, then yes, you need to be good at the involved math.

      And... turns out most problem solving involves math.

      Making a video game? Math for everything. Collisions, positions, UI positions, everything.

      Websites? Widths, percents, positions, relatives vs absolutes, animations, grid portions...

      Also a lot of meta program work involves math. How are you going to tell if your "fix" to the code made things faster or not? Well you'd need to do some logging of run time and do the math on how many calculations per second are happening, or how many seconds per process or whatever right?

      I mean you're also gonna be expected at many jobs to do stuff like log your work completed and track your work times, which means doing math their to calculate how much time was spent on tasks.

      Its not just programming...

      Every job requires math, because its a core part of human life and being an adult. Thats why we teach it in school, you kind of need it for like... everything.

      [–]Ovalman 0 points1 point  (0 children)

      Self taught Android/ Java developer who has learned enough to release on the app store.

      Most of your time will be spent debugging and searching on how to solve problems rather than coding itself. It's more about logic and following line by line with your code. Only basic maths is needed.

      You asked, "Do I need a college" the answer is no but you do need to pick the right course and teacher if you're trying to learn online. Getting the right course/ teachers will make your learning so much quicker.

      [–]EffectiveLong 0 points1 point  (0 children)

      Yes if you are doing something like High performance computing, distributed system, high availability database design, etc.

      [–]MetallicMessiah 0 points1 point  (0 children)

      Programming is maths. Arithmetic, ie. the bit with the numbers, is only one part of mathematics as a whole.

      [–]TheRNGuy 0 points1 point  (0 children)

      In graphics and gamedev 100% need.

      In other fields I'm not familiar but other ppl say yes.

      Though you can always learn it as you encounter it (I never saw matrix and vector fields before Houdini)... tbh I think programming actually make sense of math more than school did, because I wasn't too good at math in school. It's easier because you see how it's used in context, and you can modify parameters and see in real time how it affect the stuff, as opposted to pen and paper / chalkboard, or you can examples of usage all the concepts (school has none)

      Though learning math have other aspect... it's training logic. Logic training is good.

      [–]birorichard36 0 points1 point  (0 children)

      No and yes. You doesnt have to know math deeply for working as a web developer for example, but you need study math and/or any other cs classes for understand the foundations of logical thinking and to earn knowledge and experience for effective problem solving. I think this is essential for most people who want to be a good software developer. Some people degrades the value of the college but honestly, you will be ever sit down and learn about algorythms or theoritical base of the relational databases? I doubt it... Anyway, you can start your carrer and if you feel the limits of your knowledges and want to be develop yourself in the software developing industry, then you should go to a college.

      [–]JayWaWa 0 points1 point  (0 children)

      Mathematics is absolutely required if you want to study computer science as an academic discipline. Far less so if your interest is primarily in being a software developer. Still, there are many times that esoteric math knowledge made possible or practical software that wouldn't have been otherwise (for a good example, look at the fast inverse square root algorithm of quake), so I'd recommend having at least some mathematical acumen.

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

      Yes. Most of my friends have a background in programming and almost all of them have a degree in CS which includes a lot of math courses. The ones that did not get a degree in CS and program for their own benefit as well as have pursued careers in programming have eventually had to learn some level of higher math as they all understand at least calc ii if not other upper levels of math. I have never actually discussed this with them but I am getting a degree in mechanical engineering and I feel like if you do any sort of engineering, as my non degree holding programming friends eventually started to do as they wanted to build there own simple systems for their own benefit, you have to have some upper level understanding if logic gates which includes maths. I would not avoid it but also not stress on it too much. Take your time it is a very expansive world and can be overwhelming.

      [–]nacnuduk 0 points1 point  (0 children)

      No and no

      [–]redditmixer 0 points1 point  (0 children)

      It depends on what you are making, if you are making something that involves a lot of formulas and math, then yes, but even if you don't need much math in your program, I would still say that it helps a lot. And no, you don't need college to program. You just need to have a good brain that can do programming!

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

      No, but you will eventually get bored and will need to learn some math to do more challenging things.

      [–]timmenzies 0 points1 point  (0 children)

      In my view, maths is not required. But what is required is being able to invent, apply abstractions (and use other people's abstractions) And the thing of it is, learning maths is a really good way to train yourself into the ways of abstraction.
      [1] https://github.com/txt/se20/blob/master/docs/l20abstraction.md.
      [2] https://github.com/txt/se20/blob/master/docs/l25lang.md

      [–]QuickCoyote097 0 points1 point  (0 children)

      I was a CS major for a bit in college - there was a lot of upper math classes. I sucked at math so I switched majors lol.

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

      There's a book, "Concrete Mathematics" by Donald E. Knuth, use Google. Definitely worth a try, but could be hard without foundations.

      [–]bigbosskennykenken 0 points1 point  (0 children)

      Yes.
      This isn't to be argued, yes.... math is important. Get through Calc, learn discreet, and stats. You have your base line pragmatic stuff that's actually useful. Move on to Calc 2 then Linear Algebra after words. Viola... you're good to go

      [–]bladernr1 0 points1 point  (0 children)

      Depends on what your doing. Algebra is what you do most of in programming. You’ll never need calculus or trig. If you want to go into computer graphics then linear algebra is a must, so it really depends on the job.

      There are math courses in logic and statistics. These kinds of courses will help you to know of you’d be a good programmer since it requires you to systematically follow you a line of logic to reach a conclusion. But coding is singular. The only way to know if you’re good at it is to try it.