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.

University of Colorado Boulder
Skills you'll gain: Software Configuration Management, Embedded Software, Embedded Systems, Git (Version Control System), Version Control, Build Tools, Software Development Tools, C (Programming Language), Development Environment, Program Development, Software Design, Hardware Architecture, Debugging, Command-Line Interface
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), Hardware Architecture, Computer Architecture, Integrated Development Environments, Software Design, Maintainability, System Configuration, Development Environment, Peripheral Devices
Intermediate · Course · 1 - 4 Weeks

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

Yale University
Skills you'll gain: Clinical Trials, Software Development Life Cycle, Medical Devices, Usability, Software Development, Medical Privacy, Human Computer Interaction, Regulatory Affairs, Verification And Validation, Regulatory Requirements, Quality Management Systems, Biomedical Engineering, Risk Management, Software Design, Health Technology, Software Testing, Entrepreneurship, Artificial Intelligence and Machine Learning (AI/ML), User Research, Probability & Statistics
Intermediate · Course · 3 - 6 Months

University of Michigan
Skills you'll gain: Unified Modeling Language, JSON, Object Oriented Programming (OOP), Software Design, Debugging, Object Oriented Design, Data Processing, Web Scraping, Unit Testing, Programming Principles, Python Programming, Data Import/Export, Restful API, Image Analysis, Data Manipulation, Jupyter, Computer Programming, Data Structures, Software Engineering, File Management
Beginner · Specialization · 3 - 6 Months
LearnQuest
Skills you'll gain: Java Programming, Spring Framework, Java, Eclipse (Software), Object Oriented Programming (OOP), Object Oriented Design, Integrated Development Environments, Development Environment, Java Platform Enterprise Edition (J2EE), Software Design, Software Installation, Computer Programming, Programming Principles, Program Development, Virtual Machines, Web Development, Debugging, Package and Software Management, Data Structures, File Management
Intermediate · Specialization · 3 - 6 Months
Multiple educators
Skills you'll gain: Unit Testing, Data Structures, Event-Driven Programming, Interactive Data Visualization, Java, Java Programming, User Interface (UI), Object Oriented Programming (OOP), Debugging, Object Oriented Design, Computer Programming, Cryptography, Software Engineering, Performance Tuning, Encryption, Algorithms, Programming Principles, Data Analysis, Software Design, Problem Solving
Beginner · Specialization · 3 - 6 Months

Vanderbilt University
Skills you'll gain: Git (Version Control System), JUnit, Android Studio, Android Development, Unit Testing, Maintainability, Software Design Patterns, Test Automation, Object Oriented Programming (OOP), Integration Testing, Test Driven Development (TDD), Mobile Development, Software Testing, Testability, Software Engineering, System Testing, Java Programming, Java, Application Security, Software Design
Beginner · Specialization · 3 - 6 Months

École Polytechnique Fédérale de Lausanne
Skills you'll gain: Scala Programming, Apache Spark, Apache Hadoop, User Interface (UI), Programming Principles, Big Data, Software Design, Data Structures, Software Design Patterns, Functional Design, Data Manipulation, Object Oriented Programming (OOP), Heat Maps, Data Visualization Software, Interactive Data Visualization, Distributed Computing, Computer Programming, Data Processing, Real Time Data, Performance Tuning
Intermediate · Specialization · 3 - 6 Months

Vanderbilt University
Skills you'll gain: Prompt Engineering, Anthropic Claude, Multimodal Prompts, Version Control, Generative AI Agents, Git (Version Control System), Generative AI, Software Quality Assurance, Software Development, Mockups, Test Automation, Software Documentation, Artificial Intelligence, Software Development Life Cycle, Software Architecture, Automation, Software Testing, Software Design, Software Development Methodologies
Beginner · Course · 1 - 3 Months

University of Colorado Boulder
Skills you'll gain: Object Oriented Design, JUnit, Object Oriented Programming (OOP), Software Design Patterns, Java, Unified Modeling Language, Software Design, Java Programming, Software Architecture, Model View Controller, Conceptual Design
Build toward a degree
Intermediate · Course · 1 - 3 Months

Pontificia Universidad Católica del Perú
Skills you'll gain: User Story, Human Computer Interaction, Software Development Life Cycle, Functional Requirement, Unified Modeling Language, Requirements Analysis, Prototyping, Usability, User Experience, User Interface (UI) Design, User Requirements Documents, Interaction Design, Persona (User Experience), User Centered Design, Human Factors, System Requirements, User Research, Software Design, Software Engineering, Systems Development
Beginner · Specialization · 3 - 6 Months