We may earn an affiliate commission when you visit our partners.
Gerald Britton

Python is a popular programming language in the world today and that popularity is growing! Developing large, complex programs in Python requires more than just a knowledge of syntax. This course builds on the Design Patterns with Python.

Read more

Python is a popular programming language in the world today and that popularity is growing! Developing large, complex programs in Python requires more than just a knowledge of syntax. This course builds on the Design Patterns with Python.

At the core of professional programming practice is a thorough knowledge of software design patterns. In this course, Building More Python 2 Design Patterns, you'll learn eight more patterns and how to implement them in Python. First, you'll learn how to recognize problems that are solvable using design patterns. Next, you'll explore how to implement them professionally. Finally, you'll discover how they can be used to make your programs easier to write, read, and maintain. When you're finished with this course, you'll have grown your knowledge of the elements of reusable object-oriented software design that will help you as you move beyond simple scripts to complex systems built in Python.

Enroll now

What's inside

Syllabus

Course Overview
Introduction
Facade Pattern
Adapter Pattern
Read more
Decorator Pattern
Template Pattern
Iterator Pattern
Composite Pattern
State Pattern
Proxy Pattern
Summary

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops advanced principles of software design using Python, which is incredibly relevant in industry worldwide
Taught by Gerald Britton, who is recognized for his work in Python design patterns
Covers eight design patterns: Facade, Adapter, Decorator, Template, Iterator, Composite, State, and Proxy, which are essential for professional programming
Builds on Design Patterns with Python, which provides a solid foundation for this course
Assumes familiarity with software design patterns and Python programming, so may not be suitable for beginners
Requires learners to come in with extensive knowledge of object-oriented programming (OOP) concepts

Save this course

Save Building More Python 2 Design Patterns to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Building More Python 2 Design Patterns with these activities:
Review Python Syntax and Basic Concepts
Strengthen your foundation in Python syntax and concepts, which will help you better understand design patterns.
Browse courses on Python
Show steps
  • Review your class notes or an online Python tutorial.
  • Complete a few practice exercises to test your understanding.
  • Ask for help from a classmate or instructor if needed.
Read Head First Design Patterns
Gain a comprehensive understanding of design patterns and their applications in Python.
Show steps
  • Purchase or borrow a copy of Head First Design Patterns.
  • Read the book, focusing on the chapters that cover design patterns in Python.
  • Complete the exercises and examples provided in the book.
Learn the Basics of Design Patterns in Python
Reinforce your understanding of the fundamental concepts of design patterns and how they can be applied in Python.
Browse courses on Design Patterns
Show steps
  • Watch the first few videos of a Python design patterns tutorial series.
  • Complete any coding exercises or quizzes associated with the videos.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a Python Design Patterns Workshop
Gain exposure to different perspectives and best practices in design patterns.
Browse courses on Design Patterns
Show steps
  • Find a Python design patterns workshop that fits your schedule.
  • Register for the workshop and attend all sessions.
  • Participate actively in discussions and exercises.
Volunteer as a Python Mentor
Share your knowledge and reinforce your understanding of design patterns by helping others learn.
Browse courses on Design Patterns
Show steps
  • Find a volunteer opportunity where you can mentor Python learners.
  • Prepare a lesson plan that includes content on design patterns.
  • Meet with your mentee(s) regularly to provide guidance and support.
Implement Design Patterns in Practice Exercises
Solidify your understanding of how to implement design patterns by working through a series of coding exercises.
Browse courses on Design Patterns
Show steps
  • Find a set of Python design patterns practice exercises online or in a textbook.
  • Choose a few exercises to work on, starting with the easier ones.
  • Implement the design patterns in Python code.
  • Test your code to ensure that it works as intended.
Develop a Small Python Project Using Design Patterns
Apply your knowledge of design patterns to a real-world project, solidifying your understanding and practical skills.
Browse courses on Design Patterns
Show steps
  • Identify a small project idea that you can complete in a reasonable amount of time.
  • Design the project architecture using design patterns.
  • Implement the project in Python, applying the design patterns you chose.
  • Test and debug your project to ensure that it works as intended.
Write a Blog Post Explaining a Design Pattern
Deepen your understanding of a specific design pattern by explaining it to others in a blog post.
Browse courses on Design Patterns
Show steps
  • Choose a design pattern that you are familiar with.
  • Write a blog post that explains the pattern, its benefits, and how to implement it in Python.
  • Publish your blog post on a platform like Medium or LinkedIn.

Career center

