Wow, a free download of 409pp straight from the MIT Press! Also a nice geek-warming thanks at the end, with just a little more detail than you'd sometimes see in the frontmatter (compilation time):
> This book was typeset entirely with free software and fonts. The text is set in Palatino, designed by Hermann Zapf and available as TEX Gyre Pagella. The headings are set in Latin Modern Sans, based on Computer Modern Sans, designed by Donald Knuth.
The source files were created with GNU Emacs and managed with the Mercurial revision-control system. The figure source files were compiled with
MetaPost 1.999 and Asymptote 2.31. The TEX source was compiled to PDF
using ConTeXt 2014.05.17 and LuaTeX 0.79.1. The compilations were managed with GNU Make and took 10 minutes on a 2006-vintage Thinkpad T60 laptop. All software was running on Debian GNU/Linux.
A heartfelt thank you to all who contribute to the software commons!
Edit: If anyone here works on the MIT Press website, for some reason I can't add the paperback item to my cart. When I click the link it takes me to an empty cart every time (vanilla Chrome, no plugins).
I spent about a week going through Mahajan's OCW course "the art of approximation" (it's quite short and reads quite quickly). It changed how I view problem solving and engineering estimation forever.
"The Art of Insight in Science and Engineering" looks like a refined and expanded version of the OCW course. Like 6.055J, I'm sure it can be read casually and in small pieces. Do yourself the favor of checking out 6.055J or "The Art of Insight in Science and Engineering" (although see the caveat below).
Every chapter of 6.055J was mind-blowing for me. The "tree" technique. Using dimensionless constants. The random walk model of errors (i.e. why approximations end up being pretty good usually). Easy cases. Etc. A lot of it is just becoming aware of techniques we already use subconsciously or awkwardly; hence we learn to systematically and effectively use them.
One small caveat: Some of the content unfortunately doesn't extend super well into software/programming. Many of the useful properties that enable reasoning about physical systems (units, conservation laws, symmetry, equilibrium points/linearization, continuity, etc.) are not applicable to software in general since "anything is possible" in software. The software is basically in its own universe that has its own laws completely determined by the hardware/VM/language/API designers. It communicates with the "real universe" through very narrow and controlled channels. Some things from the book are applicable to software, but presented in a way that is strange or not terribly useful for software (e.g. "proportional reasoning" is just the familiar big-O reasoning).
Thank you for the comments. I agree with your caveat about the difficulty in applying the tools to software or programming. Although invariants are quite useful in programming too, and abstraction is an essential part of any large project. But I decided, perhaps wrongly, not to discuss the programming examples much. For example, an earlier draft had a discussion of abstraction and used the tree minilanguage that I wrote to make the tree diagrams, comparing the high-level abstractions it uses with the low-level lines of postscript or PDF code (near the bottom of the abstraction tower). But it ended up frightening lots of students, so I didn't include it in the published book.
I've read various drafts of this book and it really is fantastic. Rather than just teaching limited domain knowledge in science and engineering, it teaches a way to tackle ill-specified problems and how to wrestle out answers to hard questions.
I can give a strong second to the Street Fighting Mathematics recommendation. The stuff in there makes math into a thinking tool in a way I haven't seen anywhere else.
Just starting this now, but I thought I'd throw in- I've come to believe engineering has a significant creative element, when you let your mind free and seek to solve things in completely new ways. I'm excited to see if that is the kind of thing this book is talking about; it's not certain from the description.
"In this book, Sanjoy Mahajan shows us that the way to master complexity is through insight rather than precision."
OMG, my high school teachers were so pissed off when I'd attempt to understand things rather than just memorize what they gave me. College was only marginally better.
Logical leap: time to return to the Platonic Academy
> This book was typeset entirely with free software and fonts. The text is set in Palatino, designed by Hermann Zapf and available as TEX Gyre Pagella. The headings are set in Latin Modern Sans, based on Computer Modern Sans, designed by Donald Knuth. The source files were created with GNU Emacs and managed with the Mercurial revision-control system. The figure source files were compiled with MetaPost 1.999 and Asymptote 2.31. The TEX source was compiled to PDF using ConTeXt 2014.05.17 and LuaTeX 0.79.1. The compilations were managed with GNU Make and took 10 minutes on a 2006-vintage Thinkpad T60 laptop. All software was running on Debian GNU/Linux. A heartfelt thank you to all who contribute to the software commons!
Edit: If anyone here works on the MIT Press website, for some reason I can't add the paperback item to my cart. When I click the link it takes me to an empty cart every time (vanilla Chrome, no plugins).