Discover new selections
Add Prime to get Fast, Free delivery
Amazon prime logo
Buy new:
-8% $46.20
FREE delivery Thursday, May 1
Ships from: Amazon.com
Sold by: Amazon.com
$46.20 with 8 percent savings
List Price: $49.99
FREE Returns
FREE delivery Thursday, May 1
Or Prime members get FREE delivery Monday, April 28. Order within 6 hrs 18 mins.
In Stock
$$46.20 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$46.20
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon.com
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Amazon.com
Sold by
Amazon.com
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$25.95
Get Fast, Free Shipping with Amazon Prime FREE Returns
100% Satisfaction Guaranteed. Ships direct from Amazon Former Library book with associated markings. 100% Satisfaction Guaranteed. Ships direct from Amazon Former Library book with associated markings. See less
FREE delivery May 5 - 9 on orders shipped by Amazon over $35
Or fastest delivery May 3 - 6
$$46.20 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$46.20
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Think Like a Programmer: An Introduction to Creative Problem Solving Illustrated Edition

4.7 out of 5 stars 483 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$46.20","priceAmount":46.20,"currencySymbol":"$","integerValue":"46","decimalSeparator":".","fractionalValue":"20","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"p4cMOb9w9k7EGsyNGvw%2BkZZN7bnuHIzXll7XJNa6N3%2FnNWOd%2FEBWcOlzrVAHYRmEFY602GRsqFeBr1CMg%2BHitbTxZK%2FVeYx877HF5Dn%2B43%2FCtActdN3RJk1q6LhO2%2FmDthqRQQuL2wpFW94pWe6tvA%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$25.95","priceAmount":25.95,"currencySymbol":"$","integerValue":"25","decimalSeparator":".","fractionalValue":"95","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"p4cMOb9w9k7EGsyNGvw%2BkZZN7bnuHIzXbiHQ0jqQYBJFIdpTVRx8Gvt4egsp7usOSfSUcN96UHpvGFmFZu6EKO1w78DDj96ADWTpkCCh04jzYQ2oERIvyC0uCo3uY%2BI8dkGaCCJ%2B3TdxxK902nhHDEbKKmOwCQL0VE9f%2BvlsEiT0ZOqu5%2Flpzw%3D%3D","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

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 problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge.

You'll also learn how to:
–Split problems into discrete components to make them easier to solve
–Make the most of code reuse with functions, classes, and libraries
–Pick the perfect data structure for a particular job
–Master more advanced programming tools like recursion and dynamic memory
–Organize your thoughts and develop strategies to tackle particular types of problems

Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to
Think Like a Programmer.

Frequently bought together

This item: Think Like a Programmer: An Introduction to Creative Problem Solving
$34.22
Get it May 6 - 13
In stock
Usually ships within 3 to 4 days.
Ships from and sold by allnewbooks.
+
$33.06
Get it as soon as Thursday, May 1
In Stock
Ships from and sold by Amazon.com.
+
$28.19
Get it as soon as Thursday, May 1
In Stock
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
Some of these items ship sooner than the others.
Choose items to buy together.

Editorial Reviews

Amazon.com Review

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 where Think Like a Programmer comes in.”

Review

"The author is obviously very knowledgeable and experienced with teaching hard concepts to new learners and this shows in his no-nonsense, down-to-earth but enjoyable writing style."
—Adrian Woodhead, Slashdot 

"Spraul has taught intro computer science classes for over fifteen years and it shows. He does a great job showing the theory using concrete examples, and rightfully puts a great deal of emphasis on programming exercises to strengthen the concepts."
—Ariane Coffin, Wired.com's GeekMom 

"The combination of conceptual overview and common problem-solving techniques that are applicable to many applications make this a particularly feasible way to supplement or review programming skills while learning a systematic approach to problem solving."
—Choice Magazine

"This is one of the most helpful books I've read, due to the fact that it guides you towards designing a system for yourself, as opposed to encouraging a mindset where there can be only one correct method."
—Lucas Westermann, Full Circle Magazine

"The book is well-written, with tons of excellent advice and solid, well-thought-out examples. If you’re willing to devote some time to studying the material, you’ll soon find yourself equipped with an impressive array of problem-solving strategies and, maybe, a new outlook on programming."
—Phil Bull, author of the official Ubuntu documentation 

"I guarantee if you work through the entire book you will stretch your brain."
—David Bolton, About.com C/C++/C#

"I would definitely recommend this book as a companion to whatever text is used to introduce [new students] to programming and/or program logic."
—Joe Saur, The ACM's Software Engineering Notes Magazine

"[V. Anton Spraul's] advice is simple, straightforward, and practical. It's an easy—and valuable—read."
—James Powell, Enterprise Systems 

"I highly recommend
Think Like a Programmer to anyone who wants to hone their creative problem-solving skills or to anyone who has learned to program, but doesn't feel that they fully understand the concepts."
—Robert Perkins, Game Vortex

"This is definitely a book that I would use in teaching programming to others."
—Stephen Chapman, Ask Felgall

