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.88  ·  Rating details ·  364 ratings  ·  26 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

Community Reviews

Showing 1-30
Average rating 3.88  · 
Rating details
 ·  364 ratings  ·  26 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.
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.
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
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
Artur Sabirov
Sep 06, 2012 rated it really liked it
Несмотря на слегка наивное название, книга сочетает в себе несколько очень интересных кейсов в решении логических задач (Problem Solving). реализация алгоритма Луна (Luhn), шифрование текста и использование динамической памяти.
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
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.
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.
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.
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.
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.
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.
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.
Jul 08, 2018 rated it really liked it
Great information, exercises, and advice for anyone interested in programming and thinking of making a career.
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
Fernando De Freitas
Aug 23, 2019 rated it really liked it
Shelves: development, owned
Decent book. Not exceptional but has a lot of good information for anybody interested in getting into software development.
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.
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
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
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.
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!
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.
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.
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.
rated it it was amazing
Apr 07, 2013
rated it really liked it
Feb 19, 2019
Ryan Gunn
rated it liked it
Aug 28, 2015
rated it really liked it
Nov 07, 2019
« previous 1 3 4 5 6 7 8 9 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • The Pragmatic Programmer: From Journeyman to Master
  • Code: The Hidden Language of Computer Hardware and Software
  • You Don't Know JS: Up & Going
  • Code Complete
  • Automate the Boring Stuff with Python: Practical Programming for Total Beginners
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Cracking the Coding Interview: 150 Programming Questions and Solutions
  • The Principles of Object-Oriented JavaScript
  • The C Programming Language
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • But How Do It Know? - The Basic Principles of Computers for Everyone
  • 97 Things Every Programmer Should Know: Collective Wisdom from the Experts
  • The Millionaire Fastlane: Crack the Code to Wealth and Live Rich for a Lifetime!
  • Hacking: The Art of Exploitation
  • Secrets of the JavaScript Ninja
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • Hooked: How to Build Habit-Forming Products
  • JavaScript: The Good Parts
See similar books…

Goodreads is hiring!

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

Related Articles

This June, as we observe LGBTQ Pride—the annual celebration of the lesbian, gay, bisexual, transgender, and queer/questioning communities—we wa...
2 likes · 4 comments
“Don’t Get Frustrated The final technique isn’t so much a technique, but a maxim: Don’t get frustrated. When you are frustrated, you won’t think as clearly, you won’t work as efficiently, and everything will take longer and seem harder. Even worse, frustration tends to feed on itself, so that what begins as mild irritation ends as outright anger.” 1 likes
“In essence, most programming books for beginners teach how to read a program, not how to write one.” 0 likes
More quotes…