I have both, a CS and a math degree. Even though it’s not directly related to programming for the day to day tasks, it helps you to think abstractly and trains you brain for problem solving.
My 5: 1. Normal algebra (regular formula-rearranging) 2. Boolean algebra (being able to write if statements efficiently) 3. Basic geometric transformations & trig (mostly for games/UIs) 4. Finding patterns/relationships between numbers you calculate a lot (why increment 2 counters when you can store 1 and add an offset?) 5. lerp(a, b, 0.1) Though it's not math, I've seen one too many people not be able to follow 2 nested loops, so I'll put it down as an honorable mention
From my experience the reason you “need” to be good at math for programming is because of the mathematical thought process of math and being able to apply that to development
- Vector Math - we use vectors all the time (array). Good to make animations, measure correlations. - Linear Interpolation - Useful to mix colors, remap scales, etc - Binary math - Sets - Basic statistics
As a professional programmer of +30 years I programmed in C, C++, Java, Python, Javascript, Go, and Rust. The one thing I've learned is that it's the same old shite just repackaged as the net new thing. My first job is 1992 was writing client/server TCP/IP socket communication protocols in C. Today 30 years later I'm doing the EXACT same thing in Rust lang. Did I need maths in my 30 year career. NO. Oh BTW I forgot to mention, I invested my career earnings into investments and now I program for fun, because I love it and I've loved it since I was 13 years old. The moral of the story - Love what you do, and you'll be OK. Maths is useful, know a bit of it, but as a programmer you can learn what you need to learn on the job - THAT IS WHY YOUR ARE A PROGRAMMER - we figure it out as we go along!
I'm like a 6502 microcontroller running at 0.2Mhz and that guy at 1.25 speed is like the serial bus trying to send me something at 115000 baud rate and all that while my dog is causing a hardware interrupt every 3 seconds
If you’re in scientific computing, linear algebra is the single most important piece of mathematics you need to know. Almost every physics problem turns into an eigenvalue problem if you look at it long enough.
1:24 If you want to get to the point of the video fast there's a browser extension "sponsor block". The main feature is to skip sponsored segments, but also it gives you option to "highlight" the most important thing, which is typically the answer to the title of the video
My five answers: 1. Functions 2. Very basic graph theory 3. Type theory 4. Elementary school arithmetic 5. Abstraction
Love how Prime reasonably reacts and calls out the original video. There's definitely no way that knowing factorial is a major factor for a programmer outside of a school project or interview question, and even if it was, it's literally just basic multiplication from 1 to n. I'm like 99.9999% sure you're never going to be solving an issue and realize that you need to loop x factorial or use x factorial in a formula.
I know my way around 3D vectors, because I made things in Unity. It's really not complicated if you can see it play out before you. Ultimately I made a script for a camera, which moves it smoothly, ahead, allows soft focus on enemies, can have boundaries, etc. It all required quite some vector calculation.
The irony is that talking about how there was "too much foreplay" in the video increased the level of foreplay in this video.
It was almost like you were reading my mind. Statistics is by far the most useful math skill I learned for software engineering. Bit manipulation math comes in handy occasionally. Boolean logic comes in handy, but I've found if I'm applying that skill at any non-trivial depth it usually means I need to clean my code instead. Of all of the things the original video mentioned, I'm usually considering Big O but in a more general "How can I make this more efficient?" context. I used logarithms to solve a problem one time in the last 20 years.
depends on what you do, for the AoC challenges i used a lot of maths. For web dev i never think about it.
I started coding a few years ago. I have a PhD in economics and before coding I was mainly doing applied game theory (research). I do not consider myself a math chad, however I started coding with a lisp dialect (clojure) and in this case I really enjoyed having some math skills even though I do not think that they are directly useful per se. I take what they guy said in the first minutes, I think it's a matter of being trained to abstraction and abstract stuff
I think what skill you learn by being extremely good at maths is the ability to visualise problems and solutions mentally which directly translates to implementing complex algorithms in programming. Also, DSA is one of the most difficult topics according to every programmer. So, a passive ability that helps you be good at that and gives you an edge over the competition is definitely worth acquiring. Thank you for listening to my ted talk.
what I took away from the vid was that the guy looked late 30's early 40's and still sounded like he was 16
In my experience, the bread & butter of programming "math" is figuring out that correct little algebra formulas based on the variables in your FOR loops, i.e. just Algebra 1. Example: In a view port that's height H and width W, place a columns and b rows of rectangles, each of which is height h and width w, with uniform spacing both horizontally and vertically, except that the four outer-most borders get double spacing. The placement call for each rectangle places it by its center point. In my experience, that kind of trivial-but-ya-gotta-write-it-down algebra is "the math" of programming, regardless of any more sophisticated math that might be needed for particular situations. Any kind of coding inevitably will include stuff like that.
I was told by a lead game programmer two years into the field I don't need to be good at math to learn and be good at programing. Buuuut - senior programmer of over 30 years told me you indeed need to be good at math for this field. And having tried to learn programming because the first guy told me you don't need math I can say math background is pretty darn important. Senior was right.
@ThePrimeTimeagen