Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Programming Effectively in Python
Rating: 4.3 out of 5(31 ratings)
375 students

Programming Effectively in Python

From first-class functions to abstract base classes, tackle Python performance problems.
Last updated 1/2019
English

What you'll learn

  • Practice refactoring methods and get to grips with real-world scenarios
  • Refactor classes and objects by making them easier to understand, maintain, and more efficient
  • Implementing pattern-based refactoring
  • Make major progress by using third-party refactoring tools to speed up your refactoring work
  • Learn to use dictionaries in a smarter way to keep track of your application's state.
  • Save time writing custom subclasses by learning new data structures built right into Python.
  • Evolve into a seasoned Python developer with top Pythonic tips
  • Locate root causes by benchmarking and profiling your application
  • Make your apps run faster with parallel programming
  • Organize your code better using Object Oriented Programming

Course content

3 sections82 lectures8h 15m total length
  • The Course Overview2:40

    This video provides an overview of the entire course.

  • Benefits of Refactoring14:34

    This video is all about refactoring and its benefits.

    • Learn about clean code

    • Go through the DRY principle

  • Understanding Refactoring Principles8:48

    In this video, we will understand the refactoring principles.

    • Learn about PEP8

    • Action DRY: the rule of three

    • Refactor if it helps you understand

  • Overview of Refactoring Tools8:33

    There are a plethora of tools in Python that can help you refactor or write code cleanly the first time.

    • Learn about IDEs: Visual Studio Code, PyCharm, and Eclipse

    • Learn about Linters: Pylint, PEP8, and McCabe

    • Learn about Formatters: autopep8

  • Overview of Python Anti-Patterns6:21

    This video is an overview of Python anti-patterns.

    • Learn about Python anti-patterns

    • Learn about the playbook: spot the problem, fix the problem

    • Go through the types of Python anti-patterns

  • Various Types of Python Anti-Patterns9:07

    In this video, we will go through the various types of Python anti-patterns.

    • Go through the various types of Python anti-patterns

    • Go through misapplied OOP

    • Duplicate code

  • Playbooks for Removing Anti-Patterns8:25

    This video is about Playbooks for removing anti-patterns.

    • Separate the general and the specific

    • Keep it simple

    • Move features around

  • Refactoring Through Splitting Up Functions12:20

    In this video, we will be refactoring through splitting up functions.

    • Learn about Symptom

    • Learn why does splitting up the function helps

    • Refactor by hand

  • Refactoring Through Merging Functions6:05

    In this video, we will be refactoring through merging functions.

    • Learn about symptom

    • Learn why does splitting up the function helps

    • Refactor by hand

  • Replace Complex Expressions with Inner Function Calls6:06

    In this video, we will replace complex expressions with inner function calls.

    • Learn about symptom

    • Know what fix is needed

    • Learn why inner function calls help

  • Refactoring Through Local Variable Creation5:24

    In this video, we will be refactoring through local variable creation.

    • Learn about symptom

    • Know what fix is needed

    • Learn why local variables help

  • Assessing the Correct Class for Fields and Methods6:59

    In this video, we will be assessing the correct class for fields and methods.

    • Explore the four situations

    • Understand the results

  • Moving Functions Around Different Classes to Group Functionality5:30

    In this video, we will be moving functions around different classes to group functionality.

    • Move fields and methods

    • Create and merge new classes

    • Extracting common functionality into mixins

  • Refactor Delegate Classes to Remove Double Dependencies4:39

    In this video, we will refactor delegate classes to remove double dependencies.

    • Learn about Delegates

    • Know why to hide delegates

    • Hide Delegates

  • Removing Middlemen Classes to Reduce Needless Complexity5:17

    In this video we will be removing middlemen classes to reduce needless complexity.

    • Know what middlemen classes are

    • Remove middlemen classes

  • Introduction to Pattern Based Refactoring11:21

    This video is an introduction to pattern based refactoring.

    • Learn about Design Patterns

    • Learn about Creational Patterns

    • Learn about Structural Patterns

  • Using Encapsulation Methods for Refactoring7:07

    In this video, we will be using encapsulation methods for refactoring.

    • Look at a problem solution pair

    • Analyze the result

  • Removing Multiple Checks for None in Your Python Code5:34

    In this video, we will be removing multiple checks for None in your Python code.

    • Identify the issue

    • Create the Null object class

    • Use the Null object class

  • Python Refactoring Using Conditionals8:08

    This video is all about Python refactoring using conditionals.

    • Combine conditional statements

    • Replace conditional with subclasses

  • Using Rope, a Python Refactoring Library8:28

    In this video, we will be using rope, a Python refactoring library.

    • Know what a rope is

    • Understand what rope can do

    • Use features in rope

  • Using Codemods to Do Python Refactoring9:34

    This video will show how to use codemods.

    • Learn about codemods

    • Explore the features and options in codemods

  • Other Tools Available for Refactoring6:45

    We will explore the tools available for refactoring, in this video.

    • Learn about PyCharm

    • Extract methods

    • Create new modules

  • Test Your Knowledge

Requirements

  • A strong understanding of Python Programming is assumed.

Description

