Best Software Design Courses

Find the best online Software Design Courses for you. The courses are sorted based on popularity and user ratings. We do not allow paid placements in any of our rankings. We also have a separate page listing only the Free Software Design Courses.

Software Architecture and Clean Code Design in OOP

Learn design patterns and principles for Object-oriented programming to make your software scalable and easy to maintain

Created by Andrii Piatakha - Founder and CEO in IT-Bulls, Founder of Learn-IT University

"]

Students: 53441, Price: $29.99

Students: 53441, Price:  Paid

From this course you can learn Software Architecture and Clean Code Design in OOP.

There are a lot of other courses in this topic. So, why would you choose exactly this course?  Here just a few reasons:

- Coding examples

To learn programming it is not enough just watching videos and reading books. You also need to have a lot of practice. In this training course you will review multiple practical tasks and coding examples which will help you learn and understand Java better.

- Open source code

We hide nothing from our students! Including the source code for the hometask solutions and source code of examples which were shared during the lesson. Having the source code you can just copy and paste it to run it on your local computer to understand how things work better.

You are allowed to use all source code examples for learning purposes. This helps significantly to configure environment and make tests work, especially in case student didn't work with any testing framework in the past.

- Q&A support

The significant difference between online and offline learning process is instructor's availability. If you are in the one room with tutor he always can help you to get understanding specific concept or to help fix your code on your computer.
In this course, we are supporting students with answers to any questions flagged in Q&A section. In case there will be recurring questions - separate video lessons will be created to show how to address issue.

So with this course you are not just getting video materials, code exercises, source code, access to free mobile application without limits (which is still pretty cool, huh? :) ) , but you also get tutor support and answers to your questions along with this course.

- Relevant knowledge

After our team investigated other Java courses on Udemy we realized that most of them has nothing in common with real life. Information which is shared there is very old and significantly out of date. For example, instructor teaches framework which is not used already for 15 years. Or instructor do a stress on the programming design which is not used anymore at all!

Instructor of this course is consultant in the top-rated IT outsourcing company and helps to bring cutting-edge solutions in IT for all his clients. Feel free to check LinkedIn page of instructor and check skills endorsement. More than 19 thousand people acrooss all over the world (BTW most of them are from top 100 companies of the world) evaluated skills of Andrii Piatakha.

With this course you can be sure that you will spend your time learning the right things from the one of the best IT consultants in the world.

- Free mobile App without limits for our students

Knowing Java is one skill. Be able to pass interview in company - that is another skill :) Nowadays a lot of companies use tests to select candidates on the first level of interview. We developed application to practice skills specifically for such purposes.

In this course we will provide you link to download our FREE mobile app for android. (soon it will be also available for iOS platforms)

Instructor of this course come up with hundreds tests which are used to test knowledge of candidates. With this application you will be well-prepared for the interview.

Also, only for our students - there is no limit on attempts to pass certification. In the course we will tell you how to set up special bonus code which will remove restrictions for our students inside the app.

- High concentration of useful material in each lesson

Sometimes you can notice that watching of 5 minutes of our lesson is equivalent to watching of other 30 minutes lesson.

This is because time spent for preparation for the lesson (script for the lesson, lesson structure) and video editing (to cut boring pieces of the lesson, or time when program loads) sometimes 10 times as much (sometimes even 20) as final lesson duration after video editing.

Also each topic is separated from another. In case some concept will be explained in the next lesson and you don't need to worry about understanding this in scope of this lesson - instructor will make announcement when specific topic will be covered.

Go and try it yourself! We will appreciate your feedback.

So don't wait! Take a look at lessons' preview if you still have doubts!

Buy this course today, and you will get all updates for FREE!

For those who successfully passed this training course, or for students who was recognized for asking amazing questions, there is a special offer from IT-Bulls company! The creator of this course is IT-Bulls company CEO and Founder. We always in search of talents to run our amazing startups together with you. Probably you always dreamed about running your own startup? In this course you will be able to find the team who will teach you how to do that and (in particular cases) will be glad to help with implementation!

Hope you enjoy this course! And remember, we appreciate all your feedbacks! Your feedbacks will help us to become even more better! Your feedbacks will help us to create to best Java course ever!

See you on the lessons! :)

Python Programming & Software Design For Absolute Beginners

Beginners Guide to Programming and Software Design

Created by Academy of Computing & Artificial Intelligence - Senior Lecturer / Project Supervisor / Consultant

"]

Students: 42875, Price: $19.99

Students: 42875, Price:  Paid

At the end of the Course you will understand the basics of Python Programming. You can enhance your core programming skills to reach the advanced level. You will learn about Software Design as well. eg: Flow charts, pseudacodes, algorithms

By the end of these videos, you will get the understanding of following areas the 

  • Python Programming

    Setting up the environment

    Python For Absolute Beginners : Setting up the Environment : Anaconda

    Python For Absolute Beginners : Variables , Lists, Tuples , Dictionary

  • Boolean operations

  • Conditions , Loops

  • (Sequence , Selection, Repetition/Iteration)

  • Functions

  • File Handling in Python

  • Flow Charts

  • Algorithms

  • Modular Design

  • Introduction to Software Design - Problem Solving

    Software Design - Flowcharts - Sequence

    Software Design - Modular Design

    Software Design - Repetition

    Flowcharts Questions and Answers # Problem Solving

Master Object Oriented Design in Java – Homework + Solutions

Don't just learn Java! Learn to write practical industry standard object oriented software and super charge your career!

Created by Imtiaz Ahmad - Senior Software Engineer & Trainer @ Job Ready Programmer

"]

Students: 26946, Price: $109.99

Students: 26946, Price:  Paid

