Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice real-world skills and achieve your goals.
LATEST: Course Updated for Feb 2016
Now you can get the "Master Programmer Certification in OOP" from Eliminate Code Fear after completing the course. You must email the instructor once you complete the course and pass an online OOP test from their website.
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
(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 eliminatecodefear(dot)com. 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!
Not for you? No problem.
30 day money back guarantee.
Learn on the go.
Desktop, iOS and Android.
Certificate of completion.
How to make the most of this coursePreview
Download Source Code for Lectures
|Section 1: Introductory Principles in Object Orientation (Optional Prerequisite)|
Class and Object (Optional Prerequisite)Preview
Program Flow and Using Constructor (Optional Prerequisite)
Object and Class
Application Runtime (Optional Prerequisite)
Java Behind The ScenesPreview
Class Inheritance (Optional Prerequisite)
Application Runtime Quiz
Interfaces and Abstractions (Optional Prerequisite)
Abstract Classes (Optional Prerequisite)
|Quiz 3||5 questions|
This quiz will test your knowledge on Abstract Classes and Interfaces
Message From The Instructor
|Section 2: Object Oriented Design Principles (SOLID)|
Before starting this section of the course, I encourage you to watch the videos in the prerequisite section if you are not familiar with the basics of Object Oriented Programming in Java. There are 6 lectures there that cover difference between what an object is, and a class, the basics of Inheritance, Polymorphism, Interfaces and Abstract Classes.
Forming Associations Between Objects
Overview of Software Design
Make sure to watch the entire video and try the exercise before watching the next video that contains the solution.
UML Diagram - Single Responsibility
Single Responsibility - Homework
|Quiz 4||3 questions|
This quiz will test your understanding on the single responsibility principle
Open Closed Principle & STRATEGY Pattern
Open Closed Principle - Homework
|Quiz 5||2 questions|
This quiz will test your understand of the open closed principle
I wanted to cover this design principle next because I think it is more fitting to learning path we are following even though it's the last letter of the SOLID acronym. We also learn about the Template Method Design Pattern in the lecture. Make sure to watch the entire video and try the exercise before watching the next video containing the solution.
Visual Representation of Dependency Inversion: Click Here
Dependency Inversion & Template pattern - Homework Solution
UML Diagram - Dependency Inversion
|Quiz 6||3 questions|
This will test your knowledge of the Dependency Inversion Principle
Liskov Substitution Principle
Liskov Substitution Principle UML
|Quiz 7||3 questions|
This quiz will test your understanding of the Liskov Substitution principle
Interface Segregation Principle
UML Diagram - Interface Segregation
|Quiz 8||1 question|
This quiz will test your knowledge of the interface segregation Principle
|Section 3: Object Oriented Design Patterns in Practice|
Dependency Injection Part 1
Dependency Injection Part 2 (Using Spring)
Make sure to watch the entire video and try the exercise before watching the solution video
Observer Pattern - Homework Solution
UML Diagram - Observer Pattern
Coffee Shop Assignment (another application of the observer pattern)
Factory Design Pattern
UML Diagram - Factory Pattern
Singleton Design Pattern (Newly Added)
Comprehensive Assignment (Grand Daddy of assignments)
|Section 4: Course Extras!|
Automatically generate UML diagrams from java code TutorialPreview
Final Comments from Instructor
Bonus Lecture: Lifetime Access to All My Courses
I'm a passionate software consultant and programmer of enterprise software architectures. I've spent a considerable amount of time building financial software on Wall St. and worked for companies like S&P, Goldman Sachs, AOL along with helping various startups solve mission critical software problems. In my 13 years of experience, I've developed massive enterprise level software using programming languages like Java, C++, Python, PL/SQL and Ruby. I've learned many lessons along the way, and I hope to share this knowledge with aspiring software developers. I've always had a passion for teaching in seminars and corporations during my consulting projects. My online school Eliminate Code Fear gives me the opportunity to share my knowledge with students of all backgrounds and experiences across the globe! I'm really excited for this opportunity to bring to you real-world practical experience! Join my initiative and we'll work together to bring out the best programmer in you!