It seems like everybody is learning to code these days. But why should you learn to code? We look at all the reasons for becoming a coder, and offer some advice on how to learn coding.

Read next: Complete guide to coding and programming on a Mac

Learning to code a computer is being talked about a lot at the moment. Children as young as five are being taught how to program computers, and adults are being encouraged to pick up code skills no matter what their career is. Steve Jobs said "I think everybody in this country should learn how to program a computer because it teaches you how to think."

The government is doing its bit too. Every year seven child (aged 11 to 13) in the UK is set to receive a free BBC Micro Bit. So the question is: why the sudden rush to get everybody coding? In this feature, we'll look at why there's a big push to get everybody coding, and why you should learn to code.

Want to read more about Mac coding? Learn how to code in Java on a Mac | Learn Python coding on a Mac | Learn to code using C on a Mac

Why you should learn to code: software is automating the world

Learn to code

Computers have always made things easier or have done difficult tasks more quickly than humans ever could. But there's a whole new frontier of software heading your way that combines Artificial Intelligence (AI) with Machine Learning (ML). Don't worry if you don't understand either of these things; you'll hear about them anyway.

Computers have been traditionally good at doing things humans find hard (like calculating the first 1000 prime numbers), but lousy at doing the things even babies can do (like recognise the difference between a dog and a cat). But AI and ML are changing all that, and computers are now getting good at doing both.

The net result is that there are loads of dull, repetitive, tasks like accounting and document checking that are set to be performed by computers. Some people fear change, but this is a good thing. Coders are set to take a lot of the drudgery out of life for millions of people. There is a downside, though…

Learn to code because robots are taking our jobs

Robot doing a job

We really can't overstate just how much the robot economy is going to change things. It turns out that AI and ML are set to arrive alongside a huge rise in mobile robotics. These new robots are capable of moving freely around an environment, and can perform all kinds of manual tasks.

From self-driving trucks to retail sales robots, there's no end of robots marching along, chomping away the jobs as they go. The outlook is gloomy for a lot of people, with up to 50 percent of all currently performed jobs predicted to go in the next 20 years.

Check out this BBC site to see how safe your job is.

Coding is a great way to make money

It goes without saying that coding is one of the jobs relatively safe from automation. We'll need people to program the robots for a long time yet, and people who can manage and support robotics will be highly sought after in the future.

We're starting to see this right now. Demand for coders is incredibly high, and there aren't enough programmers to keep up with demand. According to Code.org, there are 607,708 open computing jobs in the US alone, but only 42,969 students graduated in computer science.

You don't need to get a degree in computer science to get a job in programming. Laurence Bradford, a web developer, outlines the changes learning to code has made to her life. She gets better pay, works fewer hours and can say no to job offers

Learning to code makes you better at any job

Even if you have no intention of becoming a programmer, or coder, then it's still a good idea to learn how to program a computer. Learning to code teaches you all kinds of skills, that can be applied to all kinds of tasks:

  • If you ever find yourself doing the same thing over and over again, then chances are you can get a computer to do it for you. Learning how to program a computer enables you to automate repetitive tasks. You'll be amazed at how much time you save once you learn to program a computer.
  • The Steve Jobs quote about programming a computer isn't hyperbole. Learning to program a computer does teach you how to think about problems, and how to visualise complex structures. Learning how to parse data is an incredibly valuable skill.
  • Coding requires precision and learning to code boosts your attention to detail. Learning how to focus on the small stuff makes you better at any project or job.
  • Nothing boosts your problem-solving skills like learn to program a computer. There's usually no right, or wrong, way to approach any serious computer problem. Linus Torvalds famously said: "The fact is, there aren't just two sides to any issue, there's almost always a range of responses, and 'it depends' is almost always the right answer in any big question." That wisdom comes from years of solving challenging coding problems.
  • Decomposition is a valuable skill learned by programmers. In decomposition, you break a big problem down (like a program) into several smaller problems. You then solve these one at a time. Decomposition, along with other techniques like "bisection" (splitting an issue in half repeatedly till you end up with many small but simple problems) is an incredible life skill.

You get to understand how computers work. For better or worse, computers are now firmly part of everybody's life. "It just works" is something of an unofficial Apple mantra, and it's great to have computers that magically do stuff. But it is a shame to go through life and not know how computers work. Programming lifts the curtain and lets you peer behind-the-scenes. You get to learn how computers are all source code built on top of each other, each one boiling down to millions of electric switches being turned on or off.

Learning to code: online resources

Learning to code is one of the smartest moves you can make in the modern world (no matter what your age). Even a small understanding of HTML and Python will expand your horizons, both regarding work and outlook.

There are no shortage of people trying to teach you to code at the moment. Demand for coders has never been higher, and there are plenty of online resources to help you get started.

If you have absolutely no experience, then you should learn HTML and CSS before moving on to a more detailed language. Build Responsive Real World Websites with HTML5 and CSS3, Learn to Build Beautiful HTML5 and CSS3 Websites in One Month, and Learn Web Designing & HTML5/CSS3 Essentials in Four Hours.

Once you have a hand on learning HTML and CSS, then you should pick up some Python or JavaScript skills. Take a look at free courses from Codecademy. We also like courses from Udemy, The Code Club, and Coderdojo.

Following that, you should consider doing an MOOC (Massively Open Online Course). These courses can be challenging, but give you the experience of learning to program from a top-flight institution like MIT or Harvard. EDX is the place to go. We're fans of MIT's 6.00.1x and Harvard's CS50.

Learn to code: sign up for a Boot Camp

Learn to code at a boot camp

Another option that's increasingly popular is to sign up for a coding Boot Camp. Some courses are free, on others you work to cover your fees and others charge (sometimes quite a high fee).

Boot Camps are an intense coding experience, where you program with a group of other prospective developers and are coached and mentored. You need to be careful before handing over money, but they can help you move from enjoying programming to doing it for a living.

Course Report is a good place to go to find out what people think of the various programming courses around. Here are some other sites to check out