Welcome to our Design Patterns & SOLID Principles course, developed with Java programmers in mind! We launched the course back in 2020 but are continually checking and updating the coursework as we go along. Our course will help you understand and discover the Design Patterns created by the Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides) who wrote the book “Design Patterns: Elements of Reusable Object-Oriented Software”.
Design Patterns are general solutions to problems that appear over and over again in complex applications. Whether you are familiar with the topic and need a recap, or are starting your programming studies, this course is for you. With a brilliant look at the theory of this topic, the course also brings a practical element into it whereby you can test your own programming skills through our Eclipse projects. Understanding Design Patterns gives you a broad catalogue of general solutions to tackle even the most complicated programming tasks, which have been discovered, analysed and described in detail by the Gang of Four in their book.
What are Design Patterns?
Design Patterns are identified as 23 general, repeatable solutions to problems that we are likely to come across as a programmer and were developed by the infamous Gang of Four. They are divided into 3 main categories: creational, structural and behavioural. We take a look at each of these patterns and explain them in an easy to follow manner, explaining how they can be used to elegantly solve problems while complying with the requirements of encapsulation, extensibility and other factors that a professional design requires.
What are SOLID Principles?
SOLID Principles are perhaps the best-known set of principles to assess the quality of an object-oriented system. They help us detect bad smells in our code and create clean architectures. Examples of these principles include the Open / Closed Principle and the Liskov Substitution Principle. This course will highlight to you what a beautiful and essential part of programming they are. Hoping they come in handy and change your perception even of your work.
Our course program:
Each of our lessons takes you through the theory of a pattern or principle with concise and clear explanations, getting straight to the point. We have created practical exercises via 18 Eclipse projects for you to test your understanding, which comes with an automated correction system. Internalizing the theory through these exercises is fundamental to learning and improving our code writing skills. As well as this, at the end of each section, there is a short quiz for quick-fire checking of your knowledge!
As our students come from all over the world, we have developed subtitles in both English and Spanish to assist with the learning experience. We intend to give our students the best support they can get while taking our course; therefore, we are always on hand to answer any questions via the Q&A tab and message board.
Summary of what our course includes:
– Easy to follow presentations covering Design Patterns & SOLID Principles
– Downloadable PDF of the presentation
– Practical exercises via Eclipse projects with an automated correction system
– End of section quiz
– Subtitles in English (UK & US) and Spanish
If you’ve been looking for an opportunity to improve your code-writing skills, this is the right course for you!
✓ Understand the Design Pattern concepts set out by the Gang of Four
✓ Learn the theory of SOLID Principles
✓ Practice what you have learned with 18 Eclipse projects with exercises and automated correction system
✓ Identify bad smells in software design & architecture
✓ Create high quality standards for your applications with regards to flexibility, maintainability and elegance
✓ Favor composition over inheritance
✓ Enrich your design skills and become an overall better programmer
✓ Master a transferrable skill applicable to all object orientated languages such Java and popular frameworks like Spring or JPA
✓ Learn to confidently write well-designed code using concepts that are widely recognised in the community
✓ Master the use of encapsulation and composition to build simple solutions to complex problems
• Basic knowledge of object-orientation
• The examples are in Java. Although it is not essential, you will get more benefit from the course if you have basic notions of the Java language
• Desire to build professional solutions!
Domingo Sebastian has created 8 courses that got 3,971 reviews which are generally positive. Domingo Sebastian has taught 18,554 students and received a 4.5 average review out of 3,971 reviews. Depending on the information available, we think that Domingo Sebastian is an instructor that you can trust.
Computer Engineer from the Universitat de les Illes Balears (UIB), university expert in Lean & Agile Project Management and Java SE 11 Oracle Certified Professional.
I have been working as an analyst and programmer in different organizations since 1998. I got hooked on Java while it was still version 1.1 and have not given up on it since.
I have more than 10 years of experience in training Java, JEE, databases, application servers and development tools.
Ingeniero en Informática por la Universitat de les Illes Balears (UIB), experto universitario en Lean & Agile Project Management y programador certificado en Java.
Llevo desde 1998 trabajando de analista y programador en distintas organizaciones. Me enganché al Java cuando aún estaba por las versiones 1.1 y ya no lo he abandonado desde entonces.
Tengo más de 10 años de experiencia en formación de Java, JEE, bases de datos, servidores de aplicaciones y herramientas de desarrollo.
Aunque cada vez dedico más tiempo a la docencia, mi trabajo principal es la de desarrollador. Esto me da más libertad a la hora de desarrollar mi formación.
Esta libertad la he usado en el diseño de mis cursos: no necesito ser esclavo de los “x puntos para colocar tu curso en la lista de más vendidos”.
Estos son los 5 puntos básicos que sustentan mis cursos:
1- No prometer imposibles: Nada de cursos “de 0 a experto en …”. No devaluemos la condición de experto. No se consigue en un curso. Un buen curso puede ahorrarte muchas horas de trabajo y ayudarte a crear una buena base sobre la que avanzar. Pero la excelencia en una área o tecnología solo la conseguirás con muchísimas horas de trabajo, cuando te hayas visto involucrado en muchos problemas reales y leído y aprendido de muchos expertos diferentes. Espero ayudarte en tu camino, pero no vas a recorrerlo todo en un curso.
2- Los fundamentos primero: Todas las tecnologías, por muy amplias que sean, tienen una base sobre la que se asientan. Nuestra competencia profesional y nuestra capacidad para mejorar depende mucho más de nuestra compresión profunda de esta base que no de los adornos más vistosos que logran los “ooohs” en las demos. En la elaboración de mis cursos, gran parte del esfuerzo está puesto en identificar estos fundamentos y desarrollarlos de la forma más clara posible. Los adornos quedan en segundo lugar. Quiero que salgas del curso con una base que te permita entender no solo como programar algo, sino por qué se hace así. No debes solo “usar” una tecnología, sino “pensar” como ella.
3 – Profesionalidad: Soy profesional de la programación y disfruto con ello. También supongo que mi alumno es, o está en camino de ser, profesional. Sabe que no va a convertirse en experto en un tema ni en una semana ni en cinco. También exige a los cursos que lo que se le explica, aunque por necesidades didácticas tiene que mostrarse en ejemplos simples, debe ser profesional: debe escalar y ser eficaz en aplicaciones con miles de clases, cientos de miles de usuarios y complejas reglas de negocio.
4 – Simplicidad: La simplicidad es uno de los conceptos más engañosos que existe. Richard Branson los expresó muy bien: “La complejidad es tu enemiga. Cualquier tonto puede hacer algo complicado. Lo difícil es hacer algo simple”.
Soy fanático de esta idea. La impresión final que busco es: “Vaya, pues eso que pensaba que era tan complejo al final no lo es tanto!”, y la tengo en mente durante todo el proceso de creación del curso.
5 – Respeto por tu tiempo: No hacer el curso “cuanto más largo mejor”. No repetir contenido innecesariamente ( sí puede ser necesario repetir, con variaciones, un concepto muy importante). No añadir música de inicio y fin en cada video ni demostraciones que no aportan nada. El tiempo es valioso. El alumno hace un gran esfuerzo para seguir un curso online y debe respetarse al máximo.