Think Like a Programmer: An Introduction to Creative Problem Solving
A Message From Author V. Anton Spraul“Over the past 15 years, I've taught programming to countless students from every sort of background. A few of them  were naturals, but most struggled, even the ones who would eventually turn into excellent programmers. However, they  weren't struggling with the syntax of the programming language, but rather with applying it to solve the assigned  problems.Knowing how to read a program is very different from knowing how to write one. While  typical books or training courses  are often effective at explaining the individual elements of programming, they tend to offer little advice on combining  these elements to solve particular problems. That's whereThink Like a Programmercomes in.”