Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Instant streaming of thousands of movies and TV episodes with Prime Video
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
$19.12$19.12
FREE delivery: Tuesday, Jan 30 on orders over $35.00 shipped by Amazon.
Ships from: Amazon Sold by: HBBC STORE
Buy used: $16.25
Other Sellers on Amazon
FREE Shipping
96% positive over lifetime
FREE Shipping
& FREE Shipping
95% positive over last 12 months
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.
Exercises for Programmers: 57 Challenges to Develop Your Coding Skills 1st Edition
Purchase options and add-ons
One of the best ways to learn a programming language is to use it to solve problems. That's what this book is all about. Instead of questions rooted in theory, this book presents problems you'll encounter in everyday software development. These problems are designed for people learning their first programming language, and they also provide a learning path for experienced developers to learn a new language quickly.
Start with simple input and output programs. Do some currency conversion and figure out how many months it takes to pay off a credit card. Calculate blood alcohol content and determine if it's safe to drive. Replace words in files and filter records, and use web services to display the weather, store data, and show how many people are in space right now. At the end you'll tackle a few larger programs that will help you bring everything together.
Each problem includes constraints and challenges to push you further, but it's up to you to come up with the solutions. And next year, when you want to learn a new programming language or style of programming (perhaps OOP vs. functional), you can work through this book again, using new approaches to solve familiar problems.
What You Need:
You need access to a computer, a programming language reference, and the programming language you want to use.
- ISBN-101680501224
- ISBN-13978-1680501223
- Edition1st
- PublisherPragmatic Bookshelf
- Publication dateOctober 13, 2015
- LanguageEnglish
- Dimensions6 x 0.25 x 9 inches
- Print length120 pages
Frequently bought together

Similar items that may ship from close to you
From the brand
-
The Pragmatic Programmers publishes hands-on, practical books on classic and cutting-edge software development and engineering management topics. We help professionals solve real-world problems, hone their skills, and advance their careers.
-
From the Publisher
Q&A with Brian Hogan, author of Exercises for Programmers
Why did you decide to write this book?
I learned to program when I was in fourth grade. I was struggling with some math problems at the time, and my dad showed me how to write a program to quiz me at math problems. My dad wasn't formally trained, he just knew enough to show me what to do. And so programming, to me, was about solving problems.
But when I got to college, my professors were more interested in doing algorithms and puzzles. I was never great at mentally connecting the dots. But I had one teacher who was very focused on real-world programming; writing programs to solve business problems. And everything clicked.
When I got into the field, I found myself in many situations where I was teaching people to code, and I needed exercises for them to do, so I started looking at the things I had to write at work and simplifying them down. I've written BMI calculators, widgets for web sites that pulled down the weather, URL shorteners, and many other things that can teach programming concepts in context.
So when I became a teacher full-time a few years ago, I began introducing these exercises into my classes for additional practice in order to prepare students for assessments. I saw student performance improve significantly. And I figured that if it worked for me, it would work for everyone.
So this book is for beginners?
Over the years I've had to learn some new programming languages, and I've returned to these programs to get me through that. When I was learning Go a few years ago, I tried these programs. And I just did the same thing this last year with Elixir. I've seen how the "todo list" program has become the way for developers to get their minds around an MVC framework, so I think there's a ton of value in solving known problems with a new language. I also think it's easier to learn a language when you have some goals and direction. When you've never used Swift before, even something as simple as making a mad-lib program can be a great experience.
What's your favorite exercise in this book?
One of the exercises in the book uses an API to show you how many people are in space. The API shows you their names and which spacecraft they are on. First, I think it's awesome we live in a time where people are in space. But also, I think the exercise is interesting and engaging, while still having you work through the concepts of pulling down remote data and formatting it.
What do you hope readers take away from the book?
I think we get better with practice. If you are playing piano and you only go to your lessons, and you never practice in between, you won't be as good as you could be. And I think that is the same with writing code. I think if you go through a degree program and only do the work that's assigned, you won't get as much experience. And I believe that the more languages you explore, the better you'll get at solving problems. So I hope that by reading this book, people will be inspired to practice with the language they know, or even to try a new language.
Editorial Reviews
About the Author
Product details
- Publisher : Pragmatic Bookshelf; 1st edition (October 13, 2015)
- Language : English
- Paperback : 120 pages
- ISBN-10 : 1680501224
- ISBN-13 : 978-1680501223
- Item Weight : 10.1 ounces
- Dimensions : 6 x 0.25 x 9 inches
- Best Sellers Rank: #785,599 in Books (See Top 100 in Books)
- #997 in Software Development (Books)
- #1,010 in Microsoft Programming (Books)
- #2,500 in Programming Languages (Books)
- Customer Reviews:
Important information
To report an issue with this product or seller, click here.
About the author

Brian Hogan is a web developer, editor, and author of over 9 technical books, including Exercises For Programmers and tmux 2: Productive Mouse-Driven Development. He currently works at DigitalOcean, where he helps people learn how to deploy applications to the cloud. When he's not working, he's hacking on code, composing music, or spending time with family and friends.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I recommend this book. It's pricey for what it is length-wise but still worth it.
This book would be excellent for a freshman CS student to work on in or out of the classroom, as a bit of muscle memory for later coding practices, but I would not recommend it for anyone who is looking to improve already passable coding.
For your convenience, here's a brief breakdown by chapter titles:
1. Turning Problems into Code (brief intro, no exercises)
2. Input, Processing, and Output (6 exercises)
3. Calculations (7 exercises)
4. Making Decisions (mostly about control statements, 10 exercises)
5. Functions (4 exercises)
6. Repetition (loops, 5 exercises)
7. Data Structures (arrays/lists/maps, 8 exercises)
8. Working with Files (file i/o, 6 exercises)
9. Working with External Services (interacting with web services, 6 exercises)
10. Full Programs (5 exercises)
The vast majority of the exercises here are dedicated to topics that should be covered by any "introduction to programming" class or free online language tutorials. The exercises ramp up on difficulty at an absurdly slow pace - for example, the classic "Guess the Number" game doesn't make an appearance until more than halfway through the book. And in the spirits of "practice makes permanent", the book devotes TEN exercises on just writing if-else statements. Seriously?!
Even the later exercises lack variety. Most of the exercises in the "Full Programs" chapter are simple applications that deal with some external data store. Instead of a taking a broad look at all the various problems that can be solved through programming, the book just stays within a very limited comfort zone.
Plenty of topics were omitted in this book, but really should have been included. In fact, these topics are what truly demonstrates the differences between programming languages and their design philosophies. For example:
- Inheritance vs composition (ex: Java and Python are both OO languages but handle this completely differently)
- Multi-threading and concurrence (ex: Ruby and Go have very elegant syntax for this)
- Common design patterns (ex: implement a singleton in the language of your choice)
- Interprocess Communication (ex: pipes in C/C++)
- More advanced algorithms and data structures (ex: implement BFS or DFS)
...and the list goes on.
In short, only get this book if you are just learning to write code, or have been out of practice for too long and need a refresher. Experienced engineers looking for a challenge should look elsewhere.








