Anyone can learn to write code - but not everyone can get very far. If you're not sure if you're up to the challenge, here are four qualities that will make or break your attempt to learn, whatever your age or background.
Learning to code is a bit like learning to play music. Pick an instrument you like. Sound terrible. Practice diligently, and you might eventually sound good. But most people give up. No matter how much you want to become a rock legend, if you don't enjoy making sounds along the way, you won't stick with it.
Don’t force yourself to learn just because someone said it’ll get you a better job. Learning something you don’t enjoy or don’t really want to learn takes far more effort and gets a fraction of the results. Learn something you want to learn. First Aid. Photoshop. Sign Language.
If you want to learn code, it can be immensely rewarding, even at the 'noob' stage. There are oodles of free resources online, or paid courses if you'd rather structure and guidance. You don’t need to be great at maths or have a young, spongy brain.
But you do need certain qualities, if you are going to persevere past "Twinkle Twinkle".
Do you have the patience to work through problems?
If you aren’t capable of sticking with an unresponsive printer without getting someone to sit in your chair and sort if for you, you will probably never get far in code. You don’t need specific knowledge, but you do need to have sat on the floor weeping onto an inscrutable TV manual for a few hours at least once.
If you yelled at the TV while you worked, that’s OK. Stubbornness is the outspoken cousin of patience.

Do you get a kick out of making things from scratch?
Your first projects in code will look shoddy. Your first website will be 'hello world' in black font on a white screen. Your first computer game might be a flat circle that moves around the screen.
But YOU made it. If you feel the difference between making your own fire and using firelighters, or if you’d be proud to make your own pastry, even if it’s not as good, at the start, as the shop-bought stuff, then your first coding attempts will feel good enough to keep going.
If you’re impatient for your hand-written site to look better than WordPress, well, it won’t... for a while.
Are you creative and logical?
People sometimes define themselves as left-brained or right-brained. The lefties, proudly grounded in logic and reason, not wasting time on silly, intangible emotion! The righties, shaking their heads at those poor souls, unmoved by nuance and art. Ah! Those fools, so rational, but so wrong!
It might have been all right, twenty years ago, to imagine us divided that way. Jobs were different, the world was different. Most of us now need to be a bit of both.
Computers are logic machines, but we are their creators.

You don’t need strong maths to write code. If you went to primary school, your maths will get you far. You just need to be able to imagine X and Y are numbers, and be able to agree that if some men are tall and some men are doctors, some doctors are not necessarily tall.
You do need to be creative. Not artistically talented, but some deviation from the Lego box-lid design would be a good start. Creativity lets you learn far more than your teachers or tutorials teach you.
It helps you find another solution when something just won’t work, and you don’t know why.
And it gives you - in a world where anyone can make a good looking website or app with a few clicks - a really good reason to learn to write your own.
Coding can take many forms - you can be a skilled pianist and a lousy drummer.
If C++ looked scary ten years ago, try Python. If you took an EdX course on Javascript and it was too hard, try P5.js. If you are patient, willing to work through the bottom of the learning curve, and can think creatively and logically, you CAN learn to code.
You just need to find your instrument.