I read this sentence as a provocation and caught me so much that I'm still thinking about it.
I studied math and computer science and I strongly believe that having a math background helps you a lot to reason about a problem and formalize the solution. I do believe math can help you to implement some clean code, e.g., that solves a problem without a bunch of if else statements (or to identify state machines where they are not so easily spotted).
In my experience, math helped me a lot, even though so far I never implemented compilers, interpreters or defined new languages (tasks where most of scientists agree that having a math background helps).
What do you think: is learning math useful to be a good computer scientist?
But computer science isn't (just) programming. Many areas of discrete mathematics are highly applicable to the field of CS. Particularly number theory, graph theory, probability, combinatorics, logic, and set theory. And those are just the discrete math topics I've used in my own career (which isn't that long, approaching 15 professional years).
Algebra, calculus, linear algebra, and trigonometry have also been part of my work, though that's been more as a programmer than as a computer scientist (translating mathematical formulas and such into code).
However, it's also important to note that the overwhelming majority of developers are not computer scientists. You don't need particularly good math skills to write software. Most developers aren't doing things like implementing compilers, interpreters or defining new languages. If your job is essentially taking input events, figuring out what they mean, putting the result in a database, and then pulling the data out and displaying it in a specific format on request, then you can get away with very little math at all.
Some of the smartest computer scientists I know are just horrendous engineers (what's worse a lot of them lack awareness and have big egos and insecurities to boot). They seem to see code as a means to an end, and they only know how to think in terms of some primitives, and lack the ability to think in bigger pictures.
On the other hand one of the best engineers was one who didn't study math or computer science in his career. He designs elegant/simple systems that have maintainability and DX baked into them.
Of course this isn't a rule, just anegdota.
Yes, of course! Is it the best way to spend your time having the goal in mind? Maybe not.
The issue with "learning math" is that there is more math being created than you are able to learn.
"a good computer scientist" is very broad.
Does it mean "a good 3D engines programmer" - then probably you want to know linear algebra, things like quaternions etc.
Does it mean "a good browser front end developer" - then probably you want to invest your time somewhere else, maybe web design, learning how to sketch.
Even if you don't apply math knowledge directly in your profession — this is one of the best way known to humanity of teaching your brain abstract thinking, logic and reasoning.
And CS is the field where those 3 things are the core of profession.
At least four things come to mind:
(1) Basic ability with arithmetic and algebra (simplifying equations etc.),
(2) Gifted with numbers; ability to do calculations quickly in the head, strong intuition etc.,
(3) Fluency in the language of mathematics; ability to communicate with other mathematicians and evaluate literature for new results,
(4) Creative ability required to produce proofs of new results.
A mathematician is primarily concerned with (4). This almost certainly requires good grasp of (1) and (3) as well and possibly (2) as well.
A computer scientist in the academic sense is actually a mathematician, so it's the same.
A programmer is where it becomes more fuzzy. I can say with certainty that (4) is not necessary, but I think (1) is necessary. I mean, I don't think anyone seriously believes a programmer doesn't have a basic "high school" ability with numbers do they? As for (2) and (3), no I think it's clearly not necessary, but it's definitely useful, and in some ways inevitable, depending on which area you go into.
There is also some extension of (1) that is particularly useful for programmers. Obvious examples are Boolean algebra, discrete maths (like modular arithmetic) and base systems (binary numbers). It's all useful. Not necessarily every day, but it's inevitable that they will become useful eventually (or you will have to learn them).
Having said that, I personally waved goodbye to academic computer science after I finished my degree. I work as a software engineer and I find software engineering to be very different discipline to computer science. While mathematics has proven useful to me on occasion, I'm of the opinion that I'd be able to do much of what I do day to day without much in the way of advanced mathematics. Much, but not all. When one encounters certain types of problems, for example problems around performance, I find it helpful to be at least _acquainted_ with mathematical tools that can help, even if my mathematical chops are not as strong as they used to be.
A lot of "skills" talk seems to be oriented towards justifying hiring underskilled people in IT, that's probably where this also is coming from, more HR babble than anything else.
If you work at science, engineering, or other intensive industry - sure.
If you're like 75%+ of developers that work at some boring company doing CRUD - no.
Sure there is some, but it is all easily learned on a case by case basis without a heavy math background.
But math can open up lots of new domains for programming, and extend your abilities.
I'd argue you're pretty limited to boring software without it.
If you enjoy solving puzzles, might that indicate you'll enjoy programming?
Wanna make some react app look pretty? Not so much.