Why I’m NOT learning to code

All around the world people are learning to code in record numbers.

The mayor of New York is taking time away from running his city to learn to code. There’s a new code academy springing up every week. Coders are the new rockstars.

Code is basically everywhere, smeared over everything we do like an invisible icing on the cake of life.

All this is of course very understandable. Coders make lots of money at the moment, and software is eating the world. But I think its shortsighted and incorrect to assign so much value to the actual coding.

At best, we’re going to end up with a lot more bad code. At worst, we’re running the risk of devaluing the other disciplines that are vital to creating great digital products and services.

As I argue below, if you really care about using code to make things happen and you don't already code, you're probably better off doing something that makes great coders want to work with you.

Before I get to that bit, lets just take a moment to reflect on why so many people want to learn to code right now.

Why do so many people want to learn to code?

Some people are learning to code to make money. Its a very rational decision to make when devs with a few months experience can earn $100k+, and the odd one bags a billion.

But other people, like Mayor Bloomberg, are presumably doing it for another reason - which I'd argue is something to do with power.

Clearly, the internet is kind of a big deal. Every single thing I do is in some way mediated by software these days. This video I saw the other day via the Made by Many blog made me realise how bad it's getting.

I think a lot of people I meet who say they are ‘learning to code’ are really just reacting to this epic shift in power. They are not actually learning to code but rather they are trying to learn ‘what is this code stuff and why is it so powerful?’, and, perhaps more generally ‘how the hell do these internetz actually work’?

I’m lucky in this respect because I do understand code. Sort of. I did some web design back in the day, and I’ve spent a lot of time with coders in the past few years, looking at the results of their code and talking to them about it. So I don’t need Internet 101.

Digital power ≠ coding

I think what the people looking for code power really want is to not be confused by code, and to be able to use the power of code to get what they want. But I think learning to code yourself is a very inefficient way of doing this.

If you want to make use of the power of code, and you aren't already a coder, the best thing you can do in my opinion is to find some people who are really good at coding, and make yourself invaluable to them.

Great coders love coding

Once you start hanging out with coders your realise there’s a lot of stuff they can’t or don’t like doing. If you need evidence for this read this quote from the coders-coder Joel Spolsky.

“A programmer is most productive with a quiet private office, a great computer, unlimited beverages, an ambient temperature between 68 and 72 degrees (F), no glare on the screen, a chair that’s so comfortable you don’t feel it, an administrator that brings them their mail and orders manuals and books, a system administrator who makes the Internet as available as oxygen, a tester to find the bugs they just can’t see, a graphic designer to make their screens beautiful, a team of marketing people to make the masses want their products, a team of sales people to make sure the masses can get these products, some patient tech support saints who help customers get the product working and help the programmers understand what problems are generating the tech support calls, and about a dozen other support and administrative functions...” (Source)

I take away two main things from this. First, Joel's office must be really weird. I imagine these programmers looking like Comic Book Guy plugged into a series of life support systems surrounded by whispering technicians in lab coats.

Second, coders like coding more than anything else in the world. They hate to be distracted by other stuff. Which in my experience often includes even deciding what to code in the first place.

If you are really interested in code power, once you figure out that great coders really like coding more than power, its pretty simple what you need to do next - find useful of things for them to code that you care about and start filling in the bits round the outside.

So if you want code power but can't code, here's three much more useful things you could do instead of learning to code:

(Bonus Hygiene Thing To Do First)

Don’t put your foot in your mouth. Get an internet 101 class from a good coder. This is obvious. If you don’t know how the internet works go and watch this, and then come to Stef’s class on hacking at Makeshift.

Once you've done this, you should:

1. Get good at making a great environment for code.

This is Joel’s strategy, and to an extent ours at Makeshift and is the base level way you can get code power. Coders love to concentrate on coding. What can you do to create a work environment where they get to do this all the time?

2. Get good at coordinating the production of code.

This is more advanced, as you have to be able to talk to programmers in their language otherwise they’ll ignore you. But once you can, there’s a whole world of Product Management out there for you to get stuck into. Big software products are complex, and to make them happen coders need herding in the right direction.

3. Get good at finding people to use code.

Kind of the same as above but better. The best people for coders to collaborate with are user focused types (designers and sales guys fall into this category) who can find other people to use their code. Use is like oxygen for code, and sales-y people who get how to work coders are often the most successful teams.

Remember that Steve Jobs guy? Think about what he did at Pixar and Apple - found markets for products that coders/technical people loved working on, got good at herding them in the right direction and created a great environment for getting great coding done. So here's my final thought:

"Understanding coders is more valuable than understanding code."