When you write software, you need to be at the top of your game. Great programmers practice to keep their skills sharp. Get sharp and stay sharp with more than fifty practice exercises rooted in real-world scenarios. If you’re a new programmer, these challenges will help you learn what you need to break into the field, and if you’re a seasoned pro, you can use these exercises to learn that hot new language for your next gig.
Exercises for Programmers: 57 Challenges to Develop Your Coding Skills
by Brian P. Hogan
Exercises for Programmers
57 Challenges to Develop Your Coding Skills
by Brian P. Hogan
If you’re looking to pick up a new programming language, you should
also pick up this book. You’ll learn how to solve problems from first
principles, developing a stronger foundation to build on top of. I learned
a lot. I expect you will too.
- Stephen Orr
Senior software engineer, Impact Applications
A wonderful resource for learning new languages using the most effective
method: practice. Because the book is language agnostic, it has almost
endless replay value, which is a rare quality among technical books.
- Jason Pike
Software developer, theswiftlearner.com
This is a wonderful book for anyone who wants to start fresh in a new
language. Programmers new and old will greatly benefit from this repository
of exercises. This book offers comfort for beginners and challenges
for advanced programmers.
- Alex Henry
Software engineer quality assurance, JAMF Software
About this Title
Release: P1.0 (2015-09-15)
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.
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.
What You Need
You need access to a computer, a programming language reference, and the programming language you want to use.
Contents & Extracts
Brian P. Hogan is a developer, author, and teacher who loves building things for the web.
He teaches introductory programming classes at the college level and has an interest
in performance-based learning. He is the author of Automate with Grunt, tmux, and HTML5 and CSS3, and is the co-author of Web Development Recipes.