SUPER CHARGE OF YOUR PROGRAMMING CAREER and acquire some seriously marketable skills!

    Just because you learned how to use a hammer doesn't mean you are ready to construct a building. Similarly, It's not enough to just understand a programming language. That's just a tool that can be used to develop various programs. The real craftsmanship is in software DESIGN

    This course is designed to take a junior level programmer with limited knowledge about object orientation to a competent level object oriented software designer! I expect you to understand the basics of loops, methods and conditionals in Java. You'll be completing hands-on HOMEWORK Exercises through out the course! I have provided detailed video solutions to the exercises so that you can check your answers and get step by step instructions of how to tackle the object oriented design assignments. 

      You can find plenty of resources online for solving a programming puzzle  or practicing algorithms. But… when it comes to object oriented design,  admittedly, there is limited material out there for you to practice. So  in this course, we use a LEARN-BY-DOING  approach to explore a series of progressively challenging exercises to  discover the 5 core object oriented design PRINCIPLES summarized by an  acronym called SOLID: 

  (S). Single Responsibility   

          (O). Open/Closed   

    (L).  Liskov Substitution   

          (l ). Interface Segregation   

          (D). Dependency Inversion   

      During this journey you'll get practice applying some of the most important DESIGN PATTERNS that competent developers must have under their belt. There are so many design patterns out there, but we'll be thoroughly covering only the most important ones. Save yourself the time from learning all the design patterns and going on a design frenzy. Focus on the 20% that covers 80% of the scenarios and add miles to your programming efficiency. 

  These cover 80% of patterns used out there in professional software development.   

  1). Strategy Pattern   

          2). Observer Pattern   

          3). Builder pattern   

          4). Factory method pattern   

          5). Template Method Pattern   

  6). Singleton Pattern 

                              The topics can be applied to pretty much any object oriented language. But, we'll be using Java, so I expect you to be familiar with the basic language constructs such as classes, methods and interfaces. But don't worry if you don't know about these, I've taken the time to create 6 comprehensive prerequisite lessons on introduction to object orientation. In these lessons, new comers can learn about the basics of object orientation such as: 

  1). Classes and objects   

          2). Inheritance and polymorphism,   

          3). Interfaces and abstract classes.   

                              I'm certain that, by practicing the concepts covered, you'll make a substantial leap forward in your programming career. I hope to see you in the coming lessons.

This course is from This site offers lectures on practical software development topics to immediately impact your programming skills. Things you can take to your interview and feel confident in your abilities!

GoF Design Patterns – Complete Course with Java Examples

Software Design Patterns in OOP with Java examples. Architecture principles and clean code design in OOP applications

Created by Andrii Piatakha - Founder and CEO in IT-Bulls, Founder of Learn-IT University

"]

Students: 26633, Price: $29.99

Students: 26633, Price:  Paid

From this course you can learn GoF Design Patterns with detailed Java examples.

There are a lot of other courses in this topic. So, why would you choose exactly this course?  Here just a few reasons:

- Coding examples

To learn programming it is not enough just watching videos and reading books. You also need to have a lot of practice. In this training course you will review multiple practical tasks and coding examples which will help you learn and understand Java better.

- Open source code

We hide nothing from our students! Including the source code for the hometask solutions and source code of examples which were shared during the lesson. Having the source code you can just copy and paste it to run it on your local computer to understand how things work better.

You are allowed to use all source code examples for learning purposes. This helps significantly to configure environment and make tests work, especially in case student didn't work with any testing framework in the past.

- Q&A support

The significant difference between online and offline learning process is instructor's availability. If you are in the one room with tutor he always can help you to get understanding specific concept or to help fix your code on your computer.
In this course, we are supporting students with answers to any questions flagged in Q&A section. In case there will be recurring questions - separate video lessons will be created to show how to address issue.

So with this course you are not just getting video materials, code exercises, source code, access to free mobile application without limits (which is still pretty cool, huh? :) ) , but you also get tutor support and answers to your questions along with this course.

- Relevant knowledge

After our team investigated other Java courses on Udemy we realized that most of them has nothing in common with real life. Information which is shared there is very old and significantly out of date. For example, instructor teaches framework which is not used already for 15 years. Or instructor do a stress on the programming design which is not used anymore at all!

Instructor of this course is consultant in the top-rated IT outsourcing company and helps to bring cutting-edge solutions in IT for all his clients. Feel free to check LinkedIn page of instructor and check skills endorsement. More than 19 thousand people acrooss all over the world (BTW most of them are from top 100 companies of the world) evaluated skills of Andrii Piatakha.

With this course you can be sure that you will spend your time learning the right things from the one of the best IT consultants in the world.

- Free mobile App without limits for our students

Knowing Java is one skill. Be able to pass interview in company - that is another skill :) Nowadays a lot of companies use tests to select candidates on the first level of interview. We developed application to practice skills specifically for such purposes.

In this course we will provide you link to download our FREE mobile app for android. (soon it will be also available for iOS platforms)

Instructor of this course come up with hundreds tests which are used to test knowledge of candidates. With this application you will be well-prepared for the interview.

Also, only for our students - there is no limit on attempts to pass certification. In the course we will tell you how to set up special bonus code which will remove restrictions for our students inside the app.

- High concentration of useful material in each lesson

Sometimes you can notice that watching of 5 minutes of our lesson is equivalent to watching of other 30 minutes lesson.

This is because time spent for preparation for the lesson (script for the lesson, lesson structure) and video editing (to cut boring pieces of the lesson, or time when program loads) sometimes 10 times as much (sometimes even 20) as final lesson duration after video editing.

Also each topic is separated from another. In case some concept will be explained in the next lesson and you don't need to worry about understanding this in scope of this lesson - instructor will make announcement when specific topic will be covered.

Go and try it yourself! We will appreciate your feedback.

So don't wait! Take a look at lessons' preview if you still have doubts!

Buy this course today, and you will get all updates for FREE!

For those who successfully passed this training course, or for students who was recognized for asking amazing questions, there is a special offer from IT-Bulls company! The creator of this course is IT-Bulls company CEO and Founder. We always in search of talents to run our amazing startups together with you. Probably you always dreamed about running your own startup? In this course you will be able to find the team who will teach you how to do that and (in particular cases) will be glad to help with implementation!

