From Novice to Virtuoso: Mastering Object-Oriented Python in 3 Hours

vivek keshore (~vivek17)


9

Votes

Description:

Object-Oriented Programming is one of the most popular method of modern software development, yet it is one of the most misunderstood concept. Everyone knows the words and definition of popular words like Abstraction, Polymorphism, Inheritance, and encapsulation, yet very few can actually explain beyond book definition or implement these in real world scenarios. The objective of this workshop is to cultivate the Object-Oriented Design thinking, and eliminating all the misunderstandings around the Object-Oriented paradigm.

This 3-hour immersive workshop unveils OOP's significance, principles, design thinking and advantages through Python.

OOP empowers developers to conceptualise real-world entities as objects. This leads to modular, reusable code that can simplify the collaboration. Participants will be able to develop the object oriented design thinking and fundamentals of some of the object oriented principles. Properties, methods, and magic methods enable dynamic object manipulation, streamlining development. The workshop delves into these features, empowering participants to harness Python's potential.

The basic understanding of relationships among objects not only enables to develop a right design, but also makes it less error prone and becomes intuitive in later stages of development. As per my experience, the basic root cause of all fundamentally wrong design is not having clear understanding of all the different types of relationships that the objects have with each other. The workshop also aims to give a formula that will help in developing and implementing the right design.

Once the relationships are well understood, then the workshop will focus more on the advanced topics. The magic methods gives immense power to the developer that would bend everything as per will. The workshop will explore the power of magic methods, and demonstrate how these magic methods can be harnessed to unleash the unlimited potential, thats limited to only developer's imagination. The workshop will demonstrate the practical uses and implementation of class based decorators, generators, context managers and much more.

The workshop will eventually steer towards advanced, yet fundamental topic - SOLID principles. SOLID design principles are the cornerstone of robust design, form a pivotal part of the workshop. The workshop is designed to explain each principle with real life examples, implementation and hands on live coding.

In essence, this workshop merges theoretical understanding with practical skill development. By elucidating the demand for OOP, explicating its advantages, and delving into Python's OOP capabilities and SOLID principles, participants gain the expertise to construct intricate, adaptable software solutions effectively.

Workshop Details:

1. Introduction to OOP and its significance in software development. (30 mins)

  • Unveiling Python's core OOP concepts: classes, objects, methods, attributes, and more
  • Eliminating the misunderstandings around the words - encapsulation, abstraction, inheritance, and polymorphism
  • Thinking in Object Oriented way

2. Understanding Object Oriented relationships and design formula (30 mins)

  • Understanding various types of relationships
  • Formula for thinking/developing object oriented design
  • Real life examples and designing the scenarios live

3. Diving into OOP Features (60 minutes)

  • In-depth exploration of Python's OOP features
  • class based properties, class based decorators, class based generators, class based context managers, and more
  • Unleashing and realising the magic of magic methods
  • Abstract classes - The turbo engine of object oriented design.

4. SOLID design principles and implementation (50 minutes)

  • Embracing the SOLID principles for robust and maintainable design.
  • Practical case studies and real-world examples to reinforce design concepts.

5. Conclusion, Discussion and QnA (10 mins)

  • Peer review and discussion of the developed application, highlighting design choices and principles.
  • Revisiting all the Key Take Away points quickly like revision cards
  • QnA, suggestions and feedback from the participants.

Prerequisites:

Basic knowledge of Python.

Speaker Info:

I am a Python Enthusiast who loves building software applications and education related content. I am a technology professional and a passionate programmer with 11 years of experience in Python & Python related technologies. I am currently working as Architect at SenecaGlobal Inc, Hyderabad.

I have been involved with multiple professional projects in various industrial domains and technical fields. My expertise is in application development, data processing & analysis, data structures, & algorithms, various non-relational and relational databases, Python, Flask, FastAPI, Celery, RabbitMQ, Redis, Cassandra, AWS, Airflow, and various other tech stacks. I am also an open source contributor, and published self developed libraries on PyPI. I love creating libraries and various utility tools that help me in solving a challenge/problem that could also be used by others in the developers community.

My personal interest is in exploring new technologies, web application development, IoT systems, spread Python education, and read novels. I also write and share my thoughts occasionally on Quora and Medium.

Speaker Links:

Previous Proposals

  • https://in.pycon.org/cfp/2021/proposals/hows-the-job-title-quantum-computer-programmer~bmZQr/
  • https://in.pycon.org/cfp/2021/proposals/one-api-to-rule-them-all-config-based-development~en5rE/

PyPI Libraries

And many more in progress ...

Docker HUB

Rhinestone

Medium Articles (Published in NerdForTech and MLearning.ai)

https://vivek-keshore.medium.com

Github

Github

LinkedIn

LinkedIn

Section: Core Python
Type: Workshops
Target Audience: Beginner
Last Updated: