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 programming 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.
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.
Python is one of the most popular programming languages used today. Learn to program and analyze Data with Python in the University of Michigan's Python for Everybody Specialization.
specialization
Learn to Program and Analyze Data with Python. Develop programs to gather, clean, analyze, and visualize data.
4.8
(216,394 ratings)
1,812,444 already enrolled
Beginner level
Average time: 2 month(s)
Learn at your own pace
Skills you'll build:
Database Systems, Database Design, Application Programming Interface (API), Extensible Markup Language (XML), Data Collection, Data Visualization, SQL, Python Programming, Relational Databases, Network Protocols, Web Services, JSON, Data Structures, Restful API, Data Modeling, Data Processing, Programming Principles, Web Scraping, Database Management, Computer Programming, File Management, Development Environment, Data Manipulation, Data Import/Export, Data Visualization Software, Data Analysis, Exploratory Data Analysis, Unstructured Data, Algorithms, Object Oriented Programming (OOP), Software Installation, Hypertext Markup Language (HTML), TCP/IP, Data Capture, Data Access
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
C++ is a great programming language to learn if you're also interested in learning more about how computers function. While it may not be as readable as other high-level programming languages like Python, it can still be beginner-friendly. You can give it a try for free by enrolling in Codio's introductory online program, Programming in C++: A Hands-on Introduction Specialization. After a month, you'll have created and ran your first program in C++.
specialization
Hands-on Introduction to C++ Programming. Code and run your first C++ program in minutes without installing anything!
4.6
(1,108 ratings)
39,195 already enrolled
Beginner level
Average time: 1 month(s)
Learn at your own pace
Skills you'll build:
Data Import/Export, Object Oriented Design, Object Oriented Programming (OOP), C++ (Programming Language), Computer Science, File Management, Data Structures, Pseudocode, Data Validation, Programming Principles, Integrated Development Environments, Software Documentation, Maintainability, Computer Programming, Data Storage
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.6
(6,924 ratings)
75,326 already enrolled
Intermediate level
Average time: 5 month(s)
Learn at your own pace
Skills you'll build:
Apache Hadoop, Big Data, Algorithms, Object Oriented Programming (OOP), Apache Spark, Real Time Data, Distributed Computing, Software Design, Scala Programming, Visualization (Computer Graphics), Data Structures, Performance Tuning, Software Design Patterns, Data Processing, Functional Design, User Interface (UI), Data Manipulation, Programming Principles, Interactive Data Visualization, Computer Programming, Integrated Development Environments, Javascript, Java, Other Programming Languages, Data Analysis, SQL, Data Transformation, Spatial Data Analysis, Geospatial Mapping, Event-Driven Programming
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 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,965 ratings)
112,126 already enrolled
Beginner level
Average time: 6 month(s)
Learn at your own pace
Skills you'll build:
Event-Driven Programming, Unit Testing, Java Programming, Java, Algorithms, Object Oriented Programming (OOP), Software Testing, Debugging, Development Testing, Software Design, Software Engineering, Data Analysis, Cryptography, Data Structures, Performance Tuning, Problem Solving, User Interface (UI), Interactive Data Visualization, Encryption, Computer Programming, Data Processing, Statistical Analysis, Integrated Development Environments, Software Documentation, Theoretical Computer Science, Statistical Methods, File Management, Web Servers, Programming Principles
If you're teaching yourself Python but you're not yet ready to commit to an online course or program, you might consider bookmarking some of the following tutorials:
• How to Use For Loops in Python: Step-By-Step
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
Linux operating system is the primary choice for those who prefer open-source software [1]. Familiarizing yourself with Linux can be useful for someone who is interested in learning scripting languages.
course
This course provides a practical understanding of common Linux / UNIX shell commands. In this beginner friendly course, you will learn about the Linux ...
4.6
(1,611 ratings)
152,431 already enrolled
Beginner level
Average time: 14 hour(s)
Learn at your own pace
Skills you'll build:
OS Process Management, Linux, File Management, Network Protocols, Scripting Languages, Software Installation, Unix Shell, Unix Commands, Unix, Linux Servers, Command-Line Interface, Automation, Operating Systems, Bash (Scripting Language), Linux Commands, Shell Script
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
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.
You can learn software engineering from Meta staff by enrolling in one of their online courses or certificate programs. For example, the Meta Front-End Developer Professional Certificate focuses on JavaScript, HTML, and CSS.
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
(19,309 ratings)
380,366 already enrolled
Beginner level
Average time: 7 month(s)
Learn at your own pace
Skills you'll build:
Jest (JavaScript Testing Framework), Usability Testing, React.js, HTML and CSS, Algorithms, Persona (User Experience), Interaction Design, UI/UX Research, Git (Version Control System), Web Development Tools, Javascript, Mobile Development, Responsive Web Design, Data Structures, Unix Commands, Front-End Web Development, Cascading Style Sheets (CSS), GitHub, Bootstrap (Front-End Framework), Version Control, Continuous Integration, UI Components, Software Design Patterns, Integration Testing, Application Programming Interface (API), Unit Testing, Figma (Design Software), Prototyping, Design Elements And Principles, User Experience Design, Wireframing, User Interface (UI) Design, User Interface (UI), User Centered Design, User Interface and User Experience (UI/UX) Design, User Experience, Web Design, Design Research, JavaScript Frameworks, Web Design and Development, Web Applications, Web Content Accessibility Guidelines, Code Review, Semantic Web, Data Validation, Usability, Event-Driven Programming, Application Development, JSON, Object Oriented Programming (OOP), Node.JS, Development Environment, Package and Software Management, Computer Programming, Scripting Languages, Scripting, Test Case, Programming Principles, Debugging, Program Development, Computer Science, Technical Communication, Pseudocode, Communication, Computational Logic, Software Visualization, Computational Thinking, Browser Compatibility, Animations, Linux Commands, Collaborative Software, Web Development, Linux, Software Development Tools, Software Versioning, Command-Line Interface, Software Development, File Management
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
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#
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
Prepare for a career as a full stack developer. Build job-ready skills – and must-have AI skills – for an in-demand career. Earn a credential from IBM.
4.6
(8,881 ratings)
232,736 already enrolled
Beginner level
Average time: 5 month(s)
Learn at your own pace
Skills you'll build:
Jupyter, Kubernetes, Software Development Life Cycle, Engineering Software, Cloud Computing, Node.JS, Cloud Computing Architecture, Istio, Git (Version Control System), Prompt Engineering, Object-Relational Mapping, Full-Stack Web Development, Software Architecture, Django (Web Framework), Flask (Web Framework), Cloud Services, Server Side, React Redux, Cascading Style Sheets (CSS), Application Deployment, Containerization, Docker (Software), Command-Line Interface, OpenShift, Cloud-Native Computing, Scalability, Microservices, YAML, CI/CD, Cloud Infrastructure, Emerging Technologies, Cloud Security, Hybrid Cloud Computing, DevOps, Cloud Storage, Cloud Hosting, Cloud Solutions, Cloud Development, Cloud Management, Infrastructure As A Service (IaaS), Cloud Technologies, Software As A Service, Cloud Platforms, IBM Cloud, Cloud Engineering, Web Development, Unit Testing, Application Programming Interface (API), Python Programming, Integrated Development Environments, Web Applications, Style Guides, Programming Principles, Artificial Intelligence, Relational Databases, Model View Controller, SQL, Bootstrap (Front-End Framework), Authorization (Computing), Authentications, Databases, Database Design, Cloud Applications, Application Development, UI Components, Responsive Web Design, Database Management, Content Management, Software Engineering, Software Development, Computer Programming, Back-End Web Development, Front-End Web Development, Scrum (Software Development), Agile Methodology, Software Design Patterns, Software Design, GitHub, Collaborative Software, Open Source Technology, Version Control, Data Structures, Object Oriented Programming (OOP), File Management, NumPy, Pandas (Python Package), Web Scraping, Data Import/Export, Restful API, Data Analysis, Data Manipulation, API Gateway, Serverless Computing, JSON, Package and Software Management, Javascript, Middleware, JavaScript Frameworks, Computer Science, Web Servers, Scripting, Browser Compatibility, User Accounts, HTML and CSS, Large Language Modeling, Natural Language Processing, DevSecOps, Generative AI, Software Testing, Code Review, Software Development Tools, Application Security, Data Ethics, Test Automation, Communication, Algorithms, Relationship Building, Problem Solving, Professional Development, Interviewing Skills, Software Development Methodologies, Verbal Communication Skills, Software Engineering Tools, Professionalism, React.js, Event-Driven Programming
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 because they don't use human language, they're also not widely used to code. Examples of these machine languages include machine code, binary code, and assembly languages.
High-level languages, on the other hand, are less memory efficient but much more human-friendly. This programming style makes it 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
Often, markup languages such as Hypertext Markup Language (HTML) are classified as programming languages. Technically, markup languages are not considered to be the same as programming languages. Instead, they are text-encoding systems made up of symbols that control the formatting and structure of content on a page or document.
Read more: HTML Projects to Help You Launch Your Career
Learning to program is easier now than ever. Whether you're just starting out or already have a couple of programming languages under your belt, Coursera has something for you:
To learn the basics of Python, try the University of Michigan's Programming for Everybody (Getting Started with Python) course. In this beginner-friendly course, you'll learn how to install Python, write your first program, and use core programming tools like functions and loops. Plus, upon completion, you'll be a step closer to completing the popular Python for Everybody Specialization.
For front-end languages like HTML, JavaScript, and CSS, consider enrolling in Microsoft's Front-End Developer Professional Certificate. There, you'll learn to develop strong coding skills by applying programming techniques to build interactive features.
To advance your IT career with programming, explore Google's IT Automation with Python Professional Certificate. Here, you'll learn how to automate tasks by writing Python scripts, managing IT resources on physical and virtual machines, and using Git and GitHub for version control.
course
This course aims to teach everyone the basics of programming computers using Python. We cover the basics of how one constructs a program from a series of ...
4.8
(231,751 ratings)
3,365,586 already enrolled
Beginner level
Average time: 18 hour(s)
Learn at your own pace
Skills you'll build:
Programming Principles, Software Installation, Computer Programming, Python Programming, Development Environment
professional certificate
Launch your Career in Front-End Development. Start your journey as a front-end developer. Develop job-ready AI-powered skills and earn a certificate from Microsoft. No experience required.
4.8
(49 ratings)
7,191 already enrolled
Beginner level
Average time: 4 month(s)
Learn at your own pace
Skills you'll build:
HTML and CSS, User Interface and User Experience (UI/UX) Design, Object Oriented Programming (OOP), Git (Version Control System), Figma (Design Software), Javascript, Debugging, Secure Coding, Authentications, Open Web Application Security Project (OWASP), Mockups, C# (Programming Language), Front-End Web Development, Microsoft Copilot, Web Development, User Interface (UI), UI Components, GitHub, Programming Principles, Web Design, Data Validation, Application Security, Encryption, Authorization (Computing), Web Applications, Vulnerability Assessments, Data Security, Data Integrity, JSON, Responsive Web Design, Web Content Accessibility Guidelines, Semantic Web, Pseudocode, Algorithms, Computer Programming, Program Development, Version Control, Software Engineering, Computational Thinking, Data Structures, Integrated Development Environments, Performance Tuning, Event-Driven Programming, Server Side, Prototyping, User Centered Design, Wireframing, Adobe XD, Cascading Style Sheets (CSS), Mobile Development, Usability, .NET Framework, Microsoft Development Tools, Microsoft Visual Studio, Development Environment
professional certificate
Learn in-demand skills like Python, Git, and IT automation to advance your career
4.8
(39,394 ratings)
800,685 already enrolled
Advanced level
Average time: 6 month(s)
Learn at your own pace
Skills you'll build:
Automation, Unit Testing, Bash (Scripting Language), Scripting, Cloud Computing, Git (Version Control System), Debugging, Python Programming, CI/CD, Web Services, Applicant Tracking Systems, Cloud Services, Puppet (Configuration Management Tool), Infrastructure as Code (IaC), Interviewing Skills, Technical Communication, GitHub, Programming Principles, Configuration Management, Version Control, Operating Systems, File Management, Test Driven Development (TDD), Linux Commands, Unix, Shell Script, Unix Commands, OS Process Management, Unix Shell, Command-Line Interface, Scripting Languages, Development Environment, Cloud Storage, Scalability, Load Balancing, Containerization, Kubernetes, System Monitoring, Docker (Software), Infrastructure Architecture, DevOps, Continuous Integration, Code Review, Issue Tracking, Software Versioning, Software Engineering Tools, Software Development Tools, Prompt Engineering, Communication, Personal Attributes, Professional Development, Problem Solving, Generative AI, Performance Tuning, Technical Documentation, System Support, Problem Management, Incident Management, Network Troubleshooting, Technical Support, Application Performance Management, Data Structures, Algorithms, Computer Programming, Computational Thinking, Integrated Development Environments, Restful API, Application Programming Interface (API), JSON, Maintainability, Image Analysis
Statista. "Market share held by the leading computer (desktop/tablet/console) operating systems worldwide from January 2012 to February 2024, https://www.statista.com/statistics/268237/global-market-share-held-by-operating-systems-since-2009/." Accessed December 15, 2024.
Editorial Team
Coursera’s editorial team is comprised of highly experienced professional editors, writers, and fact...
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.
Advance in your career with recognized credentials across levels.
Subscribe to earn unlimited certificates and build job-ready skills from top organizations.