If you had to recommend a single book to introduce the way programmers think to anyone, but it had to be from outside the field of CS, what would it be?For programmers, my hands down, all-time, crushing winner would be Becoming a Technical Leader by Gerald M. Weinberg, which is mainly about self-development but still for an already technical audience. When I was in High School ,the book Godel, Escher, Bach by Douglas R. Hofstadter had just come out, and we had an entire course devoted to it. It is probably one of the most quoted books of all time.What one book (besides Alice in Wonderland) conveys the mindset and enjoyment of mental processes similar to programming, to a non-technical person? What is it that makes this book important/vital?
What non-programming book is vital for learning the CS mindset?
teaching analogy;resource request;adult education;computational thinking;textbook
The hardest part of determining anything in computer science is the requirements first.  If you don't know what the program should do, then there is no way to do it correctly.Thus, Winnie the Pooh is a wonderful book on the matter.  It clearly describes time and time again how simple misunderstandings of the base assumptions lead to absurdities of action.  From tracking a woozle of one's own making (and debugging where the error was actually being originated) to trying to define a heffalump and building something completely wrong as a result.With the summary of Winnie the Pooh in In which Christoffer Robin gives a Pooh party, and we say good-bye we realize that our jobs as writers of code is to take the stuff of dreams and make it into reality.Winnie the Pooh has the advantage over many other books by being accessible by all levels of readers and can often be found in less expensive books compared to many other textbooks. 