Software design courses can help you learn programming principles, design patterns, user interface design, and system architecture. You can build skills in code refactoring, version control, and creating scalable applications. Many courses introduce tools like Git for version control, Figma for UI/UX design, and various integrated development environments (IDEs) to streamline the coding process. By engaging with these topics and tools, you can enhance your ability to create efficient, user-friendly software solutions.

Skills you'll gain: Software Development Life Cycle, Linux Commands, Software Architecture, Bash (Scripting Language), Restful API, Shell Script, Git (Version Control System), GitHub, Full-Stack Web Development, Software Design, Flask (Web Framework), Version Control, File Management, Unix Shell, Web Development, Linux, Application Deployment, Python Programming, NumPy, Data Analysis
Beginner · Specialization · 3 - 6 Months

Duke University
Skills you'll gain: Debugging, File I/O, Memory Management, Programming Principles, Maintainability, Software Testing, Program Development, C (Programming Language), Development Testing, Algorithms, Test Planning, Simulations, System Programming, Systems Development Life Cycle, Computer Programming, Data Structures, C and C++, Software Engineering, Problem Solving, Software Design
Beginner · Specialization · 3 - 6 Months

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, System Programming, Build Tools, Software Development Tools, System Software, C (Programming Language), Development Environment, Program Development, Code Review, Software Technical Review, Software Design
Intermediate · Course · 1 - 4 Weeks

SkillUp
Skills you'll gain: GitHub Copilot, Prompt Engineering, AI Workflows, AI Integrations, Generative AI, ChatGPT, Software Architecture, Code Review, AI literacy, Software Design, API Design, Debugging, Software Development, Application Development, AI Security, Database Design, Python Programming, Automation, Version Control, Java Programming
Intermediate · Specialization · 3 - 6 Months

Skills you'll gain: Software Development Life Cycle, Object Oriented Programming (OOP), Java Programming, Java, Program Development, Code Reusability, Software Development, Object Oriented Design, Development Environment, Integrated Development Environments, Computer Programming, Software Engineering, Programming Principles, Software Design, Computational Logic
Beginner · Course · 1 - 4 Weeks

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

University of Colorado Boulder
Skills you'll gain: Embedded Software, Embedded Systems, Debugging, Data Structures, System Programming, Microarchitecture, C (Programming Language), Memory Management, Hardware Architecture, Computer Architecture, Software Design, Maintainability, System Configuration, Code Reusability, Software Architecture, Peripheral Devices
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Software Architecture, Software Design Patterns, Software Design, Systems Architecture, Microservices, Maintainability, Object Oriented Design, System Design and Implementation, Performance Tuning, Model View Controller, Application Design, Programming Principles, Scalability, Python Programming, Code Reusability, Object Oriented Programming (OOP), Event-Driven Programming, Unit Testing
Intermediate · Course · 1 - 3 Months

University of California, Santa Cruz
Skills you'll gain: C++ (Programming Language), Go (Programming Language), File I/O, Data Structures, C and C++, Object Oriented Programming (OOP), Object Oriented Design, Programming Principles, Software Design Patterns, Debugging, Computer Programming, Unit Testing, C (Programming Language), Software Design, Program Development, Algorithms, Graph Theory, Software Testing, Computer Science, Computational Logic
Intermediate · Specialization · 3 - 6 Months

Board Infinity
Skills you'll gain: Software Quality Assurance, Software Development Life Cycle, Quality Assurance, Software Quality (SQA/SQC), Software Documentation, Functional Testing, Software Testing, Software Development Methodologies, Acceptance Testing, Test Case, Maintainability, Test Planning, Unit Testing, Software Design, Technical Documentation, Waterfall Methodology, Agile Methodology
Beginner · Course · 1 - 4 Weeks

Skills you'll gain: Prompt Engineering, Prompt Patterns, ChatGPT, Generative AI, Generative Model Architectures, Data Ethics, Generative AI Agents, AI Personalization, Mobile Development, AI powered creativity, Software Design Documents, Software Design, Prompt Engineering Tools, Anthropic Claude, Mobile Development Tools, LLM Application, AI literacy, iOS Development, Machine Learning Software, Software Development
Advanced · Specialization · 3 - 6 Months
Multiple educators
Skills you'll gain: Unit Testing, Data Structures, Event-Driven Programming, File I/O, Interactive Data Visualization, Java, Java Programming, Object Oriented Design, Object Oriented Programming (OOP), User Interface (UI), Debugging, Software Testing, Computer Programming, Cryptography, Software Engineering, Bioinformatics, Algorithms, Data Analysis, Software Design, Problem Solving
Beginner · Specialization · 3 - 6 Months