A lot has been, and will be, said about practicing the craft of programming. I buy into a lot of it. It is important to sharpen your skills. It is important to get better through repetition. But it’s not enough. You aren’t finishing anything. You are just writing code.
Maybe your job is just writing code. Mine is a little different. It involves finishing the process. Designing the system, writing the code, and deploying it for people to use. Writing code is a very small part of it. The most important part, shipping what I have written, isn’t mentioned with practicing.
I think if you don’t finish, you haven’t really accomplished anything. I have directories full of practice to prove it. I didn’t finish any of them.
I know why I don’t finish. It’s that one negative comment. I can remember writing a RSS feed aggregator once, just for practice. Node was kinda new and I had heard about Express js and wanted to play. I had every intention of deploying what I was writing. But one negative comment and I felt stupid and shelved it.
So here it is. Instead of writing a kata or fumbling around a language you will never use. Just build something for practice. But you have to finish. If it’s not deployed, it doesn’t count.
It doesn’t matter what it is or what anyone says. it can be a word processor (I know it’s been done) a feed reader (I know it’s been done) GTD (Yep, that too). Just ship something, even if it sucks. That is how we should practice.