Hope you enjoy this course! And remember, we appreciate all your feedbacks! Your feedbacks will help us to become even more better! Your feedbacks will help us to create to best Java course ever!

See you on the lessons! :)

SOLID Principles: Introducing Software Architecture & Design

Gain mastery over SOLID Principles and write clean and well-designed code in Object Oriented Languages like Java etc.

Created by Sujith George - A Software Engineer With A Passion For Teaching!

"]

Students: 23287, Price: $19.99

Students: 23287, Price:  Paid

     Anyone can code. But what differentiates a professional software engineer from a hobbyist coder is how well-designed and well-coded the final product is. Code quality is hard to come by. Unfortunately, most coders start straight without understanding basic concepts of software design. This course will help a budding coder, as well as an established programmer who wants to learn better design and write quality code.

     It is really important that you grasp the core concepts of SOLID thoroughly. Once you get the fundamentals right, writing quality code will come naturally to you.There are tons of free YouTube videos on SOLID, but they try to teach you in bits and pieces, and don't pick the right analogies and code snippets. What you need is a holistic picture, which is what this course aims to provide. I have spent considerable time and effort to come up with the content for this course. Each and every concept, each and every analogy, each and every code example has been meticulously picked in such a way the design principles stick to your mind. I have used graphical illustrations and real world analogies wherever possible to drive home the point.

      Something else that is special about this course - The subtitles are hand-scripted and accurate. I have even checked the timings to guarantee accuracy. Most courses come with subtitles that are auto-generated using a Speech-To-Text Engine, the accuracy of which is fairly low. But not mine! I have taken pains to script my course to perfection and include the subtitles too. So if you are at work, and you want to put me on mute, please feel free, although I would like you to hear my voice narration. If you want to put me on mute, just enable the subtitles in Udemy and play!

Design Software Training Bundle

Learn different industry standard software related to design

Created by Ishay Frenkel - Instructor

"]

Students: 22569, Price: $19.99

Students: 22569, Price:  Paid

This is the ultimate software survival course. This includes an introduction to video editing, java programming, Photo Editing, as well as an idea of hobby electronics. The course is your comprehensive guide to learning about these different trades in the IT and software industry as well as learning skills that you can use to start a development company, start a startup, or even become a learning student depending on your level of knowledge. Get this course today and take one introductory step towards your future.

Software Architecture (SOLID) & Design Patterns in Java

A guide to Create Smart, Reusable Softwares with SOLID Principles and Design Patterns

Created by Holczer Balazs - Software Engineer

"]

Students: 13144, Price: $34.99

Students: 13144, Price:  Paid

This course is about software architecture and design patterns. We will talk about two man topics: SOLID principles and design patterns. We are going to implement the problems in Java, but the theoretical background is language-independent. I highly recommend typing out the implementations several times on your own in order to get a good grasp of it.

Section 1 - SOLID Principles

  • what are SOLID principles?

  • single responsibility principle

  • open closed principle

  • Liskov's substitution principle

  • interface segregation principle

  • dependency inversion principle

  • what is dependency injection?

Section 3 - Creational Design Patterns

  • what are creational design patterns?

  • singleton pattern

  • factory pattern

  • abstract factory pattern

  • builder pattern

  • prototype pattern

Section 2 - Behavioral Design Patterns

  • what are behavioral design patterns?

  • strategy pattern

  • observer pattern

  • command pattern

  • iterator pattern

  • template pattern and null object pattern

  • visitor pattern

Section 3 - Structural Design Patterns

  • what are structural design patterns?

  • decorator pattern

  • flyweight pattern

  • facade pattern

  • adapter pattern

Section 4 - Model-View-Controller (MVC) Pattern

  • the model-view-controller (MVC) model

  • an application with Java Swing

In the first part of the course we are going to learn about the SOLID principles. We are going to talk about the theory as well as the implementations.

The second part of the course is about design patterns. We should have a deep understanding of these patterns in order to be able to write reusable software components. These techniques are becoming more and more important as applications are getting more and more complex, so - in my opinion - these topics are good to know.

Thank for joining the course, let's get started!

SOLID Principles of Object-Oriented Design and Architecture

Master SOLID principles and deep dive into advanced topics in software architecture

Created by Vasiliy Zukanov - Professional Android developer, Blogger, Educator

"]

Students: 7981, Price: $109.99

Students: 7981, Price:  Paid

In this course you'll master SOLID principles - a set of guidelines for designing clean and maintainable software systems. By learning SOLID principles, you'll gain a deeper understanding into the magnificent world of software architecture.

SOLID principles embody more than 40 years of academic research and industry experience, distilled by several generations of software developers. Therefore, by mastering SOLID principles, you learn universal, time-proven tools for delivering high-quality software to your users.

SOLID is an acronym that stands for five principles:

  • Single Responsibility Principle

  • Open Closed Principle

  • Liskov Substitution Principle

  • Interface Segregation Principle

  • Dependency Inversion Principle

In this course, you will learn SOLID principles in detail and understand their importance. You will discover how SOLID principles make your code flexible, extensible and readable. Eventually, you will discover that SOLID code is simply a joy to work with!

In addition to in-depth discussion of software architecture and SOLID, I will also share many interesting historical facts about the people behind these principles. This short historical detour will allow you to see the bigger picture and will make the course more colorful and interesting.

The topics covered in this course are complex, but important to learn. It's not an overstatement to say that understanding SOLID principles will give you a new level of insight into software architecture and object-oriented programming in general.

So, if you're a professional developer and you're serious about clean and maintainable code, this course is for you!

Java Design Patterns: The Complete Masterclass – 21 Patterns

Master Java Design Patterns and Write Robust and Extensible Software - MVC, Observable, Singleton, Facade, Builder...

Created by Paulo Dichone | Android, Java, Flutter Developer and Teacher - Software Engineer - Android, Java, Flutter, Dart and Teacher

"]

