A lot of people ask us – is learning how to code hard?

The rise of disruptive technology means that tech luminaries and governments want everyone to learn to code. This has given rise to the myth that learning to code is easy. After all, if kids in primary school can do it, it should be child’s play, right?

But grab someone who’s never seen code before and show them the guts of a website, and they’ll swear it’s one of the most complex things they’ve ever seen. It would look and feel completely unnatural to someone who’s never experienced it before, because the end product is so far removed the from lines of code themselves.

The truth is – coding isn’t easy. That’s why you have developers, engineers and programmers who dedicate their entire lives to the art of code. While learning the basic syntax and structure might be easy, writing good code takes a lot of practice.

You’ll hear a lot of people (including ourselves) say, ‘learning how to code is like learning a brand new language’. But coding has its own peculiarities that make it especially difficult to understand.

1. It’s incredibly finicky and fragile

Anyone with any experience with coding will tell you coding takes a lot of patience to work with, especially because of how easy it is to break things. In everyday language, if you missed out on one punctuation mark, the worst that could happen is you might get some confused looks. But if you made the same mistake in coding, at best, things don’t look quite right, at worst, you could ‘break’ an entire document.
Don’t believe it could be that serious? When we were rebuilding a few things on our own website, the widget we wanted to add just didn’t work, and we spent all afternoon pouring over just a few lines of code. It turns out we were using the wrong kind of quotation marks! Who even knew you could type more than one kind of quotation mark??

2. You don’t get immediate feedback after you do something wrong

It’s very often we use mistakes as a learning tool. If we say something wrong in real life, usually someone will correct us.

With coding, mistakes sometimes aren’t all that obvious at first. And when something doesn’t work, it isn’t because of something wrong we just did. We might have made a typo way earlier in the document, something completely unrelated to what we were working on, and only now are problems becoming visible. This often means trekking back through lines and lines of code, figuring out where you might have gone wrong. 

3. You’ll need to remember a lot of very specific things

Like learning a new language, you’ll need to memorise a lot of new vocabularies. But with coding, not everyone agrees with each other on how to best say things. People create shortcuts, frameworks, and other all other kinds of new rules to make the language ‘easier’ to use.

Different companies or developers will often choose different ways of doing things, which means you’ll need to quickly adapt. Knowing what tools to use at the right time, or to adapt existing systems to more efficient ways of doing things will only come with time and experience.

4. The language is always changing.

Languages get updated every now and then - after all, nearly 500 new words and phrases have been added to the Oxford English dictionary in this quarter (2017) alone! But if you become fluent in a language, and you regularly use it, chances are you won’t need to learn huge chunks of vocabulary again.

But coding moves faster. Web development regularly undergoes fundamental changes you need to keep pace with. With some frameworks and languages getting outdated, to technological, design and user experience trends (such as mobile responsiveness) forcing developers to adapt, you can never rest on your laurels.

In coding, you’ll spend a lot of time troubleshooting problems and learning new things. It’s easy to get disheartened if you feel like you’re spending a lot of times ‘fixing mistakes’ and feeling like a newbie, but these are things even professional developers experience.

So what makes coding ‘easier’? Do you ever get off the hamster wheel of learning? What should you do if you’re just starting, and it looks like you’re looking at an insurmountable wall of code?

Just make sure you keep these 5 things in mind!

1. Be patient. It takes time for things to ‘click’

As we mentioned earlier, coding can seem incredibly unnatural to someone, especially if you’ve never seen it before. In fact, even seasoned developers looking at a new framework or language might still elicit a few ‘wtf!?’ responses.

Coding is less about memorising huge chunks of text (like they teach you at school), but more about logic. Computers all speak a certain way; you just need the have the lightbulb ‘aha!’ moment when you realise how everything works together. This often just takes time and patience.

2. Have a goal in mind

One of the fastest ways to lose motivation is learning something for the sake of learning. When it comes to learning how to code, it’s important to always set yourself a goal, or at least, a concrete reason for learning code. Because of the sheer amount of information, languages and frameworks out there, it’s easy to get overwhelmed and lost.

Understand the importance of learning how to code, but not sure if you have a concrete reason in mind? Try setting yourself small projects that interest you. That way, you’re working towards something tangible, and you’re able to use your new skills in a practical manner.

3. Break problems down into their simplest forms

Some problems or projects can seem initially impossible to work out. But the great thing about coding is it often can work like Lego bricks - you can pull it all apart into smaller, easier-to-understand pieces.

Take Twitter for example. Yes, building a platform like that could be incredibly hard. But can you put 140 characters into HTML, and make it look alright? That’s not so hard. Can you make it all display like a feed? Or allow someone to log in, and save all your members into a database? Maybe not right now, but if that’s what you wanted to do, get familiar with Ruby for your front-end and Java for your databases, and you’re on your way! 

All digital products are made up of little digital blocks, so if you can break all your problems down into these little chunks, things don’t seem so impossible anymore.

4. Learn this mantra: patience and time

While everyone wants to learn something fast (heck, we’ve even written about how to learn to code fast!), learning coding just takes time, no matter how experienced you get. Time and a lot of patience.

Don’t be worried if you see others speeding off ahead, or other professionals making it look easy. Everyone learns at a different pace. The key in the beginning, is to get into the right habits and embrace your problem-solving ability. There’s no point learning fast if that means you develop some shocking habits along the way.

5. Make sure you learn from someone

Always make sure you’re learning from someone. There are a lot of resources out there now that allow you to learn from the comfort of your home. But it’s always important to have someone close by to answer your questions and keep you sane. You’ll find your motivation will be a lot higher, and your development rate a lot faster if you buddy up with a mentor who can keep your development on track. That’s why at The Institute of Code we maintain a 4:1 mentor ratio!

Coding is not meant to be easy but nor is learning anything else worth learning! You’ll get frustrated, feel lost and get confused. But that’s all part of the process.