# In Praise of Street Fighting

Sanjoy Mahajan's *Street-Fighting Mathematics* is subtitled "The Art of Educated Guessing and Opportunistic Problem Solving". As the author says in the introduction, "Too much mathematical rigor teaches *rigor mortis*: the fear of making an unjustified leap even when it lands on a correct result." It's only 134 pages long (including the index), but it's packed full of practical ideas for tackling mathematical problems; in a sense, it aims to train people to do the kind of rough-and-ready calculations that David MacKay deploys so effectively in *Sustainable Energy—Without the Hot Air*.

Books like this make me wonder what a computing equivalent might look like. What *are* some useful heuristics for tackling programming problems? Does it even make sense to think in those terms, given that programming mostly a non-numerical activity (our programs may push numbers around, but we don't produce them via calculation)?

Still pondering...

Note: both SFM and SEWHA are available online.

*Originally posted at Software Carpentry.*