Skills you'll gain: Embedded Software, C (Programming Language), Embedded Systems, Debugging, Peripheral Devices, Integrated Development Environments, Computer Programming Tools, Development Environment, System Programming, Electronics, Software Development Tools, Hardware Architecture, Data Structures, Electronic Hardware, Microarchitecture, Programming Principles, Performance Tuning, Computer Architecture, Control Systems, Computer Programming
Intermediate · Specialization · 3 - 6 Months

University of Michigan
Skills you'll gain: C (Programming Language), Data Structures, Application Security, System Programming, Programming Principles, Performance Tuning
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Data Persistence, File I/O, C (Programming Language), Debugging, Computational Thinking, Programming Principles, Program Development, Application Design, Command-Line Interface, Algorithms
Mixed · Course · 1 - 4 Weeks

Duke University
Skills you'll gain: Debugging, File I/O, Programming Principles, Maintainability, Software Testing, Program Development, C (Programming Language), Algorithms, Simulations, System Programming, Computer Programming, Data Structures, Software Development, Software Engineering, Command-Line Interface, Development Environment, User Interface (UI), Solution Design, Problem Solving, Software Design
Beginner · Specialization · 3 - 6 Months

University of Michigan
Skills you'll gain: C (Programming Language), C++ (Programming Language), Object Oriented Programming (OOP), Data Structures, Programming Principles, Algorithms, Computer Programming, Software Design, Application Security, Other Programming Languages, Python Programming, Java Programming, System Programming, Computer Architecture, Performance Tuning, Unix, Computer Science, Debugging
Intermediate · Specialization · 3 - 6 Months

University of California, Santa Cruz
Skills you'll gain: C++ (Programming Language), Object Oriented Programming (OOP), Programming Principles, Software Design Patterns, Computer Programming, Algorithms, C (Programming Language), Graph Theory, Debugging, Artificial Intelligence, Data Structures, Game Design, Software Documentation
Beginner · Specialization · 3 - 6 Months

University of Colorado Boulder
Skills you'll gain: Agile Methodology, Scrum (Software Development), System Programming, Embedded Software, Software Testing, Embedded Systems, Linux, Agile Software Development, Docker (Software), Git (Version Control System), File I/O, Linux Commands, Linux Servers, Linux Administration, Operating Systems, Bash (Scripting Language), Shell Script, C++ (Programming Language), Debugging, Internet Of Things
Intermediate · Specialization · 1 - 3 Months
Dartmouth College
Skills you'll gain: Command-Line Interface, C (Programming Language), Linux Commands, Linux, Embedded Systems, File I/O, Embedded Software, Software Visualization, Programming Principles, Computer Engineering, Linux Servers, File Systems, System Programming, Algorithms, Computer Architecture, Computer Programming, Software Documentation, Computer Science, Software Engineering, Debugging
Beginner · Specialization · 3 - 6 Months

Skills you'll gain: Data Persistence, File I/O, C (Programming Language), Game Design, Programming Principles, Debugging, Data Modeling, Computational Thinking, Data Integrity, Program Development, Application Development, Data Maintenance, Computational Logic, Data Validation, Command-Line Interface, Application Design, Animation and Game Design, User Interface (UI), Algorithms, Data Structures
Beginner · Specialization · 1 - 3 Months

Skills you'll gain: Computational Thinking, Algorithms, Graph Theory, Data Structures, C++ (Programming Language), C and C++, Programming Principles, Computer Programming, Object Oriented Programming (OOP), Technical Design, Theoretical Computer Science
Intermediate · Specialization · 1 - 3 Months

Skills you'll gain: Embedded Software, Performance Tuning, System Programming, Software Development Tools, Embedded Systems, Software Development, Hardware Architecture, Debugging, Application Security, Microarchitecture, Computer Architecture, C (Programming Language), Digital Signal Processing, System Configuration, Application Development, Security Engineering, C++ (Programming Language), System Requirements
Intermediate · Specialization · 3 - 6 Months

Infosec
Skills you'll gain: Secure Coding, Computer Programming Tools, C and C++, Application Security, System Programming, C++ (Programming Language), C (Programming Language), Software Development Tools, Exploit development, Debugging, Interoperability, Unix, Embedded Systems, Vulnerability Assessments, Unix Commands, File I/O, Operating Systems, Data Security, Linux, Microsoft Windows
Intermediate · Specialization · 3 - 6 Months