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: Embedded Software, Embedded Systems, Pseudocode, Microarchitecture, Hardware Architecture, Computer Architecture, Software Design, System Programming, Software Design Patterns, Systems Design, Systems Integration, Programming Principles, Event-Driven Programming, Program Development, Real Time Data, Peripheral Devices, Memory Management
Beginner · Course · 1 - 4 Weeks

Skills you'll gain: Prompt Engineering, Prompt Patterns, Generative AI, Data Ethics, Generative AI Agents, AI Personalization, ChatGPT, Mobile Development, AI powered creativity, Software Design Documents, Software Design, Generative Model Architectures, Anthropic Claude, Mobile Development Tools, LLM Application, AI literacy, iOS Development, AI Integrations, Software Development, Artificial Intelligence and Machine Learning (AI/ML)
Advanced · 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, 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
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

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: User Story, Software Development Life Cycle, Software Architecture, Sprint Retrospectives, Agile Software Development, Kanban Principles, DevOps, Backlogs, Full-Stack Web Development, Software Design, Risk Analysis, Scrum (Software Development), Information Technology, Computer Hardware, Agile Methodology, Agile Project Management, Team Building, Risk Management, Leadership, Communication
Beginner · Professional Certificate · 3 - 6 Months

Skills you'll gain: CI/CD, Integration Testing, Continuous Integration, Docker (Software), Java, Cloud Deployment, Containerization, Software Design Patterns, Microservices, Build Tools, Cloud-Native Computing, Object Oriented Design, Software Design, Functional Design
Intermediate · Course · 1 - 4 Weeks

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, Computer Programming Tools, System Configuration, Code Reusability, Peripheral Devices
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Memory Management, Go (Programming Language), Code Reusability, Software Design Patterns, Software Architecture, Object Oriented Programming (OOP), Systems Design, Functional Design, Software Design, System Design and Implementation, Maintainability, Object Oriented Design, System Programming, Data Modeling, Programming Principles, Back-End Web Development
Intermediate · Course · 1 - 4 Weeks

University of Alberta
Skills you'll gain: Object Oriented Design, Unified Modeling Language, Software Design, Object Oriented Programming (OOP), Java, Java Programming, Maintainability, Code Reusability, Software Design Documents, Application Design, Conceptual Design, Diagram Design, Design Elements And Principles
Intermediate · Course · 1 - 4 Weeks

Skills you'll gain: Software Architecture, Solution Architecture, Enterprise Architecture, Information Technology Architecture, Microservices, Service Oriented Architecture, Software Design, Business Process Modeling, Software Design Patterns, Security Architecture Review, Technology Strategies, Event-Driven Programming, Business Modeling, Serverless Computing, Digital Transformation, Scalability, Distributed Computing, Context Management, Restful API, Innovation
Intermediate · Course · 1 - 3 Months

Skills you'll gain: Design Thinking, Software Design, User Interface (UI), Usability, User Interface (UI) Design, UI Components, Interactive Design, Application Design, Python Programming, Application Development
Mixed · Course · 1 - 4 Weeks