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.

University of California, Irvine
Skills you'll gain: Test Planning, Embedded Software, Embedded Systems, Functional Requirement, Systems Design, System Requirements, System Design and Implementation, Software Design, Prototyping, Technical Design, Conceptual Design, Python Programming
Mixed · Course · 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

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: Java Programming, Java, Object Oriented Programming (OOP), Computer Programming, Virtual Machines, Package and Software Management
Beginner · Course · 1 - 4 Weeks

Skills you'll gain: Integrated Development Environments, System Configuration
Beginner · Course · 3 - 6 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
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: Embedded Systems, Embedded Software, C (Programming Language), Programming Principles, Data Structures, Computer Programming Tools, Development Environment, Software Installation, Debugging
Beginner · Course · 1 - 4 Weeks

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

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
Skills you'll gain: Unified Modeling Language, Visual Basic (Programming Language), Database Management, System Software, Databases, Relational Databases, Algorithms, Computer Architecture, Network Security, Computer Hardware, SQL, Computer Science, Development Environment, Data Structures, Object Oriented Programming (OOP), Object Oriented Design, Program Development, Computer Programming, Data Modeling, Microsoft Development Tools
Beginner · Specialization · 3 - 6 Months