Focus on your craft, one time, before it's all over,

You've died, you've squandered it.

You fuckin' robots!

- Tenacious D

Intro

I discovered the idea of craft early in my programming career. I was a terrible programmer and, out of frustration, started to read everything I could.

One book that stood out was The Pragmatic Programmer by David Thomas, where I first encountered the idea of programming as a craft. This resonated with me, partly because it seemed romantic to connect programming with the arts, but also because it emphasized the importance of continual self-improvement.

In a job, you do the work and leave, but a craft is a tradition, something greater you can be a part of, and something that you can internalize.

It is not just a set of tasks; it can change you.

A job is something you do; craft is a connection.

Later in my career, I've spent a lot of time contemplating how to share what I've learned. Being focused on your craft can be motivating, but reading a stack of books and just trying things isn't a comprehensive plan. Can we do better?

So what is craft anyway?

I think a key part is the creation of something. Before there was nothing then after there was something and you were the reason that happened. While that is a key part of it, that is not enough.

If you read online how to make a paper airplane, does that mean you are a craftsperson? Prolly not.

It is not about following steps, it is about working in a domain where past a certain point, there are no standard steps.

After that, I think a craft has two other dimensions.

In your craft, you can produce bigger and better things, maybe things no one has ever seen. You can improve on how you improve. The meta improve. Not only can you improve on the scale of the output but the manner in which you produce that work. You can capture more and more of your domain.

Say as a woodworker in the early days of crafting, you learn to build a set of shelves. It may take you a long time and the quality sucks. As you get better the quality improves but you also get better at producing those shelves. It takes you half the time it did before. Then as you get better you realize that basic shelves are boring, a shelving system where shelves can be moved around would be cool.

That to me is the essence of what makes a craft.

It is a domain where not only do you produce something but there is space to explore, create, and improve not only in the output of the work but also in how you do it. There is depth in those dimensions.

The craft checklist:

  • Create something.
  • There is huge range of output, from the ham sandwhich to the cronut.
  • You can improve how you create it.
  • There is self expression throughout.

What to focus on?

For a while, I ran a programming bootcamp and started thinking about what a intermediate course would look like.

In programming, there are new languages and technologies every day. What should you focus on? This for me is the real goal of having some type of framework for a craft. How to evaluate where you spend your time to improve.

The questions of what you should focus on when trying to get better then fall into two categories.

Does learning or trying this allow you to do bigger or better things? Or solve bigger problems? Sure you can cook a meal, can you cook for 10,50, 100 people?

Does the learning or task improve how well you can execute? Can you improve on what is blocking you from accomplishing bigger things?