V. Anton Spraul has taught introductory programming and computer science for more than 15 years. This book is a distillation of the techniques he has used and honed over many one-on-one sessions with struggling programmers. He is also the author of Computer Science Made Simple (Broadway).
Think Like a Programmer: An Introduction to Creative Problem Solvingby V. Spraul
- LendMe LendMe™ Learn More
Many programmers struggle to write programs, even though they understand their chosen programming language. Programming isn't about syntax-it's about problem solving, and all good programmers can solve problems. Unfortunately, most programming books focus on syntax and semantics, resulting in programmers who can't make the leap from reading programs to writing them. Think Like a Programmer bridges that gap, teaching readers how to solve problems systematically, offering numerous techniques and examples designed to demonstrate how to organize thoughts, discover solutions, and find strategies to solve certain classes of problems. Programming, and especially problem solving, is a creative activity, and although this book won't tell anyone precisely what to do in a given circumstance, it will help readers develop their latent problem-solving abilities so that they will know what they should do. Think Like a Programmer is designed to help readers become the programmers they were meant to be.
- No Starch Press San Francisco, CA
- Publication date:
- Sold by:
- Barnes & Noble
- NOOK Book
- Sales rank:
- File size:
- 6 MB
Meet the Author
and post it to your social network
Most Helpful Customer Reviews
See all customer reviews >
This book bills itself as an introduction to creative problem solving and it starts off on the right track. Using a few interesting logical puzzles such as the "fox, goose, and corn crossing the river" puzzle and an alien combination lock puzzle invented by the author, it explains some useful problem solving techniques such as breaking a problem into manageable pieces, looking for analogies to previously solved problems, and attacking the easiest parts of a problem first. Unfortunately the author is sometimes rather pedantic, beating a topic into the ground long after it has lost all interest. The book also spends a lot of time on programming-specific topics that aren't really creative problem solving. For example, the book spends six pages explaining what arrays are and how they work, eight pages on string manipulations, and whole sections on basic data structure topics such as linked lists. These are important topics but they really aren't creative problem solving. These topics also require a fair amount of C++-specific syntax and manipulation. For example, the sections on string manipulation don't make any sense in languages such as C#, Java, or Visual Basic that treat a string as an entity instead of as a series of bytes. You can still read the text and try to pull out the deeper concepts but they are obscured by the C++ orientation. The book might have been improved by using pseudo-code for everything and focusing only on problem solving tricks and techniques, but perhaps the author wanted to use C++ so readers could write concrete, testable programs. This might be a good second book for a beginning C++ programmer, but more experienced programmers will be familiar with most of the topics covered in this book and programmers using other languages will need to make some mental adjustments to convert the C++ examples into a more familiar form.