Goodreads helps you keep track of books you want to read.
Start by marking “Think Like a Programmer: An Introduction to Creative Problem Solving” as Want to Read:
Think Like a Programmer: An Introduction to Creative Problem Solving
Enlarge cover
Rate this book
Clear rating
Open Preview

Think Like a Programmer: An Introduction to Creative Problem Solving

3.87  ·  Rating details ·  432 ratings  ·  31 reviews
Rewire your brain

Examples in this book are written in C++, but will improve your ability to think like a programmer in any language.

The real challenge of programming isn't learning a language's syntax—it's learning to creatively solve problems so you can build something great. In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve pr
Paperback, 233 pages
Published August 8th 2012 by No Starch Press (first published July 29th 2012)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Think Like a Programmer, please sign up.
Popular Answered Questions
Lujza You should know some basics in order to understand presented code and do the tasks
Martin They probably rated the original edition that wasn't in Python.
The development for this book has oficially stopped and it probably won't be coming out…more
They probably rated the original edition that wasn't in Python.
The development for this book has oficially stopped and it probably won't be coming out anytime soon. Still, there a lot of other good books about algorithms in Pyton - try "Think Python" or "Grokking Algorithms".(less)

Community Reviews

Showing 1-30
Average rating 3.87  · 
Rating details
 ·  432 ratings  ·  31 reviews

More filters
Sort order
Start your review of Think Like a Programmer: An Introduction to Creative Problem Solving
Wojtek Ogrodowczyk
Jan 02, 2017 rated it did not like it
Disclaimer: I dropped this book after getting through the first 15% and just browsing till the end.

I didn't like that, because of the three assumptions that the author made while writing the book and I believe all of them are false:

1. Being better in solving logical puzzles (how to cross a river with a fox, goat, and a cabbage, etc.) makes you a better programmer. Personally, I'm pretty bad at those puzzle, but I'm a fairly successful programmer with 10 years of experience. I don't see how gett
Steef Jacobson
Aug 08, 2012 rated it it was amazing
the only part I didn't like was the reliance to C++ but it really doesn't matter the language over the way to approach programming. I liked programming's relationship to puzzles; it reminded of of when learning to play the card game Bridge my roommate (LPC) compared each Bridge hand as a Puzzle to solve. Good examples and good exercises that where not just busywork homework. Thanks. ...more
May 25, 2020 rated it really liked it
Shelves: 2020
Not a programmer but probably because I'm intuitive so I feel like the book provides a very good framework to tackle problems by starting to think like a programmer. I find the provided framework very similar to the problem-solving framework in any other professional. The author chose C++ as the language to write all the sample problems and solutions in the book. ...more
Nathan Albright
Nov 08, 2016 rated it it was amazing
Shelves: challenge
It should go without saying that this book is most of benefit to someone who is a computer programmer, and especially someone who is skilled enough at C++ to do the exercises in this book. I must admit that I am not the ideal person for this book, not having that sort of programming basis, something that the author repeatedly comments on, such as when he pokes the reader saying: "I'm not kidding about doing the exercises. You're not just reading the chapters and moving on, are you (109)?" about ...more
Sep 11, 2016 rated it liked it
Shelves: comp-sci
It's an okay book & one I certainly wish it was available to me maybe 15 years ago! Not only is it a stealth introduction to computer science it's a good primer for C/C++. The initial style is a bit whacky and slightly lowbrow but the author seems to calm down and be more readable as the book progresses. However, his persistent admonishments to 'do the practice' at the start of each and every 'Excercises' section jars against the overall friendly tone. The Chapters on recursion are the best of t ...more
Cynthia S Elacqua
I wish this had been one of my college textbooks

My college did a decent job of training computer majors to be problem solvers. This book would have made an excellent companion text to instruction on data structures and algorithms.

The author recommends knowledge of or simultaneous study of C++. I feel it would be accessible to any programmer in the C language family. Programmers in other languages could also obtain some benefit, but understanding would be a harder climb.

Sure wish my workplace ha
Mar 27, 2015 rated it really liked it
Shelves: tech-books
The best part of the book is the logic explanation to each problem presented. When you know how to approach the solutions that certainly helps you plan your code. It was an entertaining read for a subject that could easily be a bit dry.
Mar 05, 2018 rated it it was ok
Unfortunately, Think Like a Programmer leaves something to be desired. This is much less a book about developing your skills as a programmer than it is a book about strategical problem-solving. I suppose that was an oversight on my part since the title states it's an introduction to problem-solving, but I was expecting more.

I wish I could say I was given a new perspective on said problem-solving, but I wasn't. The way this book approaches problem-solution situations can be easily summed up as "b
The Lost Dreamer
Mar 13, 2021 rated it it was ok
Shelves: coding
As a person who makes her living writing code, I've found this book rather disappointing. I read it hoping to extract some lessons to improve my code writing and looking for fresh ideas and points of view to enrich my workflow. What I found was a patronizing piece written for first-year college students. The author is so full of himself that extracting any lesson is quite difficult, for his attitude towards the reader is constantly that of a pissed teacher. I'm a grown-up and I find this way of ...more
Misty Madonna
Aug 13, 2018 rated it it was amazing
Shelves: computer-science, own
This book’s fantastic. From a beginner to an experience programmer, I believe everyone can benefit from reading it. It hammers down some fundamentals and also describes a new way of thinking about programming concepts.

This is the best resource I’ve found for preparing for interviews and I’ve read CTCI 3x. He explains things thoroughly and so in-depth, that it feels like he’s sitting in a room with you talking to you about it.

He’s also encouraging and that pushed it even more to the top for me.
Armando Leon
Jan 20, 2021 rated it it was amazing  ·  review of another edition
Amazing and Thought Provoking for Perfectionists