Students: 7493, Price: $119.99

Students: 7493, Price:  Paid

If you are an intermediate to advanced Java Developer ( Or in any other OOP language) and are looking to master Java Design Patterns, then this course is for you.

This course is tailored for anyone who has working Java or any OOP Programming Knowledge and is looking to dive deeper into the core of Software Development principles - Java Design Patterns.

This course is designed to teach you everything you need to know about Java Design Patterns, so you can apply what you learn to your projects.  

If you are reading this because you know the value of learning Design Patterns as a Programmer - Design Patterns is the common denominator you need to master to build excellent Software and build systems that actually work the way they should work.  

If you are looking to get a job as an Android developer or start a freelance career in Android Development, you MUST have a solid Android Developing experience as well as a stunning portfolio to back that up.  This course will teach you how to grow your Android Development knowledge while building up your portfolio.  You will be building several Android Apps from the get-go.

If you want to become:

  1.  a highly paid Professional Programmer

  2.  expert  Developer companies want to hire

  3. a Freelancer  Developer who builds Top-notch applications and systems

  4. a person who can design and architect software using Design Patterns

  5. a programmer who really understand Java Design Patterns and how to implement them in a codebase

  6. ... much more...

Then this course is for you and much more... You'll be immersed in Design Patterns in Java from the first lecture to the end.   You will also receive a Certificate of Completion so you can present it to your potential employer.

Why this Course?  Why is this the best Course To Master Java Design Patterns?

Well, if you are here is probably because you've either looked online for tutorials or maybe watched a lot of youtube videos and still can't really understand Java Design Patterns.

You see, out there on the Internet, you can find a lot of information, but the problem is that everything is scattered around. Very frustrating to actually learn the right way since all you get is fragments of information.  This is where this Java Design Patterns - The Complete Masterclass shines - it takes you from the beginning of understanding all the most important Design Patterns so you can actually start to understand and use them in no time.   With the knowledge you gain from this course, you will gain the confidence to call yourself a True Programmer!

Here's a list of some of the things you'll learn:

  1. Facade Design Pattern and examples

  2. Adapter Design Pattern

  3. Strategy Design Pattern

  4. Decorator Design Pattern

  5. Observer Design Pattern

...and so much more...

My goal in this course is to give you. You need to gain the confidence you need and start writing code that's robust, efficient, and extensible! 

Don't just take my word for it; see what my past students had to say about my courses and my teaching style:

"Very well thought-out course. It flows smoothly with great delivery. I have been developing Android Apps for several years, and I still found this course informative, relevant, and helpful. I would recommend everyone take this course if you are new to Android or returning for a refresher course."  - Douglas Pillsbury.

"Great course. Very easy in understanding and friendly learning. Good Job, Sir. Thanks for this." - Muhammad Adnan

"I am delighted with this course. I have only attended the Android part because I had a basic knowledge of Java. I really like how Paulo teaches. He goes step by step, and you can understand everything. My first language is not English, but he speaks very; clearly, I can understand every word. Also, he is a happy guy, and you can hear that through the courses that he really loves what he is doing. " - Antal Bereczki

"This course is ideal for beginners. This guy is a good teacher. As I get deeper, I feel I am gaining more and more power...haha.

I honestly think this is the best money I have ever spent in my life. This course is worth the money 100 times over. OMG, this good.

Paulo, you are FANTASTIC !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - Sean

"So far one of the best courses and instructors I have experienced in Udemy." - Jim Landon

Just in case your Java skills are not to par yet, I have also added a Bonus Section at the end of the course so you can quickly get back to speed with Java and start working on building Android Apps!

Are you afraid that maybe since you are an experienced developer and have NEVER done Java before but are proficient in another OOP language, you won't learn Java Design Patterns?  Take a look at what one of my students said about my course and teaching style:

"As a web developer, I always thought that learning Android development will be hard. But with this course, it's a piece of cake!" - Saša Lacković

Students love my course so much that they can't even contain themselves... Look at what one student wrote:

"If there's something more than 5 stars, I would have given to this course.

Really great content, along with a detailed explanation.

Keep going on by updating and enhancing the content of this course. Personally, I enjoy every lecture I attend.

PAULO... YOU ARE BEST OF THE BEST :) 

Thanks a lot for this great course,

Best regards." - Bassel Nasief

Sign up today, and look forward to:

  • Over 5 hours of HD 1080p video content ( and counting...)

  • Source code

  • Assignments

  • Learn all of the Design Patterns through real-world examples, code, and slides

  • All the knowledge you need to start Mastering Java Design Patterns.

  • And so much more.

By the end of this course, you will spot any Design Pattern in a project and even implement different Design Patterns as well! 

In this comprehensive course, you will be learning by doing, by coding alongside me.  

You'll understand exactly what I am doing and why.  

Give yourself a competitive advantage by learning Java Design Patterns, and become a truly professional developer!  If you understand Design Patterns, you will be setting yourself up for success at your job or your next job interview.

REMEMBER… I'm so confident that you'll love this course that we're offering a FULL money-back guarantee for 30 days! So it's a complete no-brainer, sign up today with ZERO risks and EVERYTHING to gain.

So what are you waiting for? Click the Enroll now button and join the world's most highly rated Java Design Patterns - The Complete Masterclass!

Who is the target audience?

  • If you have a working Java or any other OOP Programming Language, this is for you.

  • If you know what an Interface is - this course is for you.

  • If you know what an abstract class is - this course is for you.

  • If you know what polymorphism is - this course is for you.

  • If you make a living by building software - this course is for you.

Software Architecture: Meta and SOLID Principles in C#

Learn how to develop maintainable software systems applying Design Patterns based on Meta and SOLID Principles

Created by Engineer Spock - Software Engineer - 1000+ Reviews, Average Score - 4.5

"]

Students: 6491, Price: $44.99

Students: 6491, Price:  Paid

