3 ms·
I've been curious about this issue, because I've been relatively successful in my so-far short career as a web developer. Yet I'm self-taught, and can't math my
by tenaciousDaniel 9y ago
I've been curious about this issue, because I've been relatively successful in my so-far short career as a web developer. Yet I'm self-taught, and can't math my way out of a paper bag. I'm good at logic so that's gone a long way in helping me.
I always wonder, though, whether I'll eventually run into a math-critical issue and cannot just reason my way through it. It's a terrifying prospect, but luckily in my 5 years of dev experience I haven't faced that scenario.
- jstanley 9y agoThe vast majority of actual profit-generating programming that is done in the world requires almost no mathematics beyond basic arithmetic. Unless you explicitly want to get into something more maths-heavy, I think you'll be fine. I used to do and enjoy algorithm competitions as a student, but in "real life" I've found there is almost no correlation between the complexity of the algorithms and the amount of money to be made.
- duiker101 9y agoI'm in a sort of same place. What I found out is that it's never too late to go back and open a math book. It can actually be pretty fun! Especially if math is the only way toward achieving something you want. For me for example the turning point was having to learn a lot of trigonometry to apply to an AR app. No way I could have done without, but because I was still doing something I love I got the motivation to learn.
- monaghanboy 9y agoI'm always surprised when people try to connect math and physics to CS/programming. I studied differential geometry in grad school, wrote proofs and read dense textbooks daily (very rarely missing a beat), then taught myself programming/CS. I'm now four years into my career, doing pretty well. I see almost zero connection between the two: * CS/programming: techniques (a mathematician might refer to these disparagingly as "tricks") used to make machines do things * mathematics: foundational truths on the study of space, quantity, structure, change etc. The most mathematics I've ever used on the job was basic (read: finite-dimensional) linear algebra, which is a part of every undergrad math student's basic toolkit. If you're concerned about holes in your knowledge as a self-taught web dev, I'd study core CS courses like architecture, operating systems, networks. Know what you don't know that matters (hint: it's not "math"). EDIT: there may be a strong connection between computability theory and math https://en.wikipedia.org/wiki/Computability_theory https://en.wikipedia.org/wiki/Computability_theory, but I don't think this field is mainstream in either core CS (could be wrong here?) or math. I've certainly never encountered it on the job.
- chrismcb 9y agoProbably not. There are jobs that might require some decent may, so stay away from them. But you're average programmer won't run into a math critical issue.
- Grue3 9y agoIf you don't use math, it's almost certain that you're writing inefficient code. There's no way to estimate big-O complexity of the procedures you're writing without at least some math. Unfortunately these days it's considered ok to write chat applications that consume several gigabytes of RAM, so maybe nobody cares about efficient code anymore.
- candiodari 9y agoI see tons of people online writing algorithms in python and ruby, that will run against a few megabytes of data, and worry about getting the "big-O" of their algorithms right. Then I go ahead and show them that just by doing the same thing in C++ you get a 10x speedup if you know what you're doing, sometimes more. And then they say "but I'd never get an optimal algorithm done" (that C++ is typed actually makes this easier for me then python as soon as we get past the "trivial" complexity level, but to each his own I guess). So I say "Ok. No worries ! Let's make it inefficient !". And add an inner for loop where a hash lookup would have done it (for example). And lo and behold ! The C++ code still beats the crap out of their "optimal" python code. (this is somewhat of a cheat because the odds of making a random thing somewhat inefficient is very unlikely to be the critical point of that code, even if it's in the middle of the deepest loop). Then we replace their 100mb csv with a new 10mb memory-mappable data and they can't even measure anymore how fast the program is. As soon as we enter main, it just immediately terminates. Algorithms start to matter when your data, optimally stored, becomes >10x all the CPU cache combined, ignoring things like strings. That means 300-400 megabytes when stored fully binary. Ie. you DO NOT HAVE ANY SUCH DATA. Your company's yearly transaction log is less than this. Before that, forget about algorithm optimization, it will bring you nothing. TLDR: If you're not working in C++, and actually doing most of your development on data layout in memory and on disk, you don't care about performance. Math does not matter at all. Once a year I encounter a situation where math matters, and frankly I just usually find a PhD in that specific field and ask them (despite having a master degree in Math myself). You do not need math to program. The big secret is that for programming, there is only one thing that matters beyond basic programming skill. And that thing is domain knowledge of the problem. Exactly, I might add, what almost all programmers don't have.
- 9y ago