Functional programming courses can help you learn concepts like first-class functions, immutability, and higher-order functions, along with practical techniques for managing state and side effects. You can build skills in recursive problem-solving, data transformation, and leveraging pure functions for cleaner code. Many courses introduce tools such as Haskell, Scala, and JavaScript, showcasing how these languages facilitate functional programming principles and enhance software development practices.

Skills you'll gain: Unix Shell, Unix Commands, Unix, Shell Script, Bash (Scripting Language), Command-Line Interface, Remote Access Systems, Scripting, Systems Administration, Operating System Administration, Linux Commands, IT Automation, Linux, User Accounts, File Systems, System Monitoring, Operating Systems, File Management, Performance Tuning, System Programming
Beginner · Specialization · 1 - 3 Months

Skills you'll gain: Linux, Linux Commands, C (Programming Language), System Programming, Command-Line Interface, Programming Principles, Development Environment, Computer Programming Tools, Data Structures, Program Development, Debugging
Mixed · Course · 1 - 3 Months

Johns Hopkins University
Skills you'll gain: Apache Hadoop, Data Processing, Distributed Computing, Performance Tuning, Big Data, Software Architecture, Scalability, Java, System Configuration
Intermediate · Course · 1 - 3 Months

Skills you'll gain: PL/SQL, Oracle Databases, SQL, Stored Procedure, Data Access, Database Design, Programming Principles, Debugging, Relational Databases, Maintainability
Mixed · Course · 1 - 4 Weeks

University of Alberta
Skills you'll gain: Computational Thinking, Video Game Development, Game Design, Programming Principles, Animation and Game Design, Software Quality (SQA/SQC), Problem Solving, Computer Programming, Program Development, Software Engineering, Python Programming, Algorithms, Object Oriented Programming (OOP), Pseudocode, Data Structures, Application Design, Debugging, Computer Science, Test Planning
Beginner · Course · 1 - 3 Months

Skills you'll gain: Integrated Development Environments, System Configuration
Beginner · Course · 3 - 6 Months

Skills you'll gain: Java Programming, Java, Object Oriented Programming (OOP), Computer Programming, Virtual Machines, Package and Software Management
Beginner · Course · 1 - 4 Weeks

University of Colorado Boulder
Skills you'll gain: System Programming, Embedded Systems, Linux, Linux Administration, Shell Script, Linux Commands, Bash (Scripting Language), Operating Systems, File Systems, OS Process Management, C and C++, Build Tools, Electrical Engineering, GitHub, Debugging, Git (Version Control System)
Advanced · Course · 1 - 4 Weeks

Skills you'll gain: Embedded Systems, Embedded Software, C (Programming Language), Programming Principles, Data Structures, Computer Programming Tools, Development Environment, Software Installation, Debugging
Beginner · Course · 1 - 4 Weeks

University of Pennsylvania
Skills you'll gain: Object Oriented Design, Java, Object Oriented Programming (OOP), Unit Testing, Java Programming, Application Development, Data Structures, Software Testing, Programming Principles, Test Driven Development (TDD), Computer Programming
Beginner · Course · 1 - 4 Weeks
University of California, Santa Cruz
Skills you'll gain: C (Programming Language), C++ (Programming Language), Debugging, Computer Programming, Data Structures, Object Oriented Programming (OOP), Command-Line Interface, File Systems
Intermediate · Course · 1 - 3 Months

Skills you'll gain: PHP (Scripting Language), Web Applications, Server Side, Web Development, HTML and CSS, Web Servers, Programming Principles, Data Validation
Mixed · Course · 1 - 4 Weeks