SOLID is an acronym which stands for SRP, OCP, LSP, ISP and DIP. These five acronyms in their turn stand for:   

  • Single Responsibility Principle   

  • Open/Closed Principle   

  • Liskov Substitution Principle   

  • Interface Segregation Principle   

  • Dependency Inversion Principle

In this course, you’ll learn how to apply meta and SOLID principles so that your application will live a long healthy life. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.   

Improve your knowledge in object-oriented programming   

  • Understand the meta principles on which all the other development principles are based   

  • Understand the symptoms of code defects   

  • Learn the foundations of SOLID principles

  • Learn how to detect the violations of SOLID principles and how to fix the problems

  • Learn how meta principles and SOLID principles are related to each other and how to find the balance between them   

Foundations of writing object-oriented code

Despite the fact that C# is a very rich on features language, it's very common to see poorly designed and implemented applications in a real world. Language by itself does not guarantee that the architecture of an application will be great. In order to design and build maintainable software, we need to understand the principles of software development. This video course is exactly about how to achieve clean and maintainable software.   

You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn't suck.   

Owning skills of producing a well-designed and well-implemented types is the prerequisite for the other developers to treat you as a decent professional.   

Content and Overview   

This course is aimed at middle and senior developers. Solid experience in C# is required.   

There are plenty of code examples throughout this course so that you will learn both theoretical and practical material.   

Starting with SOLID principles we will go further to the meta-principles. Going through the SOLID principles, you’ll also learn about the related patterns. Then we will get to the problem of contradictions between different principles. You’ll learn about the relationships between SOLID principles and meta principles.   

In general, you’ll learn in this course:   

  • SRP   

  • OCP   

  • LSP   

  • ISP   

  • DIP   

These are the SOLID principles. You’ll learn the background problems that can be solved by particular principle, you’ll see the demonstrations in code, you’ll learn the related patterns to every principle.   

Learning DIP you’ll in addition learn what is Dependency Injection, Inversion of Control, IoC-Containers and what are the architectural implications of DI.   

Here are other topics you’ll learn in the course:   

  • DRY – don’t repeat yourself   

  • KISS – keep it simple stupid   

  • YAGNI – You Ain’t Gonna Need It   

  • SoC – separation of concerns   

  • CQS – command query separation   

  • Law of Demeter   

  • Principle of Least Astonishment   

  • Information Hiding and Encapsulation   

  • API Development Principles   

  • Contradiction between SOLID and YAGNI   

  • Contradiction between OCP and YAGNI   

  • What is Architecture and Design

Teaching Approach

No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth.

Take this course, and you will be satisfied!

------------------------------------------------------------

Keywords related to the course:

  • Software Architecture

  • SOLID Principles Tutorial C#

  • SOLID Tutorial C#

  • Software Design

  • SOLID Principles

  • SRP, OCP, LSP, ISP, DIP

Software Architecture: REST API Design – The Complete Guide

Become a better Software Architect by designing professional, easy to use and attractive REST API

Created by Memi Lavi - Senior Software Architect & Consultant

"]

Students: 6452, Price: $49.99

Students: 6452, Price:  Paid

Every Software Architect is going to design REST API these days.

REST API is the de-facto standard of the Web API world, and all the major websites are having it - Twitter, Amazon, Facebook, Google and lots and lots more.

If you're designing a web app - the developers using it will expect it to have a REST API.

But, how can you make your REST API stand out? How can you convince the API users to actually use the API, and not just take a quick look at it and go away?

In today's world, where everyone expose REST API, it's not easy to attract developers. And if no developer will come - usage and monetization will be a problem.

The key to make your API stand out is to design a well thought-of API, one that is:

1. Easy to use

2. Easy to understand

3. Consistent

4. Performant

5. Just Works

A good Software Architect must be able to design such an API. In fact, designing the API is one of the most important tasks of the Software Architect.

In this comprehensive course, you'll get all the knowledge required for designing great, professional, REST API, using the techniques used by all industry-leading APIs.

Here are some of the topics discussed in this course:

- What is API, and what is Web API

- The inner structure of REST Request and Response

- Tools that can help you simulate REST API calls, such as Postman and Beeceptor

- The special role of HTTP Verbs

- How a REST API URL should look like

- What are Response Codes and why do they matter

- How to give your API a professional looking documentation

- How to add authentication and authorization to your API

- Performance techniques to improve your API responsiveness

- Monitoring  and its importance

- And lots more...

But that's not all...

At the end of this course, you'll be able to download the REST API Checklist, a comprehensive checklist that will guide you through the process of creating the most professional and attractive REST API. This checklist is your go-to-guide whenever you'll design REST API, and as a Software Architect - you'll design a lot of REST API...

This course takes you from the absolute basics of API to the most advanced topics, known only to few. Completing this course will give you all the knowledge required for building professional REST API, and, as a bonus, will put you in a great position when looking for your next job.

No other course covers this topic in such a comprehensive and thorough way. I've put all my 20+ years of experience with hundreds of clients in this course, and I'm sure you will greatly benefit of it.

------------------------------------------------------------

What do my students have to say about my courses?

------------------------------------------------------------

"well done - The course was very practical" - Sam

"Good explanation on the topics covered, "Soft Skills" section is a great addition of topics" - Sergio

"[The course] given me the confidence to go out to the market and advertise myself as such [an Architect]" - Mathew

"Life Changing" - Arivazhagan

And lots more...

------------------------------------------------------------

Who is this course for?

------------------------------------------------------------

Any person who is involved in web development, even system analyst, can profit from this course.

That includes:

- Junior developers

- Senior developers

- Architects

- Anyone else involved in web development

If you're not sure if this course is for you - drop me a note!

------------------------------------------------------------

What are the prerequisites for this course?

------------------------------------------------------------

In this course we'll use tools simulating REST API server and client (Beeceptor and Postman), so no actual coding is required.

Students are expected, however, to be able to understand simple coding snippet (there are a few), and to know how the internet is working (HTTP protocol, Request / Response model, and so on).

------------------------------------------------------------