Product details

  • Publisher ‏ : ‎ No Starch Press; Illustrated edition (August 12, 2012)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 256 pages
  • ISBN-10 ‏ : ‎ 1593274246
  • ISBN-13 ‏ : ‎ 978-1593274245
  • Item Weight ‏ : ‎ 2.31 pounds
  • Dimensions ‏ : ‎ 7 x 0.59 x 9.25 inches
  • Customer Reviews:
    4.7 out of 5 stars 483 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
V. Anton Spraul
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

V. Anton Spraul has lived his entire life in Birmingham, Alabama, while somehow acquiring so little accent that locals assume he's from Ohio. He's an award-winning teacher with two degrees in computer science, and considers his nonfiction writing another form of teaching. His most popular book, Think Like a Programmer, combats a common malady for beginning programmers: the inability to write a complete, original program from scratch. "The book every programmer should read once" has fans around the globe and has been translated into five languages. Spraul maintains a blog on a range of topics and creates YouTube videos that extend the topics in his books. In his off-hours, he reads across a range of seriousness from economics texts to old-fashioned mysteries, records music, and plays games on computers he builds himself.

Customer reviews

4.7 out of 5 stars
483 global ratings

Review this product

Share your thoughts with other customers

Customers say

Customers find the book well-written and consider it one of the best books in the industry. Moreover, the knowledge level receives positive feedback, with customers appreciating its outstanding pedagogy and ability to conceptually understand programming concepts. Additionally, the book effectively elaborates on most programming concepts and issues.

AI-generated from the text of customer reviews

19 customers mention "Readability"19 positive0 negative

Customers find the book well written and consider it one of the best books in the industry.

"...It is a fun read and if you know any OOP language you'll have no problem with the C++ examples, they are not that advanced, but do make great and..." Read more

"...All in all, well written, good use of examples, and sensible exercises to put the concepts into practice." Read more

"Great quality book." Read more

"...He says this was a really good read and a great Intro book to programming." Read more

17 customers mention "Knowledge level"17 positive0 negative

Customers appreciate the book's pedagogy and find it conceptually understandable, with one customer noting it includes sensible exercises for practice.

"...The pedagogy is outstanding, as I'm finding with many No Starch titles, and you really remember this author's examples...." Read more

"...All in all, well written, good use of examples, and sensible exercises to put the concepts into practice." Read more

"...concepts and issues and puts them in words that allows you to conceptually understand...." Read more

"A very useful book for anyone, specially for self-taught programmers because the book teaches the real problem-solving techniques not just libraries." Read more

7 customers mention "Programming knowledge"7 positive0 negative

Customers appreciate how the book elaborates on programming concepts and issues, with one customer noting its use of C++ as an example language.

"...Programming is a work in progress. And you get better as you continuously challenge yourself and apply what you learn." Read more

"...He says this was a really good read and a great Intro book to programming." Read more

"Great book. Uses C++ and elaborates on most programming concepts and issues and puts them in words that allows you to conceptually understand...." Read more

"Like the title says, this book gives you a new way to look at programming...." Read more

