4 ms·
>> we actually use discrete math, where we deal exclusively with non-continuous numbers. This includes things like graph theory, logic, and combinatorics. You m
by strulovich 5y ago
>> we actually use discrete math, where we deal exclusively with non-continuous numbers. This includes things like graph theory, logic, and combinatorics. You might not realize that you are using these, but you do. They’re just so internalized in software that we don’t see them as math!
> I strongly disagree with this level of charity. That's like saying every cyclist is a physicist.
Boolean logic, and while loops are proper examples of discrete math. They’re practiced by virtually every developer. An equivalent example from the world of continuous math could be integrating over some range.
- MaxBarraclough 5y agoUnderstanding the control-flow constructs of an imperative programming language is not equivalent to understanding the discrete maths of imperative programming (Hoare logic, Z notation, B-method, etc). As I said, the average developer is incapable of doing serious discrete mathematics such as formally proving the correctness of an algorithm. For that matter, I doubt the average developer would know what it means for a language to have a formal semantics. To anticipate the path of a frisbee is to, in mathematical terms, solve a differential equation. Dogs can catch frisbees. We still don't say that dogs understand the mathematics of differential equations. [0][1] In the software world, formal methods are a niche, as are the associated mathematics. Being costly, they are not used in mainstream software work. [0] (PDF) http://www.math.pitt.edu/~bard/bardware/classes/0220/dkc.pdf http://www.math.pitt.edu/~bard/bardware/classes/0220/dkc.pdf [1] https://www.wired.com/1993/05/dogs/ https://www.wired.com/1993/05/dogs/
- CSSer 5y agoFirst I want to let you know that I didn't take it personally (all in jest), but I've never been so artfully called a dog in my life. Thanks for that :)
- MaxBarraclough 5y agoI'm sure cats could catch frisbees too, they just won't.
- CSSer 5y agoI'd rather be a dog. So what if I do know some discrete math and I do know what it means for a language to have a formal semantics? Does that make me an above average developer or a software engineer?
- MaxBarraclough 5y ago> So what if I do know some discrete math and I do know what it means for a language to have a formal semantics? We were discussing whether the average software developer can be said to 'do math' in the sense that aeronautical engineers do. I think it's plain that the answer is no. Whether it matters is another topic. As I said above, in terms of market forces, it's fine that most software developers go their whole careers doing no proper math. It's also true that some highly skilled software professionals are expert in the relevant math. As to Are software developers engineers?, I hope it's uncontroversial to say Some of them are, some of them aren't. What's less clear, and less obvious, is where the bar should be set. Personally I consider only a small minority of software development work to be anywhere near engineering, but like the article notes, I don't have experience in any 'conventional' engineering field. Given that router-installation technicians are called engineers these days, software isn't alone in its collision with the word.