About Me

------------------------------------------------------------

I've been in the software industry for more than 20 years, and a Software Architect for more than 17 years, working with a variety of clients - Fortune 100 enterprises, start-ups, govt. entities, defense, telco, banking, and lots more.

I'm an avid speaker and trainer, having trained thousands of students in various courses.

I love what I do, and my greatest passion (well, besides my family...) is designing modern, practical, and reliable systems for my clients, using the best possible API.

Master Graphic Design & Software with Practical Projects

Conquer Popular Graphic Design Projects: Logo, Package, Magazine, Book Cover Design, Branding, Digital Graphics & More!

Created by Lindsay Marsh - 300,000+ Students | Graphic Design, Adobe, Affinity & More

"]

Students: 3256, Price: $119.99

Students: 3256, Price:  Paid

Master Graphic Design and Adobe Design Software By Doing Popular Design Projects

Do you like to learn by doing practical real-world projects? This project-based course is extensive, starting at beginner level projects and moving all the way to advanced level design projects. With over 10+ hours of video-based project learning this course was created to appeal to graphic design students of any level and can help expose students to all the most popular graphic design projects while learning software and design principles.

We talk about all aspects of design including theory, layout, color, exporting and preparing files for print, working with digital and print files and of course mastering the Adobe software including Adobe Illustrator, Photoshop and InDesign.

We will walk through step by step the creation of:

(Beginner Level Projects) 
Badges and Seals
Logo Design
Package Design
Magazine Cover and Spread
Youtube Thumbnail
Album Art Cover

(Intermediate and Advanced Projects) 
An Entire Branding Package which includes:

Logo Design
Poster
Large Welcome Banners
Lanyards
Postcard (front and back)
Social Media Graphics
Digital Ads
Client Presentations

We will complete a Package Design for a food project, including the front, back, labels and print preparation.

We cover Book cover design and we conquer three different types of book covers including a romance novel, a non-fiction book and an illustrative children’s book cover. We talk about what makes a solid book cover and follow basic layout principles, use grids, work with typography and learn how to create concepts that pop using examples as our guide.

We will conquer digital projects as well including going over what makes compelling YouTube cover photos and we will create a dynamic one together.

We even talk about creating digital art and as we create an eclectic modern album art cover.

Then, we master editorial design as we create a dynamic cover for a home cooking magazine as well as a full article spread. We talk about how to work with larger blocks of text, font pairing and headlines and how to maximize both Photoshop and InDesign to maximize our impact.

Last, but certainly not least we will have a 4+ hour advanced section for those looking for more detailed real-world projects. We will create from scratch the entire branding package for a conference including the Logo design, lanyards, posters, advertising, a digital marketing campaign, large format welcome banners and even a postcard.

This extensive section is perfect for those looking to learn how to export and work with files of all types, how to export, prepare and save them for professional print or for the press.

This section goes into an entire new level of detail that will satisfy those curious on how to take on real large-scale graphic design projects for clients.

This course is prefect for those who prefer a project-based hands on learning approach and for those who love to see all types of different projects being created. This course is great for those wanting to learn and maximize Adobe Photoshop, Illustrator and InDesign and learn tons and tons of new tools along the way that can speed up your workflow.

This course is great for beginners, advanced designers and everyone in-between, there is something for everyone, so let’s master graphic design by creating some fantastic and professional level projects together!

Software Design and Microservices

This course is about to design a highly available, fault-tolerant, secure and scalable distributed system.

Created by Ashta Bhuja Tripathi - Senior Backend Engineer @ FinAccel Technology

"]

Students: 2479, Price: $19.99

Students: 2479, Price:  Paid

In this course we will learn how to build a software which will be scalable, more secure and high available. We will discuss system design pattern by using an example of parking lot system which is asked in tier-A software companies. This course also includes OS concepts like concurrency, race condition and locking which will be used to design distributed system.

Software Design: Functional Programming in C#

Learn the principles of Functional Programming & how to apply them with the power of C# to improve software architecture

Created by Engineer Spock - Software Engineer - 1000+ Reviews, Average Score - 4.5

"]

Students: 1612, Price: $34.99

Students: 1612, Price:  Paid

Learn how to write C# code in a functional style. The “Functional Programming in C#” is for you if you want to improve your code, design and architecture. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.

Teaching Approach

 

No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth.

Take this course and you will be satisfied.

 

Learn Functional Programming in the context of clean coding and building types of high quality.

 

  • Get Deep Understanding of what is Functional Programming

     

  • Learn how to design Immutable types in C#

     

  • Apply new C# 6 and C# 7 features to write better code in a functional style

     

  • Learn how to Extend and Compose any Types

     

  • Handle Errors and Exceptions in a functional programming style

     

  • Tackle the Problem of Null-Values by the means of functional programming

     

Foundations of Functional Programming

 

Despite the fact that C# is primarily an object-oriented language, it is very powerful on features which enable functional programming style. In fact, C# is one of the richest on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. It's challenging to use all those features in a right way.

 

You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn't suck.

 

Owning skills of producing well-designed and well-implemented types with regards to functional programming principles.

 

Content and Overview

 

This course is aimed at all the C# developers, from beginners to seniors. Topics which are covered in the course are relevant for all kinds of C# developers since all developers design and implement types. The topics complexity is very different. There are plenty of very simple topics, and at the same time, there are topics which require from you a solid C# background. There are plenty of code examples throughout this course, so you will learn both theoretical and practical material.

 

  • We’re going to start with the theoretical foundations of the functional programming paradigm. You’ll learn what is Functional Programming and what are the benefits of applying that paradigm.

  • In the second section, we’re going to elaborate the core concepts of the functional programming. You’ll learn more about immutability, purity, side effects and expressions.

  • To write modern code in a functional style, you need to learn modern C# features appeared in C# 6 and C# 7.

  • We’re going to learn more about immutability in a separate section. This is a very important topic.

  • We’re going to learn how to extend types. You’ll see practical cases, you’ll learn about general extensions needed for functional programming.

  • After mastering the topic of types extending you will face the great problem of exceptions handling. Yep, it's a hard nut to crack. We will start from discussing a question of why we use exceptions as a mechanism of errors handling. And why C# team didn't invent any other mechanisms?

  • In the end, we will look at how to fight with null values. As you may know, Tony Hoar said that the invention of a null value was his billion-dollar mistake.

