If you're a programming newbie, it makes sense to start with a simple languages like Scratch or HTML. But once you've got to grips with the basics, there are a vast array of languages you can begin learning.
Are you a developer? Find the latest jobs here.
Here are programming languages that look set to play a big role within businesses over the coming years.
In Stackoverflow's 2018 survey into which programming languages earned users the highest salaries, the results showed that F# users earn roughly $74,000 a year, making them, on average, the best paid developers in the world.
OCaml is part of the metalanguage family and first appeared back in 1996. OCaml has influenced the development of several programming languages, including F# and Scala, and remains a popular language for many developers today.
Designed with a specific emphasis on expressiveness and safety, OCaml has an advanced type system that helps catch your mistakes. It is favoured by users who work in environments where speed is of the essence but single errors could potentially cost millions of pounds.
Apache Groovy is an object-oriented, agile and dynamic language that was designed as a companion, not a replacement, for Java. It provides seamless integration with all existing Java objects and libraries and has many features which are similar to Python, Ruby, Smalltalk, and Pero.
Groovy is a Java enhancer because it provides greater flexibility and even introduces special features to applications. Its Java-like syntax means it feels natural to users who are already proficient in Java and its concise, brief, direct composition allows developers to create projects faster and easier.
Ballerina was developed by open source tech provider WSO2 and released in 2017. It is a compiled, type safe, concurrent programming language. Designed to be cloud-first, its specialism is integration and parallel processing, helping to implement microservices with distributed transactions, reliable messaging, stream processing, and workflows. Ballerina has built-in support for modern web protocols and data formats.
The developer experience is designed to maintain flow, where the edit, build, debug cycle is rapid and integrated to your team's lifecycle toolchain, the Ballerina web page explains.
In StackOverflow’s annual survey for 2017, 62.5 percent of respondents reported using this language making it the most popular choice. It was also the most popular language by number of pulled requests on Github at the end of 2017.
The machine-learning boom is fuelling the rise of Python, the preferred language for many developing applications based on big data analytics. It's an adaptable, general purpose language that has uses in web applications, desktop apps and network servers too.
Other advantages? The code is neat, easy to read and used a lot by Google. But wannabe Googler or not, you'll find plenty of use for knowing this language.
Designed by Jeff Bezanson, Stefan Karpinski, Viral B. Shah and Alan Edelman in 2009, Julia is a high-level dynamic programming language ideal for fast numerical functions and analysis.
Julia can be described as a remedy to Python's speed issues. The creators based Julia on what they love about Python, its simple syntax and its ability to separate your data and clean it, but altered it so any code you create can be compiled immediately.
If you're after a speedy Python, then learn Julia.
If you're a frustrated Java user, Scala could be the answer to your prayers.
Designed by Martin Odersky in 2004, Scala is a general-purpose programming language where 'object-oriented meets functional'.
Scala runs on the JVM (Java Virtual Machine) platform, so it is compatible with the entire Java class of specifications.
And compared to Java, Scala offers cleaner, simpler, more flexible syntax.
TypeScript grew in popularity at the start of the year and has held strong as 2017 has gone on. This was reflected in its ranking from tech publisher RedMonk, gaining 17 points in its Github ranking and overlapping Erlang and Rust in the first quarter.
R offers an open source software environment for statistical computing.
First appearing in 1993, R has gained much popularity in the wake of data driven thinking and occupations, for example, data mining, statisticians and even scholars.
It provides a simple and effective resource for analysing subsets of data, although it can't compete with larger enterprises such as Hadoop.
Created by Russian software development company, JetBrains, Kotlin is in use at Pinterest, Evernote, Uber and Coursera.
Swift, revealed at Apple's WWDC conference in 2014, was intended as a replacement for the Objective-C language for OSX and iOS development and created to make development on iOS devices easier, GitHub's Joe Nash says. Apple made the language open source in December 2015 under the Apache license, helping it to gain huge popularity within the developer community.
Swift - which has similarities to more modern languages like Ruby and Python - has been enjoying “meteoric” growth since launching, according to RedMonk analyst Stephen O’Grady.
All of Apple’s education content and apps for learning to code use Swift and popular apps including Airbnb, Kayak and TripAdvisor were all created using Swift.
Created by Mozilla, Rust 1.0 was released in 2014, having been in development for a number of years.
Close in some respects to C and C++, Mozilla describes it as a “new programming language which focuses on performance, parallelisation, and memory safety”.
“By building a language from scratch and incorporating elements from modern programming language design, the creators of Rust avoid a lot of “baggage” (backward-compatibility requirements) that traditional languages have to deal with.”
RedMonk’s O’Grady recently noted: “Anecdotal evidence has been accumulating for some time that the language was piquing the interest of developers from a variety of spaces.”
"Mozilla has invested millions to build Rust with the goal of making a better and safer language for systems programming. The language itself is incredibly advanced, and developers are already using Rust to create a wide range of new software applications, such as game engines, operating systems, file systems, browser components and simulation engines for virtual reality," adds Joe Nash, program manager at GitHub.
This open source language is viewed as faster and easier to use than more established languages such as Java and C, from which it is derived.
It is used by a number of organisations, from the BBC to SoundCloud, and Facebook to the UK government award-winning GOV.UK site. It is also used by enterprise software startup du jour, Docker.
“Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language,” its creators say.
"Go is becoming very popular for distributed web applications. This is a great language for modern systems development and is discussed a lot in line with the containers movement," GitHub's Joe Nash adds.
Read next: How to learn Go.
Haskell calls itself an 'advanced purely-functional programming language'. Its first specifications were published in 1990. It features a type system with type inference and 'lazy evaluation'. It is mainly used within academia but there are some examples of it being used in industry, for example, projects within AT&T, BAE Systems, Facebook and even Google.
In 2016 a group started compiling the 2020 version of the language.
Clojure, launched in 2009, is a dialect of the Lisp programming language. It is a general-purpose language which emphasises functional programming. It treats code as data and has a macro system, like other 'Lisps'.
It is successfully used in industry by firms like Walmart, Puppet Labs and various big software firms.