3 ms·
Now, from a logical viewpoint this title could also be "why an excellent software engineer can be a mathematician", or (assuming that excellence in mathematics
by sqrt17 15y ago
Now, from a logical viewpoint this title could also be "why an excellent software engineer can be a mathematician", or (assuming that excellence in mathematics does not affect your ability to engineer software) "why a software engineer can be an excellent mathematician". Now, to get all the angry mathematicians from stabbing me, here's another truth: bad software engineers (i.e., people who do software engineering but aren't good at it) are useful and are often paid real money for what they do. Bad mathematicians are chased away and either become jobless or find a new destination of being a physicist, software engineer, or restaurant owner, because bad mathematics doesn't pay for itself.
Intuition (the thing that the article's author bumps his head against without noticing it) is really important in mathematics, even though its importance is usually played down wrt. the importance of handling the technical details (correctness of a proof, keeping mathematical structures in your head). In fact, the same faculty used for the formal work is also used for your mathematical intuitions, but then the intuitions are turned into a proof by checking and re-checking how it all fits together.
Eugenia Cheng (a category theorist) uses the term "morality" for the mathematical equivalent of design patterns:
http://cheng.staff.shef.ac.uk/morality/morality.pdf http://cheng.staff.shef.ac.uk/morality/morality.pdf
- gruseom 15y agoWow, that looks like a fun paper. I'm going to read the rest of it later. But I must protest at your equating it to design patterns. I wish design patterns would go away. They're clumsy and mislead people. Good software intuition is something more refined and ineffable. It can't be written up or formalized any more than mathematical craft can, or poetic craft for that matter. By pretending it can, design patterns poisoned the culture. I'd bet money Cheng isn't talking about anything like that.
- gruseom 15y ago(Making a separate follow-up reply here) I've now read the whole thing. It's delightful! Thank you. You should make a separate HN post out of it. It might attract interesting discussion, though that's mostly the luck of the draw. What she's saying does have parallels in software. Being able to know why something is designed or coded the way it is is critical to good software work. That for me is the connection. I consult this kind of intuition all the time. For example, I had a massive breakthrough yesterday - something I've been banging my head over for months suddenly yielded to a simple solution - but the most compelling thing was that it was a moral solution in Cheng's sense: I can look at it and see not just that it works but why. Finding this solution brought a tremendous feeling of relief. But without the "moral" aspect, I wouldn't have felt nearly as good; I'd have seen the tests passing and things appearing to be correct, but there would have been less relief and more of the uneasy sense that it might fall apart with the next test case. The material about social proof is reminiscent of De Millo, Lipton, and Perlis on the Limits of Formal Methods, which is also worth reading: http://news.ycombinator.com/item?id=3554556 http://news.ycombinator.com/item?id=3554556. Also, one of the most delightful things in the (Cheng) piece is the quote from Hume, showing that as so often, Hume got there before everybody else and said it best. I still don't think it has the least thing to do with design patterns, though :)