To sum up, the course covers the following topics:

 

  • Theoretical Foundations of Functional Programming

     

  • Core Concepts of Functional Programming

     

  • Functional Features in C#

     

  • Immutability in C#

     

  • Extendibility in C#

     

  • Dealing with Errors

     

  • Dealing with Nulls

     

------------------------------------------------------------

 

Keywords related to the course:

 

  • C# Clean Code

     

  • C# Best Practices

     

  • Functional Programming in C#

     

  • C# Functional Programming

     

  • Clean Code in C# tutorial

Bentley STAAD Pro – Structural Analysis & Design Software

Professional Learning of Analysis and Design of Structure form basic to advanced course

Created by SS eAcademy . - Learn Engineering Courses Online - On your Time

"]

Students: 1031, Price: $34.99

Students: 1031, Price:  Paid

STAAD Pro stands for Structural Analysis and design. STAAD Pro v8i Software is widely used in analyzing and designing structures – buildings, bridges, towers, transportation, industrial and utility structures.

Perform comprehensive analysis and design for any size or type of structure faster than ever before using the new STAAD.Pro V8i. Simplify your BIM workflow by using a physical model in STAAD.Pro that is automatically converted into the analytical model for your structural analysis. Share synchronized models with confidence for multi-discipline team collaboration and, most importantly, deliver safe, cost-effective designs.

Software Architecture and Design Essentials

Essential Concepts for Developers & Programmers who aspire to become Software Architects

Created by SeedACloud . - Principal Architect

"]

Students: 736, Price: $99.99

Students: 736, Price:  Paid

****** The course is regularly updated with New Assignments - Quiz for each Section ; Please watch for the updates ***************

This course will take you through every aspect of the software life cycle emphasizing on the significance of Architecture and Design .

One of the major activities performed by the development team is Requirement Analysis . This course provides a concise explanation of all the  activities performed during requirements phase '. Detailed lectures with illustrations , animations using real world examples provide the required depth of information covering the topics of Object Oriented Analysis .

************************************************************************************************************************************************

Dedicated lectures on Non-Functional Requirements /Quality Attributes  help you understand the considerations you must take during product/project development and prioritize accordingly .

************************************************************************************************************************************************

You will learn a variety of architectural styles covering the Tenets of all major architecture styles that are prevalent in the industry.

This course also attempts to demystify some of the confusions that exist between the usage of terminology and/or the characteristics of the architectures with appropriate examples and illustrations .

You will learn Layered , Tiered Architecture styles, the tenets of SOA , core attributes of Microservices , overview of Containers and the latest Serverless Architecture styles . You will gain knowledge on all required architectural elements that constitute the respective style.

************************************************************************************************************************************************

OOAD will no more be a tough concept after you go through the course ; this course enwraps all relevant concepts of the Object Oriented Paradigm , the Object Oriented Design Approach Guidelines and Principles . Visual Models that must be created and their benefits. All these with step-by-step modelling tutorial using real-world examples.

************************************************************************************************************************************************

Everything is by Design : You will learn Design Patterns , SOLID principles , Distributed Transaction Patterns , Structure Diagrams , Behavior Diagrams for the real-world examples discussed during Requirement and Architecture discussions .

This will provide you with a wholistic picture of architectural analysis and design. We will be working using a real world example (used across all sections phase wise) through each lecture one by one.

You will learn UML Modeling and together we will create design diagrams step-by-step.

************************************************************************************************************************************************

We have embedded real world code examples for all sections as appropriate.

************************************************************************************************************************************************

Design Patterns In Python OOP for Software Architecture

Design Patterns In Python OOP for Python Projects Software Architecture Using GoF Design Patterns System Analysis UML

Created by Suresh Kumar Srivastava - Founder, Sonebhadra Technologies

"]

Students: 485, Price: $89.99

Students: 485, Price:  Paid

This "Design Patterns In Python" course covers all 23 GOF design patterns with Python code implementation.

Why learn Design Patterns

  • Industry requires great software designers

  • Demand for Software Design Skill is high

  • For flexible and extensible software design

  • To enhance the Object Oriented Software design skill

  • To Develop/Understand the design of software product

  • Moving up in Technical ladder by having great tech skill

  • Well prepared for interview

Design and architecture of any software/solution provides the base and makes it flexible, extensible for future requirements. A good designed software/solution makes it easy to understand and maintain. Design patterns are known as best practices to design software for problems which are repeated in nature. 

This course is second one in my complete Python Design and Development course series-

  • Advanced Python : Take Your Python Skills To The Next Level

  • Design Patterns In Python Made Simple

This "Design Patterns In Python" tutorial gives you understanding of all 23 design patterns described in Gang Of Four book - "Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma, Helm, Johnson and Vlissides.

This Design Patterns through Python course covers :

Creational Design Patterns : Abstract Factory, Builder, Factory Method, Prototype, Singleton

Structural Design Patterns : Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy

Behavioral Design Patterns : Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor

Here is the course content-

  • Introduction to Design Patterns

  • Creational Design Patterns

  • Structural Design Patterns

  • Behavioral Design Patterns

In this Design Patterns using Python course, each design pattern is explained in a simple way with intent, problem, solution and structure. Also the information of participants, collaboration, consequences and code implementation are explained for each one. The design pattern structure or example implementation of Python source code are explained to understand how it will be implemented using Object Oriented features of Python. 

This Design Patterns with Python course also provides Python source code of each design pattern to understand it in better way. This helps in applying the variation on implementation to see how it can resolve some other implementation bottleneck. There are 125 quiz questions on Creational, Structural and Behavioral design patterns to check your understanding. 

