Beyond Basic Programming – Intermediate Python

Beyond Basic Programming – Intermediate Python

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 3h 09m | 464 MB

Take your Python skills to the next level. Learn how expert programmers work with code and the techniques they use

So you have taken an initial programming course or have learned the basics on your own. However, when you look at other people’s code, or listen to their discussions, you see many concepts that seem alien and that you don’t understand. So, the question is: How do you go from a novice programmer to an expert? How do you become a professional?

This course answers this question. In it, we will build on top of your existing basic understanding of the Python language (and programming in general). We will cover concepts that will take you to the next level of programming expertise. These will include language constructs that are typically not covered in a beginner-level course—concepts such as generators, decorators, callbacks, higher-order functions, context managers, and more.
We will also discuss some tools that are not difficult but are essential to the life of a professional programmer. An example of this is logging for tracking down bugs, a simple technique that is used in all production-level software but is never touched upon in typical programming courses. We will discuss parallel programming, multi-threading, and synchronization issues—another important concept you must understand to code in a production environment. We discuss these through a case study to explain WHY you need them as well as HOW to use them.
Closely related to this, a highly important concept in today’s programming practice is the idea of asynchronous programming, more commonly known as asyncio. Python and JavaScript, two of the most influential languages in today’s development, are heavily focused on this new paradigm and we will cover this in a very intuitive, easy-to-understand manner.

For all concepts, this course is designed into a case-based teaching and Problem-based Learning approach and explains why we need the concepts we’re using and how everything fits together.

What You Will Learn

  • Cross-cutting tools (logging and testing)
  • Caveats in using lists
  • Intermediate Python concepts such as decorators, generators, and context managers
  • Parallel programming, multithreading, synchronization, and locks
  • Asynchronous programming (asyncio) and data plotting
  • Regular expressions (and how to avoid headaches when using them)
Table of Contents

01 Welcome And Introduction
02 Environment Setup and Jupyter Notebook
03 Logging (and how to debug code in realtime)
04 Testing and Test Driven Development (TDD)
05 Testing Examples
06 List Mutability and Deep Copying
07 Generators and Memory Efficiency
08 Generators Case Study
09 Higher-Order Functions
10 Callbacks
11 Decorators
12 Decorator Case Study – Memoize
13 Context Managers
14 More on Context Managers
15 Multithreading – Multiple Tasks Simultaneously
16 Synchronization Issues and Locks
17 Asynchronous Programming (Asyncio, Async_Await)
18 Basics of Functional Programming, Map
19 Filter and Reduce, Rationale for Functional Programming
20 Plotting Intro
21 Plotting Case Study
22 Pattern Matching with Regular Expressions
23 Modular RegExp (and How Not to Have Headaches with RegExp)
24 Extracting Matched Strings with RegExp