I’ve been coding for 6 years. I always struggle at solving problems, or even getting projects started. I always strive for perfection, but this book highlights that really you don’t need to be perfect or an expert. You can come up with a solution and move forward, then learn new techniques and apply it to your previous solutions or projects. Programming is a work in progress. And you get better as you continuously challenge yourself and apply what
Madhur Bhargava
Sep 01, 2019 rated it it was amazing
Shelves: programmming
It is rare to come across an author who is really skilled at his craft and also understands his audience at the same time. This book is crafted by one such author and is a rare gem. The explanation and the level of details/insights provided for each topic is astounding. This book is an eye opener for many CS concepts and should be included in every higher CS degree’s curriculum. Highly recommended for all programmers and those who want to be one out there.
Yu-Hsien Kuo
May 09, 2017 rated it it was amazing
Shelves: programming
A really well-written book for someone with a foundation algorithms and data structures. The information is presented in a structured manner, there are plenty of examples, and clear explanations are given throughout. Highly recommended for anyone who's acquired basic knowledge of a C-like language and would like to know more. ...more
Oct 29, 2017 rated it really liked it
A great book. It really helps with developing your problem solving skills, and it appeals to a beginner and an expert programmer alike.

The problems presented are solved with a step-by-step explanation and pseudocode, which makes everything a lot more understandable. Each problem also has a C++ solution, so that you may test the code yourself.

Overall a great book to learn some problem solving skills - it's never too late for that.
Heather Gray
Mar 06, 2018 rated it it was amazing
Absolutely brilliant! Would recommend this book to anyone starting to learn programming, and anyone who is self-taught or just wants to practice algorithmic thinking. The way the author teaches programming in this book is unlike any other I've come across. And it's timeless - the lessons in this book will apply even 10 years later. ...more
Septian Nugraha
Mar 10, 2021 rated it it was amazing  ·  review of another edition
Enjoy my first read, will definitely re read it

I found it funny because this book used C++ programming language for all its examples, which I'm not really familiar with. Now that I finished this book, I'm grateful that I didn't just learn new language, but also much larger concepts
Francis Anthony Carmel
Apr 13, 2021 rated it it was amazing
Recommends it for: Software Engineers
This review has been hidden because it contains spoilers. To view it, click here.
Mar 12, 2017 rated it really liked it
- found some pieces of useful advice that resonated/introduced new perspectives to my current knowledge in each chapter.
- All in all would recommend it to a programmer in the making.
- it's an easy read.
- problems are not so difficult.
Jeff Mottishaw
Jun 20, 2019 rated it it was amazing
This book gives a clear and concise overview of how to start applying beginning programming projects to real-world problems. I really appreciated the author’s use of humor and multiple examples per chapter.
Jul 08, 2018 rated it really liked it
Great information, exercises, and advice for anyone interested in programming and thinking of making a career.
Apr 15, 2019 rated it liked it
Pretty Good for a beginner to have as a reference. The dependency to C++ is a bit annoying but understandable.
Fernando De Freitas
Aug 23, 2019 rated it really liked it
Shelves: owned, development
Decent book. Not exceptional but has a lot of good information for anybody interested in getting into software development.
Xavier Fornés Arrabal
First few chapters started promisingly but the 2/3 rest of the book did not fulfil my expectations.
I recommend the first part of the book the rest up to you
Yogi Saputro
I taught modern web development for people who want to switch career. This book was a big help in providing analogy and paradigm.

I pretty much consider C++ part useless. But for me, even a third of this book is worth 5 stars.
Mar 04, 2017 rated it really liked it
Shelves: it
This is a good read for entry- to mid-level programmers. Presents good practises and approaches to problem solving techniques with detailed examples and extra exercises to work on.
A perfectly fine book to flip through.

Most of the headline advice here is the sort you could get from any "how to solve programming problems" book: restate the question, pay attention to the constraints, reduce the puzzle area, draw diagrams.

And yet, though this is not the first book in this area that I've read -- which would seem to make it repetitive and unnecessary -- I actually found myself mostly interested in Spraul's examples and explanations. I especially enjoyed his chapters on recursio
Nov 22, 2013 marked it as to-read
Shelves: own
Putting this on hold, it's a good book I just have too many other things to work on right now. ...more
Apr 20, 2014 rated it really liked it
Shelves: cs
Lots of good ideas and exercises in this book. If you're going to read it, do it right, and try everything! ...more
Feb 01, 2015 rated it it was amazing
a book should be read early in a porammer's career. It is about some deepdown way of thinking in writing programs to solve problems and its effect on me is subtle but profound. ...more
Nov 04, 2015 rated it really liked it
A good read for college students with emphasis on problem solving rather that a specific language syntax.
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Cracking the Coding Interview: 150 Programming Questions and Solutions
  • The Pragmatic Programmer: From Journeyman to Master
  • Code: The Hidden Language of Computer Hardware and Software
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Code Complete
  • Algorithms to Live By: The Computer Science of Human Decisions
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Cloud Computing Basics
  • You Don't Know JS: Up & Going
  • Naked Statistics: Stripping the Dread from the Data
  • The American Spirit: Who We Are and What We Stand For
  • All Hail the Queen (Disney Frozen: Anna & Elsa, #1)
  • Doing Math with Python
  • Race Team (Disney/Pixar Cars)
  • My Dinosaur is Scared of Vegetables
  • GUI Design for Android Apps
  • Alan Turing: The Enigma
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

News & Interviews

Secrets between siblings, grandparents with grievances, parents with problems. If you're looking for serious drama, check out these new...
20 likes · 3 comments
“In essence, most programming books for beginners teach how to read a program, not how to write one.” 2 likes
“For programmers, then, we can define problem solving as writing an original program that performs a particular set of tasks and meets all stated constraints.” 1 likes
More quotes…