Knowing which programming language will best meet your needs can be daunting for new developers.
To shed light on this question, developer hubs such as Stack Overflow and GitHub release data on the most popular languages on their platforms.
Below are the programming languages that have topped the biggest developer surveys / round-ups in 2018.
Here’s what you need to know about each language, the jobs that require them and how to get started learning.
Typical jobs: Web developer, full-stack developer, front-end developer.
Tutorial for getting started: The official Mozilla tutorial.
What is it used for? Java is the workhorse of modern enterprise, having been the language of choice for writing server-side business software for more than decade. Beyond business, Java is also an official language used for developing Android apps, and is also used for games and web apps.
Typical jobs: Software engineers, software architects and DevOps engineers.
Tutorial for getting started: The official Oracle tutorial.
Alternate language: Kotlin, an official Android programming language that combines modern language features with 100% Java interoperability, and whose popularity is exploding.
SEE: IT Hiring Kit: Programmer (Tech Pro Research)
What is it used for? The current machine-learning boom has fuelled a sharp uptick in the number of developers learning Python. Outside of the language’s use in big-data analytics, Python’s versatility is evident in its range of uses, from web and desktop apps to orchestrating system operations.
Python code is relatively easy to read and understand, supports multiple programming paradigms, has a wide range of software libraries that can be dropped into code, and can be scaled to large applications.
Jacqueline Kazil, board director of the Python Software Foundation (PSF), predicted Python’s popularity will continue to grow, alongside demand for machine learning, due to the language’s accessibility and usefulness.
Typical jobs: Data engineer, full-stack developers, software engineers.
Tutorial for getting started: The official tutorial for learning Python.
Alternate languages: R for data science, Ruby for DevOps
What is it used for? A longstanding and oft-criticized language, widely used across the web to help serve web pages and apps.
Despite garnering harsh criticism for shortcomings in its design, PHP has survived for decades, and still underpins popular CMS systems such as WordPress, as well as still being used by major sites such as Google and Facebook. Like Java, PHP’s widespread nature means demand for developers is unlikely to go away.
Typical jobs: Web developer, WordPress PHP developer
Tutorial for getting started: PHP The Right Way
What is it used for? Microsoft’s object-oriented language has the benefit of being well-documented, relatively easy to learn, with a lot of useful software libraries to avoid developers reinventing the wheel.
The language, created in 2000 as a rival to Java, runs on Microsoft’s .NET framework and is popular for building Windows desktop applications, as well as web and, more recently, mobile apps. Its uses continue to grow as Xamarin tools enable C# to be used to write apps for Android, iOS and other mobile devices.
Typical jobs: Full-stack developer, .NET developer, web developer.
Tutorial for getting started: This Microsoft course on C# fundamentals.
What is it used for? C++ is a favorite for games and complex business applications, largely due to being able to run extremely efficiently and offering precise control over memory use.
Its ability to squeeze the best performance from systems means it’s a popular choice for software running on microcontroller boards, as well as for low-level software on PCs, such as operating systems and hardware drivers. The downside is that C++ can be difficult to learn due to the complexity of the language.
Typical jobs: Embedded engineer, games engine software engineer, system software developer.
Tutorial for getting started: The Learn C++ site.
Alternate language: Although still a work in progress, Mozilla is aiming to give the Rust programming language similar performance to C++, while adding fine control over memory management.