Compiler courses can help you learn syntax analysis, semantic analysis, code generation, and optimization techniques. You can build skills in parsing algorithms, error handling, and implementing programming languages. Many courses introduce tools like Lex and Yacc for lexical analysis and parsing, as well as LLVM for code optimization, demonstrating how these skills are applied in creating efficient compilers and interpreters.

Skills you'll gain: Embedded Systems, Embedded Software, C (Programming Language), C and C++, Programming Principles, Memory Management, Hardware Architecture, Computational Logic, Computer Architecture, Computer Programming, Peripheral Devices
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Embedded Software, Debugging, Embedded Systems, Memory Management, Integrated Development Environments, C (Programming Language), Computer Programming Tools, Development Environment, C and C++, Software Development Tools, System Programming, Eclipse (Software), Build Tools, Programming Principles, Data Storage
Intermediate · Course · 1 - 4 Weeks

University of Colorado Boulder
Skills you'll gain: Software Configuration Management, Embedded Software, Embedded Systems, Configuration Management, Git (Version Control System), Version Control, Memory Management, Build Tools, Software Development Tools, C (Programming Language), Development Environment, Program Development, Code Review, Software Technical Review, Software Design, Debugging, Make.com
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Computer Architecture, Mainframe Computing, Mainframe Technologies, Microarchitecture, Systems Architecture, Hardware Architecture, Data Storage, Computer Science, Programming Principles, System Programming, Data Structures, Computational Logic, Computer Hardware, Program Development, Computer Programming, Memory Management
Intermediate · Course · 1 - 3 Months

Simplilearn
Skills you'll gain: Object Oriented Programming (OOP), C++ (Programming Language), Object Oriented Design, Memory Management, Computer Programming, Code Reusability, Programming Principles, Algorithms, Data Structures, Data Manipulation
Beginner · Course · 1 - 4 Weeks

Skills you'll gain: Open Source Technology, Package and Software Management, Web Development, Linux, Shell Script, Database Design, Ubuntu, Relational Databases, Web Applications, Web Development Tools, Unix Shell, Test Driven Development (TDD), Python Programming, Linux Administration, Databases, Object Oriented Programming (OOP), Object Oriented Design, Scripting Languages, Javascript, Database Management
Build toward a degree
Beginner · Specialization · 3 - 6 Months

Skills you'll gain: File I/O, Data Import/Export, C++ (Programming Language), C and C++, Programming Principles, Data Structures, File Management, Computer Programming, Data Store, Memory Management, Computer Science, Development Environment
Beginner · Course · 1 - 4 Weeks

Duke University
Skills you'll gain: File I/O, Memory Management, Maintainability, C (Programming Language), Software Engineering, System Programming, Programming Principles, Software Development, Simulations, Command-Line Interface, Collaborative Software
Beginner · Course · 1 - 4 Weeks

University of Michigan
Skills you'll gain: Object Oriented Programming (OOP), Object Oriented Design, Animations, Interactive Data Visualization, Software Design, Program Development, Data Structures, Interactive Design, Programming Principles, Visualization (Computer Graphics), Graphic and Visual Design, Python Programming, Event-Driven Programming, Systems Design, Digital Design, Simulations, Computer Graphics, Design, Game Design, Computational Logic
Beginner · Specialization · 3 - 6 Months

Skills you'll gain: Memory Management, C and C++, Computational Thinking, Data Access
Intermediate · Course · 1 - 3 Months

The Linux Foundation
Skills you'll gain: Bash (Scripting Language), File Systems, Package and Software Management, Linux, Command-Line Interface, Unix Commands, Linux Commands, Shell Script, grep, Linux Administration, Unix Shell, Scripting, Software Development Tools, Computer Programming Tools, File Management, Build Tools, Unix, Scripting Languages, Program Development, System Programming
Beginner · Course · 1 - 4 Weeks

Skills you'll gain: Object Oriented Programming (OOP), C++ (Programming Language), C and C++, Data Presentation, Scientific Visualization, Application Development, Object Oriented Design, Data Visualization Software, Statistical Visualization, Plot (Graphics), Application Design, Visualization (Computer Graphics), Programming Principles, Data Visualization, Graphical Tools, Computational Thinking, Computer Graphic Techniques, Program Development, Graphic and Visual Design, Software Visualization
Beginner · Specialization · 3 - 6 Months