There are now fantastic initiatives for teaching children to code, some great online tools like Code Academy and General Assembly’s new Dash, as well as courses like Econsultancy’s own for digital professionals

Which is all great. But as someone who’s learnt a few languages, dabbled a bit and uses that knowledge on a semi-regular basis, I think there are a few questions you need to ask yourself before you endeavour to ‘learn to code’.   

Why are you learning to code? 

CodeYou probably know this already, but it will help you to express it explicitly, as ‘to feel like I’m in the Matrix’ is probably not the best reason (although it is a great bonus). 

It may help you in your working life, allowing you to do things like make edits to webpages or even build applications without the help of a developer.

Then we’ve all got the web equivalent of a novel inside us, an idea for a website or a killer app that will totally take the world by storm if only you can get it built. I know I’ve got a few! 

Or perhaps it’s simply that you would like to have a greater understanding of how some of the technology we interact with on a daily basis actually works. As I mentioned, if you’re a marketer this is invaluable.

These are all perfectly decent reasons, but knowing which applies to you will help with the next question.

What are you learning to code? 

This is the crux of why I keep putting ‘learn to code’ in quotation marks. Because whenever anyone says they want to learn to code I think, “learn to code… what?”

There are literally hundreds of programming languages. You’re obviously not going to learn all of them, partly as that would be insane, and partly as most will be of no use to you. Your answer to why you want to learn will help you work out where to start. 

So if it’s that you want to make tweaks to web pages, or build your own email template, you’ll need HTML and CSS (which is probably a good start whatever you want to do), and JavaScript will then come in handy for web interactivity.

Anything beyond that, such as backend database interaction, and you’ll need to start with PHP, potentially moving onto Python and/or Ruby. 

Want to code an app? If so, what kind, and what platform? If it’s anything Apple related, OS X or iOS based, you’ll probably need Objective-C. For Android, or Windows, you might need Java, or C++, depending on what you want to build. 

It’s important to get an understanding of how these languages interplay and what their different uses are, so you can understand how to get to what you want to achieve. Read around the topic as you start out and don’t be afraid to ask people you know for advice. 

How do you want to learn to code? 

As I mentioned, there are loads of ways to get started. When I first started, I used the W3 Schools site, which isn’t the flashiest, but it’s comprehensive, in line with web standards (W3 being the consortium for standards on the web) and gives you background as you go through. 

CodeAcademy has a great user interface and its badge system is addictive, while Dash gets you stuck in a fair bit quicker by not separating out languages into separate course as much, and gets you introduced to things like responsive design early on. 

Learning online suited me, but perhaps you learn better with a real person to guide you through. Once again, do some research into what course will suit you, based on your learning style, what languages they cover and what your aims are. 

When will you have learnt to code?

The answer to this one is easy: never. 

Which isn’t to say you won’t learn anything. Hopefully you will take to programming languages like a fish to water, find a multitude of new ways to express your creativity, build projects you can be proud of or at least just understand the function of a stylesheet. 

But learning to code is not finite. Even the most experienced of programmers and developers with years of building software and applications will tell you that they haven’t stopped learning. 

Once you’ve finished whatever course it is you choose to help you learn, go and put your newfound knowledge into practice. Build projects, share them with the world and get feedback. You’ll most likely find you learn a lot more doing that than on any ‘learn to code’ course.