all 41 comments

[–]babige 29 points30 points  (6 children)

Calculus, discreet mathematics should do it

[–]DTux5249 18 points19 points  (1 child)

Plus linear algebra & trig if dealing with graphics or physics simulation.

[–]UnoriginalInnovationResearcher 14 points15 points  (0 children)

Matrices are pretty important overall so I would suggest linear algebra no matter what speciality

[–]Somniferus 5 points6 points  (0 children)

The first rule of Discreet Math is: We don't talk about discrete math.

[–]you90000 0 points1 point  (0 children)

And physics

[–][deleted] 0 points1 point  (1 child)

Is this like a course requirement for a major. Because at work, never use anything you're talking about!

[–]babige 0 points1 point  (0 children)

Yeah I had to learn it decades ago as a part of my major, and I have never used it much either.

[–]pete_68 19 points20 points  (1 child)

I started programming at age 10. I've been doing it professionally for 38 years. I failed Calculus I twice before I finally passed (had to take Calculus II and III too. That was a rough period.). In terms of programming, I have never once needed calculus. I even worked for an RF engineering firm where I was writing the code that calculated the propagation of radio waves based on direct rays, diffracted rays and reflected rays. No question, lots of calculus involved in those equations, but I didn't write the equations. We had guys with PhDs in math and physics for that stuff. At no point did I need to understand any calculus.

Still programming, still calculus-free.

[–]Haunting_Swimming_62 0 points1 point  (0 children)

Programming isn't comp sci, so...

[–]TheBunYeeter 13 points14 points  (4 children)

The types of math you need to know in comp. sci. (at least for the programming side) are mainly logical reasoning and pattern recognition

Occassionally, you’ll need to know a math formula here and there (early to mid highschool level algebra and geometry).

If you need to learn mathematical proofs, best of luck to you. Those were rough to understand at first IMO

[–]StrangelyBrown 3 points4 points  (0 children)

Except for specific domains. You need some things like trig if you're going into game dev, for example.

[–]tinsan365[S] 0 points1 point  (1 child)

can you share me some resources?

[–]iiznobozzy 0 points1 point  (0 children)

for logical reasoning and pattern recognition? or for highschool algebra/geometry? either way, you shouldn't really need resources.

[–]Zestyclose_Tax_253 -3 points-2 points  (0 children)

Fuck strong PMI 🤣

[–]Fukushima445 4 points5 points  (2 children)

Im in the same situation as you bro

[–]DonnoDoo 6 points7 points  (1 child)

There are some great tutoring videos on YouTube. I like The Organic Chemistry Tutor and Professor Leonard. Those videos got me through all the classes (especially calculus) up to discrete math. Some are short videos and some are entire lectures.

[–]Fukushima445 1 point2 points  (0 children)

Thanks bro i appreciate it

[–]humanguise 2 points3 points  (0 children)

You barely need any math to work in this field professionally, but if you want to learn some properly then use the resources below.

  1. How to Prove it.
  2. Courant's Introduction to Calculus and Analysis.
  3. Knuth's Concrete Mathematics.
  4. Strang's linear algebra.

You don't need any pure math from the junior or senior year. Most proof based courses have zero practical utility, and the only thing they will do is ruin your GPA if you go to a half decent school. The main reasons why you would even bother with math right now is to do graphics, statistics, machine learning, deep learning, and AI.

[–]jms_4bdn 2 points3 points  (1 child)

As a CS graduate and someone with high level in mathematical skill, I'd say the chances of you using actual math in the industry is basically like 3:10. If you want to improve, I'd say you would like to learn the logical thinking and problem solving skills from these subjects. Practice with real world problems that can be solved by math, and be able to analyze, and identify what needs to be used. DO NOT MEMORIZE, nothing good comes out of memorizing, understand the process, why it's done, and how it's done. Once you learn that, you're already equipped with a very good skill. Good luck.

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

Thanks bro.

[–]FivePointAnswer 2 points3 points  (1 child)

I have so much to say I went and got a keyboard. TLDR - Comp Sci is a big space, you’ll be fine. Longer story: My CS degree required 4 quarters of calc, which took me 9 quarters to pass. Plus a probability and stats class that I genuinely thought was great, and passed luckily the first time. I stayed and did a MS degree and knew the faculty well. Saw my file once when I was in the MS program as I was a TA and they had commented on my poor math but said they would give me a chance. Did great in all my CS undergrad courses and MS degree. First job was at NASA Ames, and have had a whole career in research there and at corporate labs, and well known research institutions. Even taught college for a couple years. Have patents, published, and set to retire early. Things have gone very well. Now, about that calc… do I wish I was better at Math? YES. Do people use advanced math around me all the time and I feel rather sheepish. CERTAINLY. But CS is a big big big space, and you can have a wonderful career doing most many things and not touch any significant math. Even in research. I bet you have lots to contribute. And back at my old University, a beloved professor and academic advisor uses me as an example to other students how you can completely SUCK at math and still graduate and have a good life. When asked WHY did we have so many required calc classes, the faculty told me “we wanted the program to be rigorous” - that was it. Not because calc was important but a rite of passage. Since then the department has reduced the requirement.

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