Easy to follow, half way through . I like it so far.
4 out of 5 stars
Easy to follow, half way through . I like it so far.
Great quality book.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • Reviewed in the United States on July 23, 2013
    Some companies still put you in front of a whiteboard and ask you to code. BUT, given the amount of coding that's going to Russia, China and India, the hot upcoming jobs are in coding MANAGEMENT, Data Science, Embedded Systems, Sploit management and other high level design categories. Many even smaller companies are now creating a "CDSO" (Chief Data Science Officer) position which in some cases pays in the high 6 figures.

    This book is outstanding for the nitty gritty not just of how but WHY we select certain Design Patterns, structures, algorithms, and, in short, solution sets. It is a fun read and if you know any OOP language you'll have no problem with the C++ examples, they are not that advanced, but do make great and unusual points about options in, for example, modifying for efficiency or to avoid "reinventing the wheel" (or as the saying goes, reinventing the flat tire!).

    I interview hundreds of prospective coding managers, and I prefer to keep the questions at the 30,000 foot level of this text-- solution strategies, not just coding conventions or syntax. A lot of good people, especially overseas, can code, but very few can adeptly wind through imperative vs. functional, or modular modification vs. untouched APIs that aren't an exact fit to the problem definition.

    Everything from sliding puzzles and Sudoku are used by this engaging author to highlight examples not just of solutions but the differences between solution strategy options underlying those choices. The pedagogy is outstanding, as I'm finding with many No Starch titles, and you really remember this author's examples. He doesn't just understand analogy generalization deeply, he uses it adeptly throughout the book. I've found VERY FEW books that even attempt to do this, let alone do it well.

    A classic like Code Complete (CC) will give many more of the details that are illustrated in this book, but a triple threat of OOP Demystified, this book, and CC will make your interview, or consulting gigs, go much smoother. If you're considering writing a software book, this is a must read just for the pace, pedagogy and format. NOT a text from the standpoint of "solutions in the back," but great for changing your frame of reference about IT in general and problem solving specifics. Highly recommended.

    EMAILER NOTE: If you agree with some other reviewers that C++ is a "bias" you might enjoy Michael L. Scott's: Programming Language Pragmatics, Third Edition-- it is 900 pages and covers problem solving (in general and with specifics) in far more detail, and includes C++, Java, Ada, C# and Fortran in imperative and F#, OpenMP, and Scheme in functional as well as Erlang in concurrent/parallel. Some reviewers took umbrage that the author considers C++ a "real" language, but to be honest, people who code for nuclear plants and jet engines DO use C and C++, and many of them think of scripting languages as kid stuff. This isn't my opinion, just wanted you to understand a lot of the thinking out there. That said, LISP folks look down on C++ folks too in some cases, and circuit designers dealing with ML and Assembler think we're ALL kids!

    Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it's a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.
    60 people found this helpful
    Report
  • Reviewed in the United States on January 21, 2021
    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 you learn.
    20 people found this helpful
    Report
  • Reviewed in the United States on May 29, 2015
    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 had allowed the luxury of studying a language before building production applications with it. Some of the author's recommendations in the last chapter are not always within the working programmer's control. The difference between academia and the rest of the world.

    All in all, well written, good use of examples, and sensible exercises to put the concepts into practice.
    31 people found this helpful
    Report
  • Reviewed in the United States on December 20, 2023
    Great quality book.
    Customer image
    4.0 out of 5 stars
    Easy to follow, half way through . I like it so far.

    Reviewed in the United States on December 20, 2023
    Great quality book.
    Images in this review
    Customer image
  • Reviewed in the United States on January 17, 2021
    I can't rate this personally but I am rating based on the person whom I bought it as a gift for. He says this was a really good read and a great Intro book to programming.
    2 people found this helpful
    Report
  • Reviewed in the United States on March 10, 2021
    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
    5 people found this helpful
    Report
  • Reviewed in the United States on June 6, 2017
    Great book. Uses C++ and elaborates on most programming concepts and issues and puts them in words that allows you to conceptually understand. This book had arrived badly damaged, as if it was kicked across a concrete floor and then put into the box for shipping.. contacted amazon for a replacement so all is well.
    7 people found this helpful
    Report
  • Reviewed in the United States on January 11, 2021
    A very useful book for anyone, specially for self-taught programmers because the book teaches the real problem-solving techniques not just libraries.
    3 people found this helpful
    Report

Top reviews from other countries

Translate all reviews to English
  • G MICHAEL
    5.0 out of 5 stars Great book, excellent job by the author
    Reviewed in the United Kingdom on June 18, 2020
    Wish this book was my first ever purchase on Programming, I would have saved myself a lot of money 10/10
  • Carlos Duart
    5.0 out of 5 stars Excelente libro
    Reviewed in Mexico on March 25, 2019
    Este libro es muy bueno no para enseñarte a programar en un lenguaje especifico, si no que te su objetivo es enseñarte los mejores metodos para pensar en como resolver un problema, hacer el mapeo del problema, planificar la solucion y posteriormente trasladarlo al entorno de programacion.

    Su enfoque te da las bases para comprender los problemas, segmentarlo y llegar a una adecuada solucion.

    El precio es excelente por el contenido que ofrece.
    Report
  • Kleber Cesar Alves de Souza
    5.0 out of 5 stars Muito esclarecedor.
    Reviewed in Brazil on March 10, 2025
    Excelente livro.
  • Daniel Martínez
    5.0 out of 5 stars Muy recomendable.
    Reviewed in Spain on June 20, 2022
    Magnífico libro para aprender a pensar y ordenar tu mente a la hora de enfrentar problemas de programación.
  • Persona-M
    1.0 out of 5 stars Bof
    Reviewed in France on April 19, 2021
    Très déçu, sans vouloir être arrogant l'auteur ne me semble pas être une lumière il avoue n'avoir pas su
    résoudre le problème de la rivière par exemple.
    Ensuite il donne l'impression que la résolution de problèmes est une affaire de programmeur.
    C'est faux et archi-faux, on dirait qu'il n'a jamais entendu parler de l'algorithmique
    qui elle est une vraie science .
    Ensuite l'organisation du livre laisse à désirer (une bonne moitié est consacrée a la programmation objet via C++ ce qui d'après mon expérience est la pire des choses à faire avec les débutants.)
    Il aurait mieux valu
    -Intro sur le hardware (comment le CPU "travaille")
    -Cours et rappels sur l'algorithmique

    -Analyser le problème
    -Résolution (encore de l'algo)
    -Traduire par un pseudo-code
    -Traduire par un language simple (procédural voir fonctionnel) ou a la limite Python mais SURTOUT pas du C++ ou de l'objet.
    -Tester
    -Débugger

    Je donne des cours de programmation, et c'est la meilleur méthode POINT on doit apprendre a réfléchir et résoudre un problème donné ( pas a faire les malins avec C++ Java ou je ne sais quoi).

    Ce qui est assez drole c'est que l'auteur nous dit "the real challenge isn't learning a language's syntax,it's learning to creatively solve problems" alors qu'une bonne partie de son propos est "make code reuse with functions,classes,and libraries" ou "master advanced tools like dynamic memory".
    Je vous laisse traduire...