TAKE 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.