Without Software Technique,
Nothing Works

Figure at a keyboard, typing and learning
Without the right practice the computer does what you tell it to, not what you want it to.

You know what the code needs to do, in that ugly moment. You can see it in your mind… And it’s justNOTdoing 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

But I Already Do Coding Exercises…

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.

But I Practice at Work…

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 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 copies of my other book that the business just pays for.

But How Does It Work?

I’ve written blog posts and spoken at RubyConf on this topic (as of Nov 18th, anyway!) 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. I give a simple set of steps to start doing a coding exercise on any topic you like. I also give guidelines, examples and advice so you can learn the fastest from your practice.

Then you have to practice a lot. But you’ll learn faster than you could without coding studies. I have some recommendations about how to do that — but of course, they only work if you do the work.

Don’t buy the book if you’re not planning to do the exercises.

What If It Doesn’t Work? What If It’s Not Right for Me?

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.

Can’t I Get The Same Thing From You For Free?

More or less, yeah. The RubyConf talk is recorded. The blog posts are free. I always do that — you can get the code for my previous book on GitHub, though the full book costs money. I give away a lot of free material, and it’s good. There are no huge secrets that I keep back purely 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:

  • A lot about why to do everything - so you can mix and match, or fit it to your situation
  • Simple, step-by-step instructions and good examples
  • Everything in one place without having to click around and put it together for yourself
  • Save a bunch of time
  • Plans about how to build practice on practice into a coherent program
  • You paid, so you feel like you have to do the exercises - and the book doesn’t work unless you do them

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.

The Book

The book “Mastering Software Technique” is a practical how-to of how to improve your software-writing skill by doing software exercises.

It’ll tell you how to plan the exercises, what problems can happen and how to fix them. No rule is unbreakable, but every rule has an explanation of why it’s there.

If you’re not going to do the exercises, please don’t buy the book. It really doesn’t work without that step.

Not Sure?

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.

Sign Up for an Email Class and Free Chapters.
* indicates required

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