Thinking about learning to code?
Blog posts about learning to code often describe the possible financial rewards: how this knowledge will earn you a better salary, a promotion, or even a new job.
There is truth in these claims. At SuperHi, I've taught people who've gone on to get pay rises, improved careers and higher freelance rates.
A likely skills shortage in the next decade means a lot of programming jobs won't be filled. Some estimates suggest that there will be one million vacancies in technology by 2020 in the United States alone. At the same time, more and more jobs are set to be automated. Driverless cars, for instance, will likely become mainstream over the next two decades, threatening to put 3 million Americans out of work.
So there's a problem. Artificial Intelligence could lead to mass unemployment at the same time as tech jobs can't be filled due to the lack of a skilled workforce.
Learn to code and you'll be on the right side of this shift, the articles say. Learn to code so you won't be left behind. Often it can work. We've seen people who've paid five-figure sums to go on boot camp-style courses because they're worried about their future.
But I'd like to offer a different approach.
Don't become a coder. Don't learn to code to be a coder.
I know what you’re thinking. Why is the founder of a code school telling me not to code?
I'm not. I'm saying you should learn to code to improve and expand the skill set you have now. If you're a designer for instance, learning to code will give you a better understanding of how to design for the web. I think you should keep being a designer, but a designer who knows how to use media queries in CSS to change a layout for mobile screens. If you're a business owner, learn to code so you can make fixes and changes on your website without needing to hire outside help.
Use code to be creative. Whether you're designing the next Facebook or your new portfolio, all you're doing is writing instructions to a computer. We're telling a fast but dumb machine how to make a site or an app do what we want.
Learning to code won’t immediately turn you into the next Mark Zuckerberg or Bill Gates. What it will do is help you use your creativity and your motivation to turn your ideas into something real.
Which leads me to my next point.
There's a secret in our industry. Learning to code is a lot easier than you think.
I learned to code in 2000. I was 16 and I was building websites using a tool called Microsoft Publisher, which is similar to InDesign or Quark. It's aimed primarily at designing booklets and posters but it had a website maker too.
At the time, it had a set number of templates which you could customize to a limited extent. You could change a few images and fonts and that was it. But I wanted to do more than make a few minor changes. I wanted to mess up the site and make it look completely different.
A lot of students still have the same problems even in 2017. They don't want to stick with a Wordpress template or a SquareSpace theme. They want to make their own thing and not just tweak someone else's work.
Over a few months and years of struggling with the basics, I slowly became better at coding. I was definitely not an expert but I could make something that looked decent.
I learned to code essentially for free. But it took months and years of getting stuck with problems and no one to help.
The Internet is a completely different place when I learned to code. There's a ton of resources that can help you learn for free. But the Internet has also become a lot more complex. Sites from the early 2000s look very different to more recent offerings.
Coding has become professional and the tools used to make websites and apps have increased in complexity. This is a massive problem for beginner coders. Professionals rarely consider whether beginners can use the tools they create.
While plenty of coders do care about beginners, a vast number are more snobbish. They see beginners as a threat. More coders means more supply and less demand, right? They use the No True Scotsman argument to dismiss new entrants. "No true coder would ever do X, Y or Z". The truth is a lot cloudier. It does take a long time to get really, really good at programming. As with any skill or technique, it's the last five or 10 percent of finessing that's often the hardest to do.
However, 90 percent of what most coders do every day can be learned quickly. When you break down a lot of code, it's doing the same four things: listing items, adding, editing and deleting.
Take my Twitter feed for example, essentially just a list of posts. When I tweet, I'm adding a new post to my list. I can't even edit tweets. Making a new micro-blogging site would be easy enough and there are many startups trying to be the next Twitter. Does that mean junior coders would find it easy to work at Twitter? No, because of the scale and complexity of getting billions of tweets to millions of users. Should that put you off trying to build the next Twitter? Of course not.
So how do you get good at coding?
Practice. Lots and lots of it.
Keep making things. Keep adding features to your projects. Keep breaking things. Keep going wrong and fixing your mistakes.