I have used Free PyDev for Eclipse, you can use any Python IDE/Environment.

This "Learn Design Patterns In Python" online course on udemy will help to understand the best practices for design and apply them to do the better design of software projects/solutions in Python. It will also help you to prepare well for Design Patterns in Python interview questions. Knowledge of design patterns increases the capability to address interview questions of software design.

It will be good to have the Gang Of Four book - "Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma, Helm, Johnson and Vlissides as a reference book for this course. 

Design Patterns In Python free source code implementation is available in pdf to download.

What Students Say-

"Solid exposition of design patterns."

"The material is very clear so far and explained well."

So what are you waiting for, click on Buy button to enroll now and start learning.

Software Design Patterns Skills Test ( Interview Questions )

Software Design Patterns Interview Questions for Architecture OOP in C++ Python PHP Java Swift C# using design

Created by Suresh Kumar Srivastava - Founder, Sonebhadra Technologies

"]

Students: 391, Price: $89.99

Students: 391, Price:  Paid

This "Software Design Patterns Skills Test (Interview Questions)" course makes your understanding better on GOF software design patterns.

Design and architecture of any software/solution provides the base and makes it flexible, extensible for future requirements. A good designed software/solution makes it easy to understand and maintain. Design patterns are known as best practices to design software for problems which are repeated in nature.

This "Software Design Patterns Skills Test (Interview Questions)" course gives you opportunity to test your understanding of all 23 design patterns described in Gang Of Four book - "Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma, Helm, Johnson and Vlissides.

The practice tests are designed in way to test your understanding of Creational, Structural and Behavioral design patterns and makes the better thought process for software design.

Right now it has 170 questions to improve the design skill and will help in better understanding.

It will be good if you already know the software design patterns and gone through Gang Of Four book - "Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma, Helm, Johnson and Vlissides. 

SOLID Simplified – Software Design Fundamentals

A Comprehensive Guide for Software Developers and Aspiring Architects

Created by Seema Pradhan - Technical Trainer, Software Architect (former)

"]

Students: 352, Price: $19.99

Students: 352, Price:  Paid

- Have you found yourself losing interest mid-way on a book on software design that you once started with a lot of enthusiasm?
- Have you wished to strengthen your software design foundation but never found enough time to understand it in detail? 
- Have you struggled in understanding design patterns?

- Have you gone through SOLID principles but can not still clearly distinguish among them?

This course addresses all the above issues:

  • It is a 1.5 hours comprehensive guide delivered with crystal clear communication.  

  • The diagrams and the visual effects keep you focused and  interested throughout the course.

  • It is not just the speaker but also the content that talks to you! 

Here's some feedback from the course students:

"I took this course the night before an interview and it paid off. Was able to explain SOLID principles in OOP during the interview, and it made me look very good!  "

- "It's really an awesome course. Instructors approach of explaining consequences and solutions is very good and different situations has been explained."

-"This is an excellent course for SOLID principles with the real time examples. The way each and every principle explained is great"

- "I found this very useful, I tried another courses more focused on the concepts instead the examples. In this course I found both. Concepts and Examples. Very clear and well complemented with real life examples. Thanks!!"

- "The SOLID concept is very methodically exposed, with a lot of clarity, through very comprehensible and concrete examples..."

- "The simple and focused examples really help to understand the SOLID priciples and consequences of naive program development."

- "Great analysis of the principles..."

- "Crisp, clearly explains basics of SOLID."

- " Must for every developer. Very nice explanation with examples"

- "Very good and precise..."

- "Although I have had a fair idea about the Design Principles prior to this course, the simple and crisp presentation has only helped me in gaining a newer perspective"

Do not let the duration and colorful appearance of the training allow you to think that the content is not deep enough. In fact even the software architects and most experienced developers will immensely benefit as the training covers aspects of the SOLID principles that are not readily available. This also lays a strong base for you to understand design patterns as most of the design patterns are based on these principles.

Note this course needs you to have a prior experience in software development.

The training explains with a simple example and builds on it as you go deeper into it. Examples are not overly simple nor too complex - They have just the right balance to help you relate back to your project.

Join the course with a unique, never-seen-before content and delivery style!

Mastering Design Patterns and Software Design – Swift, iOS

Become a Pro in Software Design and Design Patterns by learning with real time examples and scenarios.

Created by El Edtech - Senior Software Engineer

"]

Students: 12, Price: $49.99

Students: 12, Price:  Paid

This is a practical course that equip with all you need in order to understand and use Design Patterns and Software Design skills to develop code which is flexible, extendable and maintainable. We will be learning the Design Patterns with visualisation of how each pattern works internally and implement each pattern with scenario based examples with step by step approach in Swift Programming.

We we be also looking at various key concepts of Swift, Objective C and iOS SDK to understand the inner workings and insights during various stages of course. You will get good confidence to crack senior technical interviews that relates to Design patterns and Software Design landscape. We also cover most of the Design Principles one should aware to write code which is reusable and robust.

You will be learning the Creational Design patterns for efficiently creating objects in a flexible way that increases the extendability and maintainability of the code. You will master the Singleton, Prototype, Factory, Abstract Factor, Builder and Object Pool patterns as part of the Creational Design Patterns.

You will be learning the Structural Design patterns for assembling classes and objects to create larger structures in a decoupled way that increases the extendability and maintainability of the code. You will master the Adapter, Bridge, Composite, Decorator, FlyWeight , Proxy and Facade patterns as part of the Structural Design Patterns.

You will be learning the Behavioural Design Patterns which identifies and establishes communication between objects in a flexible and loosely coupled manner. You will master Chain of Responsibility, Strategy, Template, Observer, Command, State, Visitor, Mediator patterns as part of the Behaviour Design Patterns.

You will be also leaning most common Software Design Core Concepts and Terminology that we use for Designing reusable, flexible and extendable Software Components in day to day life of Software Development.