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 Washington
Skills you'll gain: Other Programming Languages, Software Design, Ruby (Programming Language), Programming Principles, Data Structures, Computer Programming, Functional Design, Code Reusability
Intermediate · Course · 1 - 4 Weeks

Universidad Austral
Skills you'll gain: Software Documentation, Object Oriented Design, Unified Modeling Language, Relational Databases, Object-Relational Mapping, Software Design, Test Driven Development (TDD), Database Management, Unit Testing, Object Oriented Programming (OOP), Database Design, Debugging, File I/O, Data Structures, Python Programming, JSON, Computer Programming, Programming Principles, Software Installation, Package and Software Management
Beginner · Specialization · 3 - 6 Months

University of Michigan
Skills you'll gain: Authentications, Node.JS, Web Development Tools, Full-Stack Web Development, OAuth, JavaScript Frameworks, Webpack, Web Content Accessibility Guidelines, Web Applications, Application Design, Package and Software Management, Javascript, Web Development, Application Development, Web Frameworks, Maintainability, Software Versioning, Software Design, Front-End Web Development, Computer Programming
Intermediate · Course · 1 - 4 Weeks

University of Colorado Boulder
Skills you'll gain: Real-Time Operating Systems, Systems Architecture, Software Architecture, Embedded Software, Software Design, System Design and Implementation, Embedded Systems, Performance Tuning, Systems Analysis, Electronic Hardware, Hardware Design, Electronic Systems, Systems Design, Hardware Architecture, System Software, Electrical and Computer Engineering, Requirements Analysis, System Programming, Reliability, Service Level
Build toward a degree
Intermediate · Specialization · 3 - 6 Months

Skills you'll gain: System Programming, Linux Administration, Embedded Software, Linux, System Software, Linux Commands, Debugging, Linux Servers, Operating Systems, OS Process Management, Microarchitecture, Scalability, Memory Management, C (Programming Language), Hardware Architecture, Performance Tuning, Software Design, Data Integrity, Data Sharing
Advanced · Course · 1 - 4 Weeks

Skills you'll gain: Java Programming, Java, OS Process Management, Maintainability, Performance Tuning, Scalability, Data Sharing, Software Design, Data Integrity
Intermediate · Course · 1 - 3 Months

University of California San Diego
Skills you'll gain: Graph Theory, Data Structures, Java Programming, Java, Object Oriented Design, Software Design, Algorithms, Theoretical Computer Science, Code Reusability, Object Oriented Programming (OOP), Network Routing, Application Design, Application Development
Intermediate · Course · 1 - 3 Months

University of Michigan
Skills you'll gain: React.js, JavaScript Frameworks, UI Components, Web Development Tools, Web Applications, Event-Driven Programming, Front-End Web Development, Application Deployment, Code Reusability, Context Management, Javascript, Web Development, User Interface (UI), Maintainability, Software Design, Debugging, Data Sharing, Computer Programming
Intermediate · Course · 1 - 4 Weeks

Dartmouth College
Skills you'll gain: Embedded Software, Embedded Systems, C (Programming Language), System Programming, Microarchitecture, Hardware Architecture, Software Design, C and C++, Computer Architecture, Maintainability, Event-Driven Programming, Debugging, Computer Hardware, Memory Management, Code Reusability, Secure Coding, Programming Principles, Data Structures, Peripheral Devices, Data Storage
Intermediate · Course · 1 - 3 Months

University at Buffalo
Skills you'll gain: Blockchain, Program Development, Cryptographic Protocols, Development Environment, Web Development Tools, Software Design, Integrated Development Environments, Programming Principles, Solution Design, Business Logic, Event-Driven Programming, Other Programming Languages, Application Deployment, Transaction Processing, Data Structures, Technology Solutions, Verification And Validation
Intermediate · Course · 1 - 4 Weeks
Instituto Tecnológico de Aeronáutica
Skills you'll gain: JUnit, Object Oriented Programming (OOP), Java, Java Programming, Object Oriented Design, Unified Modeling Language, Unit Testing, Agile Software Development, Software Design, Software Development, Computer Programming, Test Case, Software Testing, Diagram Design, Programming Principles
Intermediate · Course · 1 - 3 Months

Universidad de los Andes
Skills you'll gain: Unified Modeling Language, Diagram Design, Software Design, Object Oriented Design, Dependency Analysis
Beginner · Course · 1 - 3 Months