You know what the code needs to do, in that ugly moment. You can see it in your mind… And it’s just… NOT… doing it. You wrote a loop, and it’s wrong, and you know it’s wrong. You can explain the right code. You just can’t write the right code.
That blinking cursor is mocking you.
What doesn’t fix that problem? Learning more algorithms. Or reading more blog posts. Or more books. Even if you learn all the math and computer science, there’s a specific technique to writing code, and all the study in the world doesn’t give it to you.
What does? Practice.
The right kind of practice. Conscious, mindful practice done well.
When everything works, you can just write out the loop. It’s straightforward. You pick up a problem and twenty minutes later, you write a solution and it works.
When you’re really good, you can just predictably write the code. You don’t wait for inspiration. You just do it.
When a problem comes up at work and a prototype would show the right answer? You can just write one. Need to verify a design choice or test out a data architecture? Boom, do it.
How do you get that good? The right kind of practice.
What’s the right kind of practice? That’s what this book is about.
Already convinced? You can buy it on Gumroad. Full refund if you don’t like it.Buy the Book on Gumroad
Yeah, you do. Me too. And they require somebody to have worked them out in advance. But they really only work once for each exercise, so you constantly need new ones. And you can’t tell in advance if the one you’ve found is any good. You hope you’re getting Sandi Metz’s “99 Bottles of OOP,” but usually you’re getting the “Coding Challenge of the Week” to do some little math problem. There’s a reason 99 Bottles costs money - I can’t name a second set of exercises that good. Can you?
You need practice that you can just do right now without hoping Google will be your tutor.
Exercises are fine. But the magic happens when you stop doing somebody else’s exercise and you do the things you care about, that give you the skills you want. That’s the whole purpose.
Yeah, you do. I do too. And your coworkers argue constantly about what project to do, and what language or tool to use for it.
That’s because the kind of work the business wants is different from the kind of work that makes you better, faster. And the kind of work you need is different from the kind of work that other developers need.
If your job was going to give you the right practice, you’d have to win those arguments. You would have to get good at politics, to win those arguments, to get the kind of practice you need… And you’ll always worry that you’re doing worse work for the business because you’re prioritising your learning over their money.
I don’t want to spend my time at work winning at politics. Do you?
There’s a way around that.
Heck, if you tell your employer you’re buying this book to get better at coding, they will probably be thrilled to pay for it. Do you know how much it costs them when you get stuck for a couple of days? I sell a lot of books that employers cheerfully pay for. Businesses like it when their employees get better at coding.
I’ve written blog posts and spoken at RubyConf on this topic. The short version is that there are some excellent exercises I’ve adapted from non-computer disciplines. They’re not common for software yet, but they really should be - I hope in a few years they’ll be common.
The book introduces a type of programming exercise that doesn’t require another coder to set it up for you. I call my version a “Coding Study.” It can be used with any computer language or library you like. It works great alone or pairing. There are simple steps to start a coding exercise on any topic. I also give guidelines, examples and advice so you can learn even more rapidly.
Then you have to practice a lot. But you’ll learn faster than you could without coding studies. The book can only tell you how to practice.
Don’t buy the book if you’re not planning to do the exercises.
If you do the exercises and you don’t improve rapidly, you should ask for a full refund. I sell through Gumroad, which makes refunds quite easy, and I’m happy to do it. If you don’t improve, I don’t want your money.
If you can write basic code in a language of your choice, the book isn’t too advanced for you. It’s not likely to be too simple for you — I use this technique with great success and I’ve been a professional programmer for over 20 years.
The code samples are in Ruby. If looking at Ruby makes you itch, the book may not be right for you. The Ruby code is not particularly complicated.
I assume you want to get better at the skill of coding. This isn’t guaranteed to get you a job, teach you algorithm design or help you with interviewing. Those are different skills. Being better at coding may help your career — or it may not. I get better at coding because I love it, and I advance in my career even though sometimes I hate it. They’re different.
More or less, yeah. The RubyConf talk is recorded. Many explanatory blog posts are free. I always do that — you can get the complete code for my previous book on GitHub, even though the full book costs money. I give away a lot of free material, and it’s good. There are no deep secrets that I keep back only behind a paywall.
If you just want the magical secret from the book, it’s not hard to find. You can get a lot of it just by reading this page.
(If you just want the magical secret from the book, that means you’re not planning to do the exercises. If that’s true, don’t buy the book.)
What you get by paying money is this:
None of this is magic. None of it is rocket science. All of it is convenience or commitment, which you could get by just doing more work or having more discipline. Because you’re here, you don’t think that has been enough so far. It isn’t enough for me personally - I pay for books and classes regularly so I can learn faster.
If you believe that paying for the book is robbery when you could just spend hours combing through blog posts (mine and others,) taking notes and collecting examples… You may not be interested in buying this book. Or most other books.
If you believe you should do all of that on work time, please keep in mind what your time costs your business. Four or five hours of your salary is usually far more than this book costs.
Here’s a current (March 2020) table of contents. This will expand as the book does. The book currently weighs in at 84 pages, but you should expect it to expand to more like 125 by the time it’s content-complete. That should be around June/July of 2020. There may be some additional time before final polish is done (e.g. editing and visual improvement.)
If you’re not going to do the exercises, please don’t buy the book. It really doesn’t work without that step.
If you do a few of the exercises, you get a little of the benefit. If you do none of the exercises, you get none of the benefit.
Understandable. There’s the RubyConf talk, of course. And I’m working on more hands-on videos.
If you really don’t like books, you could bring me in to give a workshop where you work, especially if you’re in the United Kingdom.
That’s reasonable. You could also enter your email address below, and I’ll send you sample chapters and a free email class about software technique and practice.
Besides, what are the chances that I’ll make this book more expensive after launch? I would only do that if it helped a lot of people get better at coding and it was a serious competitive advantage. Because if that happened then employers would often pay for it, and I like to charge them more than random coders.
This book isn’t finished. Which means you get more of my time and attention with every comment or issue you have with it. It also means you’re getting a rare advantage. Most developers don’t do this — yet.
All updates are free, naturally. Full refund for any reason or no reason.Buy the Book on Gumroad