Learners who complete Building More Python 2 Design Patterns will develop knowledge and skills that may be useful to these careers:
Python Developer
Python Developers specialize in developing software applications using the Python programming language. They may work on a variety of projects, from web development to data analysis. This course may be useful for Python Developers who wish to improve their skills in software design and architecture.
Backend Engineer
Backend Engineers design, develop, and maintain the back-end of software applications. They are responsible for the server-side logic, databases, and APIs. This course may be useful for Backend Engineers who wish to specialize in Python development and gain a deep understanding of design patterns for scalable and reliable back-end systems.
Machine Learning Engineer
Machine Learning Engineers develop and deploy machine learning models. They work on a variety of projects, from predictive analytics to natural language processing. This course may be helpful for Machine Learning Engineers who wish to gain a deeper understanding of design patterns for machine learning applications.
Web Developer
Web Developers are responsible for designing, developing, and maintaining websites. They may work on a variety of projects, from small personal blogs to large e-commerce sites. This course may be useful for Web Developers who wish to specialize in Python development and gain a deeper understanding of design patterns for scalable and reliable web applications.
Full Stack Engineer
Full-Stack Engineers work on both the front-end and back-end of software applications. They are responsible for the entire stack, from the database to the user interface. This course may be helpful for Full-Stack Engineers who wish to focus on the back-end of applications and gain a better understanding of design patterns for robust and scalable software.
Computer Programmer
Computer Programmers write and maintain the code that makes software applications work. They may work on a variety of projects, from small personal projects to large enterprise systems. This course may be useful for Computer Programmers who wish to specialize in Python development and gain a deeper understanding of design patterns for scalable and reliable software.
Software Architect
Software Architects create the overall structure and design for software systems. They ensure that the system is well-architected and meets the needs of the business. Most roles require at least a bachelor's degree in computer science, with many architects holding advanced degrees. This course may be useful for Software Architects who wish to expand their knowledge of design patterns for complex software systems.
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations teams. They are responsible for automating and streamlining the software development lifecycle. This course may be useful for DevOps Engineers who wish to gain a foundation in Python programming and design patterns for building and maintaining automated systems.
Software Engineer
Software Engineers often work with Python to design, develop, test, and deploy software applications. Roles in this job may require a bachelor's degree in software engineering or computer science. Advanced degrees are not typical, but may allow quicker advancement in some circumstances. This course may be useful for Software Engineers who wish to expand their knowledge of best practices and design patterns for Python applications.
Computer Scientist
Computer Scientists conduct research in the field of computer science. They develop new algorithms and techniques for solving problems in a variety of areas, including software engineering, artificial intelligence, and data science. This course may be useful for Computer Scientists who wish to gain a deeper understanding of design patterns for developing complex software systems.
Software Tester
Software Testers ensure that software applications are working as intended. They develop and execute test cases to identify bugs and defects. This course may be useful for Software Testers who wish to gain a deeper understanding of design patterns for testing complex software systems.
Data Analyst
Similar to Data Scientists, Data Analysts also work with data. However, their focus is primarily on data cleaning and preparation rather than complex modeling. Most roles require at least a bachelor's degree in a quantitative field, with a master's degree generally only being necessary for senior roles or those involving highly complex data. This course may be useful to Data Analysts who wish to gain a foundation in design patterns for more complex analyses and data architecture.
Data Scientist
Data Scientists use programming languages like Python to collect, analyze, and interpret large datasets. Many roles require at least a master's degree in data science, but some roles are available to those with a bachelor's degree. This course may be helpful for Data Scientists who wish to gain a deeper understanding of design patterns for data-intensive applications.
Quantitative Analyst
Quantitative Analysts apply mathematical and statistical models to financial data. The work often involves risk management and algorithmic trading. Most roles require a master's degree in financial engineering, quantitative finance, or a related field. This course may be useful for Quantitative Analysts who wish to gain a foundation in Python programming and design patterns.
Technical Writer
Technical Writers create documentation for software applications and other technical products. They explain how to use and maintain the product in clear and concise language. This course may be useful for Technical Writers who wish to gain a deeper understanding of design patterns for creating well-structured and easy-to-understand documentation.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Building More Python 2 Design Patterns.
This classic book on design patterns and valuable resource for anyone interested in learning about the topic. It provides a comprehensive overview of the 23 most important design patterns. is more suitable as a reference than a current read for this course.
Is regarded as an excellent beginner's guide to design patterns. It uses a conversational style that makes the topic more accessible. However, this book only covers a few of the most common design patterns, and it may not be as useful for those interested in learning about more advanced patterns.
Provides a comprehensive overview of object-oriented design principles and best practices in Python. good starting point for those who are new to the topic.
Provides a deep dive into the Python language. It valuable resource for anyone who wants to learn more about how Python works and how to use it effectively.
A comprehensive reference guide to the Python language. It valuable resource for any Python programmer who needs a quick way to look up information.
An excellent beginner's guide to Python. It is written in a fun and engaging style, and it teaches you how to use Python to automate common tasks.
Provides practical advice on how to write clean, readable, and maintainable code. It valuable resource for any programmer who wants to improve their coding skills.
Provides a practical guide to refactoring code. It shows how to identify and fix code smells, and how to improve the design of your code without breaking it.
Provides a practical guide to test-driven development in Python. It shows how to write tests that are effective and maintainable, and how to use them to improve the quality of your code.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Building More Python 2 Design Patterns.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser