C# Intermediate - Part I (Mastering OOP)
Encapsulation, Inheritance, Abstraction, Polymorphism, Interfaces, Virtual and Abstract Methods, Real-life examples
Description
Object-oriented Programming can develop your abstract, associative and logical thinking, change your perspective of how you perceive processes, events, objects, subjects and immaterial concepts that you want to replicate in your applications. Creating an accurate model of complex business, ecological, biological, chemical, physical, philosophical or personal problems filled with appropriate interactions (methods) will produce reasonable solutions that can eventually change the world or improve your skills and virtues.
The course is mostly based on practical examples (you can see some of them in the first video that has a free preview) and that is understandable because OOP is allowing us to take any object/subject, investigate its meaning and interconnectedness to other objects and create virtual models of the existing concept(s). There could be more than one viable solution and the more intricacies and concepts you know, the better your programming architecture will be.
Knowing about encapsulation for example will make it impossible for unwanted side effects to take place in your application. Understanding when to use composition and inheritance is a vital skill towards creating your set of objects and their relations. Recognizing when to create one or two levels of abstraction and how to implement polymorphism are advanced skills that has to be integrated by the students. Differentiating between the advantages and disadvantages of using abstract classes and interfaces is another crucial point for the students. Deliberate thinking about SOLID principles, strong cohesion, loose coupling and dependency injections before finishing your architecture of classes is necessary to be done if the students want to develop adaptive applications.
Before we start making multi-tier applications a strong foundation of knowledge, skills and experience with solving simple tasks are necessary. This course is the second stepping stone towards achieving that goal.
I hope that my students will be benevolent toward each other in the Q&A section of the courses and be successful in their future career as a software developer (and engineer).
What You Will Learn!
- How the mankind developed the idea of OOP paradigm
- What data modeling is and how to improve your abstract and logical thinking
- Create the business/domain layer of a multi tier application with real-life examples
- Understand the four fundamental pillars of OOP – Encapsulation, Inheritance, Abstraction and Polymorphism
- Increase your software engineering skills with the knowledge of the SOLID principles
- Be prepared for interviews knowing the similarities and differences between abstract classes and interfaces
- Become aware of the intricacies behind the virtual, abstract, new, and sealed keywords
- Understand when and why to use static classes and methods
Who Should Attend!
- Anyone who has an interest in software development and particularly object oriented programming
- Students that finished my course "C# Fundamentals For Complete Beginners"