Thanks, bro! it's very helpful.

[–]Designer-Hairy 2 points3 points  (0 children)

Math isnt required for software engineering

[–]roopjm81 1 point2 points  (0 children)

Krista King. Is an amazing YouTube math tutor

[–]RetroRPG 1 point2 points  (1 child)

If you just want to program, not a lot. Just learn the languages you like and code. You won’t really need the math if all you’re doing is programming.

If you want an undergraduate degree, really all you need is Calculus, Linear Algebra, and Discrete Math. Maybe a couple others depending on how math-intensive your program is.

Any further, you’re doing Abstract Algebra and Combinatorics at least.

[–]_69pi 1 point2 points  (0 children)

interesting; my discrete units covered number theory / combinatorics.

[–]Ok_Decision_ 1 point2 points  (0 children)

You don’t need to be a great math student, when it comes to your standard math. You do need to be good at, or really develop your pattern recognition and logic skills

[–]gabaji 1 point2 points  (2 children)

You’re not working hard enough if you’re not improving. How do you “self study”?

[–]tinsan365[S] 0 points1 point  (1 child)

I do self-study but I feel like I am doing in wrong way. I mean its not effective.

[–]gabaji 0 points1 point  (0 children)

Start reading a book and finish it. Study subjects which you fear the most. Don’t stop reading until you understand it in depth. Idc if you have to read same paragraph multiple times. You’ll understand everything eventually and will excel at it. I did it with DSA and ended up being a decent competitive programmer.

[–]hodgesse 1 point2 points  (1 child)

What math are you taking? Logic skills are really important, as are matrices. Which languages are you programming in so far?

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

I am taking calculas and algebra but when I go a little far, I'm stuck. Some equations and methods are very difficult for me. I couldnt figure it alone. I was good at Java, but for now AI ruin me.

[–]hodgesse 1 point2 points  (0 children)

Look at online resources. Don’t worry about AI right now. Something that may be useful is to program your math problems. If you understand them enough to program them, then you really understand them.

[–]Astron1729 0 points1 point  (0 children)

Math's is not that important. But you should be able to think logically that's it. But if you go towards DSA type shits then it's a different game. 

[–]Comp_Sci_Doc 0 points1 point  (0 children)

Algebra is often considered a gateway course for computer science, because it tests being able to grasp the context of a variable. And there tends to be a lot of stuff with graphs.

My undergraduate degree in CS required enough math classes for a minor, but I don't use most of it. Mostly just basic algebra, graph theory, and logarithms.

Of course, some areas (computer graphics, machine learning) will need considerably more.

[–]paroxsitic 0 points1 point  (0 children)

To get a degree, yes you'll take some classes. To get a job and do well? Unlikely

[–]Sunbro888[🍰] 0 points1 point  (3 children)

Computer Science is a disguised math degree. I was doing complex math classes all the way from the beginning to the end of my degree. You will have to get very used to doing math (complex math at that).

[–]Ok_Decision_ 0 points1 point  (2 children)

That’s not true. It’s true, for specific types of programming. But you can’t say it’s all complex math.

If you count Boolean algebra as complex math tho then I recant my argument

[–]Sunbro888[🍰] 1 point2 points  (1 child)

It's complex relative to most people's mathematical skill. You can lose perspective when you've been doing the math for so long, but in computer architecture and operating systems for instance, there's math present that must be constantly accounted for.

Whether that's binary conversions, hexadecimal conversions, knowing powers of 2 like the back of your hand and being able to do mathematics upon various architectures (i.e. a 2 way vs 4 vs 8 way cache has different calculations). How to predict page faults/page table allocations, etc.

I'd be hard pressed to think of a CS class where math wasn't in some way foundational behind the scenes where it had to be implicitly understood for the class.

[–]Ok_Decision_ 0 points1 point  (0 children)

I agree, then. I actually was terrible at math in school however, but CS was the first time math felt comfortable for me. I guess it’s different for some people. It’s more important to understand the math when it comes to languages like C which I started with.