|Digital List Price:||$20.99|
|Print List Price:||$24.00|
|Kindle Price:|| $15.99 |
Save $8.01 (33%)
Your Memberships & Subscriptions
Follow the Author
Exercises for Programmers: 57 Challenges to Develop Your Coding Skills 1st Edition, Kindle Edition
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.
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.
From the brand
About the Author
Brian 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.--This text refers to the paperback edition.
- ASIN : B0170Q50LK
- Publisher : Pragmatic Bookshelf; 1st edition (September 4, 2015)
- Publication date : September 4, 2015
- Language : English
- File size : 735 KB
- Simultaneous device usage : Unlimited
- Text-to-Speech : Enabled
- Screen Reader : Supported
- Enhanced typesetting : Enabled
- X-Ray : Not Enabled
- Word Wise : Not Enabled
- Sticky notes : On Kindle Scribe
- Print length : 119 pages
- Best Sellers Rank: #682,444 in Kindle Store (See Top 100 in Kindle Store)
- Customer Reviews:
About the author
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
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.
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.
I recommend this book. It's pricey for what it is length-wise but still worth it.
Top reviews from other countries
I had hoped it'd be full of intriguing problems to test my prowess (or lack thereof) in concocting multiple different solutions, along the lines of code katas I've used in the past.
The problems are actually fairly simplistic though, in the main part - validate user input, convert unit systems and the like, hence my initial disappointment.
The value of the book though probably lies in the simplicity of its exercises, if you are using them to test your understanding of the syntax and idioms of a language that's new to you. So while the exercises might be trivial in your language of choice, they provide more challenge in whatever language you're just trying to learn right now.