Learn more about some common categories of programming languages to get inspired to start coding.
Programming is a skill that is becoming increasingly sought after in the job market. Having at least a basic understanding of how software functions is helpful for anyone who interacts with technology. With a background in programming, you can get a job coding, designing software, data architecture, or creating intuitive user interfaces.
But what language should you learn? You'll find a seemingly infinite number of programming languages that are free to learn and develop projects with online. With the field of technology growing exponentially each year, the internet is a great place to start when trying to explore the latest developments or discover a new skill.
Whichever language you learn, you may find it helpful to take notes or draw diagrams detailing the steps you're taking and why. It's important for programmers to be able to communicate their process to non-technical stakeholders, but taking notes can also be a great learning tool. "Turns out this often comes in handy not only for the sake of creating documentation, but often helps in solving a single task or issue where the underlying tech is challenging to understand," offers Eric Hartzog, a software engineer at Meta.
In this article, we'll explore some of the most common types of programming languages and give you some resources you can use to start learning.
While you'll find dozens of ways to classify various programming languages, they generally fall into five major categories. Keep in mind that some languages may fall under more than one type:
A procedural language follows a sequence of statements or commands in order to achieve a desired output. Each series of steps is called a procedure, and a program written in one of these languages will have one or more procedures within it. Common examples of procedural languages include:
C and C++
Java
Pascal
BASIC
specialization
Hands-on Introduction to C++ Programming. Code and run your first C++ program in minutes without installing anything!
4.6
(608 ratings)
14,295 already enrolled
BEGINNER level
Average time: 4 month(s)
Learn at your own pace
Skills you'll build:
Computer Science, Computer Programming, C++, Object-Oriented Programming (OOP), Iteration, Variables, Conditionals, vectors, Files, Strings, Functions, Recursion, Objects, Polymorphism, Inheritance
Rather than focusing on the execution of statements, functional languages focus on the output of mathematical functions and evaluations. Each function–a reusable module of code–performs a specific task and returns a result. The result will vary depending on what data you input into the function. Some popular functional programming languages include:
Scala
Erlang
Haskell
Elixir
F#
specialization
Program on a Higher Level. Write elegant functional code to analyze data that's big or small
4.7
(6,829 ratings)
67,999 already enrolled
INTERMEDIATE level
Average time: 7 month(s)
Learn at your own pace
Skills you'll build:
Scala Programming, Parallel Computing, Apache Spark, Functional Programming, Recursion, Immutable Data Types, Higher-Order Function, Laziness, Type Class, Referential Transparency, Reactive Programming, Data Structure, Data Parallelism, Parallel Algorithm, Big Data, SQL
This type of language treats a program as a group of objects composed of data and program elements, known as attributes and methods. Objects can be reused within a program or in other programs. This makes it a popular language type for complex programs, as code is easier to reuse and scale. Some common object-oriented programming (OOP) languages include:
Java
Python
PHP
C++
Ruby
specialization
Grow Your Portfolio as a Software Engineer. Learn about Object Oriented Design in four project-based courses.
4.6
(3,715 ratings)
89,904 already enrolled
BEGINNER level
Average time: 5 month(s)
Learn at your own pace
Skills you'll build:
Data Structure, Hash Table, Java Programming, Object-Oriented Programming (OOP), Algorithms, Problem Solving, String (Computer Science), Cryptography, Logic Programming, Sorting Algorithm, Trees (Data Structures), Linked List, Binary Tree
Programmers use scripting languages to automate repetitive tasks, manage dynamic web content, or support processes in larger applications. Some common scripting languages include:
PHP
Ruby
Python
bash
Perl
Node.js
course
This course provides a practical introduction to Linux and commonly used Linux / UNIX shell commands. It teaches you the basics of Bash shell scripting to ...
4.6
(641 ratings)
44,446 already enrolled
BEGINNER level
Average time: 1 month(s)
Learn at your own pace
Skills you'll build:
Shell Script, Bash (Unix Shell), Linux
Instead of telling a computer what to do, a logic programming language expresses a series of facts and rules to instruct the computer on how to make decisions. Some examples of logic languages include:
Prolog
Absys
Datalog
Alma-0
You'll find many more ways to categorize languages beyond the five listed above. Let's take a closer look at there other ways you can think about programming languages:
Front-end languages are primarily concerned with the ‘user’ aspect of the software. The front end deals with all of the text, colors, buttons, images, and navigation that the user will face when navigating your website or application. Anyone with a background in graphic design or art may be more inspired to begin learning one of the front-end languages.
Some examples of front-end programming languages include:
HTML
CSS
JavaScript
React
professional certificate
Launch your career as a front-end developer. Build job-ready skills for an in-demand career and earn a credential from Meta. No degree or prior experience required to get started.
4.7
(7,007 ratings)
116,214 already enrolled
BEGINNER level
Average time: 7 month(s)
Learn at your own pace
Skills you'll build:
Cascading Style Sheets (CSS), HTML, UI/UX design, React, JavaScript, Web Development Tools, User Interface, Front-End Web Development, HTML and CSS, Responsive Web Design, Test-Driven Development, Object-Oriented Programming (OOP), Linux, Web Development, Bash (Unix Shell), Github, Version Control, Debugging, React (Web Framework), Web Application, Application development, Unit Testing, Web Design, User Experience (UX), Accessibility, Pseudocode, Algorithms, Communication, Data Structure, Computer Science
Back-end languages deal with storage and manipulation of the server side of software. This is the part of the software that the user does not directly come into contact with but supports their experience behind the scenes. This includes data architecture, scripting, and communication between applications and underlying databases.
Anyone with experience in mathematics or engineering may find more interest in back-end development.
Some examples of back-end programming languages include:
JavaScript
PHP
Java
Python
Ruby
C#
professional certificate
Launch your career as a back-end developer. Build job-ready skills for an in-demand career and earn a credential from Meta. No degree or prior experience required to get started.
4.7
(2,389 ratings)
17,288 already enrolled
BEGINNER level
Average time: 8 month(s)
Learn at your own pace
Skills you'll build:
Cloud Hosting, Application Programming Interfaces (API), Python Programming, Computer Programming, Django (Web Framework), Linux, Web Development, Bash (Unix Shell), Github, Version Control, MySQL, Database (DBMS), database administration, Build a data model, Design a web application, Debugging, Authentication and authorization, REST APIs, Filtering and ordering, Serializers and deserializers, Cascading Style Sheets (CSS), HTML, Production environments, JavaScript, API endpoints, Pseudocode, Algorithms, Communication, Data Structure, Computer Science
A full-stack developer combines their knowledge of both front- and back-end languages, along with other technical skills and expertise, to work on any part of the development process.
professional certificate
Kickstart your career in application development. Master Cloud Native and Full Stack Development using hands-on projects involving HTML, JavaScript, Node.js, Python, Django, Containers, Microservices and more. No prior experience required.
4.5
(3,070 ratings)
18,971 already enrolled
BEGINNER level
Average time: 4 month(s)
Learn at your own pace
Skills you'll build:
Cloud Native, Devops, Iaas PaaS Saas, Hybrid Multicloud, Cloud Computing, Cascading Style Sheets (CSS), HTML, Git (Software), JavaScript, Cloud Applications, Distributed Version Control (DRCS), open source, Version Control Systems, Github, Web Development, User Interface, React (Web Framework), Front-end Development, back-end development, Server-side JavaScript, express, Computer Science, Data Science, Python Programming, Data Analysis, Pandas, Numpy, Artificial Intelligence (AI), Web Application, Application development, Flask, Django (Web Framework), Database (DBMS), SQL, Kubernetes, Docker, Containers, Openshift, Swagger, serverless, Microservices, Representational State Transfer (REST), IBM Code Engine, Node.Js
The biggest factor that differentiates high- and low-level programming languages is whether the language is meant to be easily understood by a human programmer or a computer. Low-level languages are machine-friendly, which makes them highly efficient in terms of memory usage but difficult to understand without the help of an assembler. Since they're not very people-friendly, they're also not widely used anymore. Examples include machine code and assembly languages.
High-level languages, on the other hand, are less memory efficient but much more human friendly. This makes them easier to write, understand, maintain, and debug. Most popular programming languages in use today are considered high-level languages.
The distinction between interpreted and compiled languages has to do with how they convert high-level code and make it readable by a computer. With interpreted languages, code goes through a program called an interpreter, which reads and executes the code line by line. This tends to make these languages more flexible and platform independent.
Examples of interpreted languages include:
Python
JavaScript
PHP
Ruby
Compiled languages go through a build step where the entire program is converted into machine code. This makes it faster to execute, but it also means that you have to compile or "build" the program again anytime you need to make a change.
Examples of compiled languages include:
C, C++, and C#
Rust
Erlang
Learning to program is easier now than ever. Start writing programs in Python with Python for Everybody from the University of Michigan, learn the basics of web development with HTML, CSS, and JavaScript for Web Developers from Johns Hopkins University, or prepare for a career in IT with Google IT Automation with Python.
specialization
Learn to Program and Analyze Data with Python. Develop programs to gather, clean, analyze, and visualize data.
4.8
(201,971 ratings)
1,443,178 already enrolled
BEGINNER level
Average time: 8 month(s)
Learn at your own pace
Skills you'll build:
Json, Xml, Python Programming, Database (DBMS), Python Syntax And Semantics, Basic Programming Language, Computer Programming, Data Structure, Tuple, Web Scraping, Sqlite, SQL, Data Analysis, Data Visualization (DataViz)
course
Do you realize that the only functionality of a web application that the user directly interacts with is through the web page? Implement it poorly and, to ...
4.7
(15,154 ratings)
926,905 already enrolled
Average time: 1 month(s)
Learn at your own pace
Skills you'll build:
HTML, JavaScript, Css Frameworks, Cascading Style Sheets (CSS)
professional certificate
Learn in-demand skills like Python, Git, and IT automation to advance your career
4.8
(31,567 ratings)
558,473 already enrolled
BEGINNER level
Average time: 6 month(s)
Learn at your own pace
Skills you'll build:
Using Version Control, Troubleshooting & Debugging, Python Programming, Configuration Management, Automation, Basic Python Data Structures, Fundamental Programming Concepts, Basic Python Syntax, Object-Oriented Programming (OOP), Setting up your Development Environment, Regular Expression (REGEX), Testing in Python, Automating System Administration Tasks with Python, Bash Scripting, Using Git, Version Control Systems, Interacting with GitHub, Reverting Changes, Creating Pull Requests, Improving Software Performance, Managing Scarce Resources, Advanced Troubleshooting, Understanding Errors, Finding the Root Cause of a Problem, Automation at Scale, Basic Monitoring & Alerting, Cloud Computing, Using Puppet, Serialization, Building a Solution, Creating and Translating Media Files, Interacting with Web Services
This content has been made available for informational purposes only. Learners are advised to conduct additional research to ensure that courses and other credentials pursued meet their personal, professional, and financial goals.