Python is an easy to learn, powerful programming language. If you're a developer who wishes to build a strong programming foundation with this simple yet powerful programming language Python, then this course is for you.

This learning path is your step-by-step guide to exploring the possibilities in the field of Go. With this course, you'll start with understanding the principles of refactoring, & spot opportunities by identifying code that requires refactoring. Also, you will be shown how to remove Python anti-patterns from your programs in simple steps. Next, you will learn how you can increase the speed & performance of your code with quick tips, tricks, and techniques for loops, data structures, object-oriented programming, functions, and more. Finally, after all this, its time to troubleshoot Python Application Development Quickly detect which lines of code are causing problems, and fix them quickly without going through lakhs of pages.

Contents and Overview

This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Refactoring Python Code starts with teaching you to resolve Python anti-patterns with techniques and methods to improve the design of your existing code. Tackle bugs by understanding the principles of refactoring, and learn to spot opportunities by identifying code that requires refactoring. We will also show you how to build test-driven processes to make refactoring easier. This course will show you how to remove Python anti-patterns from your programs in simple steps. We cover specific techniques for refactoring and improving the sloppy Python code. Take this course if you want to have a legacy Python code base with a lot of issues. Apply real-world refactoring techniques, and turn your code into clean, efficient, and maintainable projects.

The second course, Python Tips, Tricks, and Techniques will take you from a Python outsider to an insider. You will benefit from insights from the Python documentation, PEPs, and online developer communities to learn the ultimate Pythonic ways to tackle common programming patterns. This course covers tips, tricks, and techniques for loops, data structures, object-oriented programming, functions, and more, helping you work on ordered collections and key-value stores for dictionaries. You will be able to increase the speed and performance of your code while making it easier to debug. Start writing cleaner code for your applications and learn to organize it better in just 3 hours. No other course can transform every corner of your Python code. Take this course NOW and become an overnight Python rockstar developer. 

The third course, Troubleshooting Python Application Development takes you through a structured journey of performance problems that your application is likely to encounter, and presents both the intuition and the solution to these issues. You'll get things done, without a lengthy detour into how Python is implemented or computational theory. Quickly detect which lines of code are causing problems, and fix them quickly without going through 300 pages of unnecessary detail.

About the Authors:    

  • James Cross is a Big Data Engineer and certified AWS Solutions Architect with a passion for data-driven applications. He's spent the last 3-5 years helping his clients to design and implement huge scale streaming Big Data platforms, Cloud-based analytics stacks, and serverless architectures. He started his professional career in Investment Banking, working with well-established technologies such as Java and SQL Server, before moving into the big data space. Since then he's worked with a huge range of big data tools including most of the Hadoop eco-system, Spark and many No-SQL technologies such as Cassandra, MongoDB, Redis, and DynamoDB. More recently his focus has been on Cloud technologies and how they can be applied to data analytics, culminating in his work at Scout Solutions as CTO, and more recently with Mckinsey. James is an AWS-certified solutions architect with several years' experience designing and implementing solutions on this cloud platform. As CTO of Scout Solutions Ltd, he built a fully serverless set of APIs and an analytics stack based around Lambda and Redshift. He is interested in almost anything that has to do with technology. He has worked with everything from WordPress to Hadoop, from C++ to Java, and from Oracle to DynamoDB. If it's new and solves a problem in an innovative way he's keen to give it a go!

  • Colibri Ltd is a technology consultancy company founded in 2015 by James Cross and Ingrid Funie. The company works to help its clients navigate the rapidly changing and complex world of emerging technologies, with deep expertise in areas such as big data, data science, machine learning, and cloud computing. Over the past few years, they have worked with some of the world's largest and most prestigious companies, including a tier 1 investment bank, a leading management consultancy group, and one of the world's most popular soft drinks companies, helping each of them to make better sense of its data, and process it in more intelligent ways. The company lives by its motto: Data -> Intelligence -> Action.

  • Rudy Lai is the founder of QuantCopy, a sales acceleration startup using AI to write sales emails to prospects. After taking in leads from your pipelines, QuantCopy researches them online and generates sales emails from that data. It also has a suite of email automation tools to schedule, send, and track email performance—key analytics that all feedback into how our AI generates content. Prior to founding QuantCopy, Rudy ran HighDimension.IO, a machine learning consultancy where he experienced firsthand the frustrations of outbound sales and prospecting. As a founding partner, he helped startups and enterprises with HighDimension.IO's Machine-Learning-as-a-Service, allowing them to scale up data expertise in the blink of an eye. In the first part of his career, Rudy spent 5+ years in quantitative trading at leading investment banks such as Morgan Stanley. This valuable experience allowed him to witness the power of data, but also the pitfalls of automation using data science and machine learning. Quantitative trading was also a great platform from which to learn deeply about reinforcement learning and supervised learning topics in a commercial setting. Rudy holds a Computer Science degree from Imperial College London, where he was part of the Dean's List, and received awards such as the Deutsche Bank Artificial Intelligence prize.

Who this course is for:

  • This course is targeted at Python developers, software architects and senior software engineers, who use Python for their everyday work and build their applications and projects using Python ● .