The Advanced Python Course: Build 10 Professional Programs

The Advanced Python Course: Build 10 Professional Programs

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 26 Hours | 11.9 GB

Learn Python from beginner to professional, building 10 real-world Python applications! The easiest way to learn Python!

Learning Python basics is as easy as spending a few days watching YouTube videos, but becoming a programmer means knowing how to put the pieces together and build programs used in real life. This course will take you from zero to making you a programmer able to create complete real-world Python programs from scratch.

What does the course cover?

You will start from zero, learn the basics, and go all the way to building your own Python programs in the object-oriented programming (OOP) paradigm – the paradigm that all professional programmers use to build large, real-world programs. You, too, will be able to plan, write, and deploy real-life Python programs after completing this course.

The course covers Python from scratch in a unique software-engineering approach. You will not simply learn to code a script. You will learn to plan and develop complete Python programs which can be used by real users. You will build 10 real-world Python programs using the object-oriented programming (OOP) paradigm throughout the course.

Apart from learning Python, you will also learn crucial programming skills such as using Git and GitHub, debuggers, software design principles, writing highly organized code, code planning, code refactoring, SQL databases, and more.

The material is packed with real-world examples on different topics such as generating PDF reports, controlling the computer webcam and the mobile camera with Python, taking photos automatically, creating rich web apps, processing images, extracting data via web scraping, sending automated emails, building REST APIs, and even creating your own weather forecast Python package. All that makes this course the most comprehensive Python learning package you will find out there!

Who should take this course?

Whether you are learning Python to automate tasks, data science, or web development, this course will teach you core Python thoroughly so you can easily apply your Python skills to any Python branch or industry field.

If your goal is to make simple throwaway one-time Python scripts, taking only the first half of the course would be more than enough. However, if you want to become a full-time programmer, you will need to take the entire course to learn the very advanced concepts, which are covered throughout the second half.

Do I need to know some Python to be able to follow this course?

No. This course is designed for both absolute and non-absolute beginners. The first part of the course covers Python basics in a way you haven’t seen in any other course.

What makes this Python course special?

Other courses cover Python from a superficial, syntax level. In this course, you will learn Python from a much deeper logical perspective. Don’t imitate! Understand!

Moreover, in this course, you will go through the entire program development process, from planning a Python program to writing it, testing it, and deploying it. The programs you will build in this course are not just one-time scripts but real applications that can be reused and scaled. We achieve that by building programs in the object-oriented programming (OOP) paradigm.

What is the OOP approach of programming that this course covers?

There are three approaches or paradigms to program with Python. They are the procedural, functional, and object-oriented programming (OOP) paradigms.

The OOP paradigm is the only one that will give you the skills to write clean and highly organized code, allowing you to plan and create sophisticated Python programs easily. Once you learn Python the OOP way, creating programs will be very easy, and this course will show how.

Even though you can write any Python program in any of the three paradigms, writing programs that are more than simple scripts in the functional or procedural paradigms will bite you back once the program starts to get larger. Therefore, the OOP paradigm is the paradigm that professional programmers use to make real-world applications. Moreover, when you learn OOP, you will naturally know the other two paradigms since OOP engulfs them.

In the course, you will learn a secret to plan and write any Python program easily, and that is only possible when you use OOP. All popular Python libraries and frameworks are written in the OOP paradigm, and to understand how they work, you need to understand OOP. So, if you want to go beyond making simple Python scripts, you need to learn Python the OOP way, and this course will teach you that.

What you’ll learn

  • Become a Python programmer even if you never programmed before.
  • Be able to build any program you want in Python.
  • Become a master of the OOP way of programming in Python.
  • Master all other necessary programming tools.
  • Build 10 real-world Python programs the OOP way.
  • Complete three major Python projects.
  • Learn how to plan your Python programs before writing them.
  • Write highly organized modular code.
  • Learn and apply software design principles when programming in Python.
  • Learn to troubleshoot code issues using debuggers.
  • Learn to use Git to track your code changes.
  • Get a deep understanding of how Python works under the hood.
  • Learn to polish your Python programs to make them ready for users to use.
  • Create weather forecast web maps with Python.
  • Generate PDF reports.
  • Create and manipulate images.
  • Control your computer and mobile camera.
  • Take photos from the computer or the mobile camera with Python and upload them to cloud services.
  • Build interactive web apps.
  • Send daily news by email and schedule automatic emails.
  • Build Python REST APIs.
  • Work with SQL databases.
  • Extract data via web scraping.
  • Learn to create desktop GUI programs.
  • Learn to create mobile apps.
  • Learn advanced core Python concepts such as class methods, static methods, abstract classes, etc.
  • Learn code refactoring.
  • Learn the PEP8 Style Guide for Python code.
  • Learn to create Python packages.
Table of Contents

Getting Started
Course Overview
Setting up Python and the IDE

App 1 The Other Side of The World S1 Python Types and Abstraction
The Other Side of the World
Abstracting Real-World Objects in Python
Contacting Your Instructor
Object Abstraction
Interaction Between Python Objects
Object Interaction
Difference Between Methods and Functions
More on Abstraction and Interaction
More on Interaction
Decision Making
Decision Making
Using Third-Party Objects
The Nine Elements of Python
Syntactic Sugar
Syntactic Sugar

App 1 The Other Side of the World S2 Creating New Types
Creating New Types
Creating a New Type
Creating One More Type
Adding a Time Method
Question Abstraction
Caution Case Sensitivity
Implementing the Time Method
Implementing the Weather Method
Adding a method
Class vs. Object
Instance Methods vs Class Methods
Instance Variables vs Class Variables
Accessing a Class Variable from a Method
Class Variables
Glossary Of Classes

App 1 The Other Side of the World S3 Inheritance
What Problem Does Inheritance Solve
Inheriting Methods
Inheriting Arguments
Displaying the Weather Forecast in a Popup Window
Inheritance FAQs

App 1 The Other Side of the World S4 Sequence Types
What Are Sequence Types
String Types
String Methods
Strip String
Fill String
Replace Character
Count Characters
String Magic Methods
String Formatting
String formatting
Class and String Formatting
Slicing Sequences
Slice First
Slice First Part
Slice Last Part
Slice Middle
Lists, Tuples, and Ranges
Practice Formatting the Popup Content
Extracting the Values for the Popup

App 1 The Other Side of the World S5 Iterating
Problem Statement
for Loops
Looping with Multiple Variables
Looping Over Houses and Paints

Tools & Techniques 1 Setting up PyCharm and Directories for the Next Apps
Section Introduction
Installing PyCharm on Windows
Installing PyCharm on Mac
Installing PyCharm on Linux
How to Use PyCharm
[IMPORTANT] File Resources and Python Libraries

App 2 Flatmates’ Bill S1 Planning Phase
Installing the Libraries for App 2
Preview of The Flatmates’ Bill App
Showcasing an App
Planning the App
Writing the Empty Classes

App 2 Flatmates’ Bill S2 Implementation Phase
Implementing the pays Method
PyCharm Tip
Generating a PDF Document
Implementing the generate Method
Polishing the Code
Adding an Image to the PDF Document
Changing the PDF Text Font
Automatically View a PDF File

App 2 Flatmates’ Bill S3 Building a User Interface
Three Kinds of Interfaces
Building a CLI – The Input Function
Implementing the Rest of the Input Functions
Organizing the Code
Organizing the Files

App 2 Flatmates’ Bill S4 Deploying the App (Optional)
What Does Deploying Mean
Setting up the Deployment Environment
Uploading the Project Files
Sharing the App
Feature Requests from Users
Uploading Files to the Cloud
Implementing the Change in the App
Uploading the Changes to Production

Exercise Retreat
Rectangle Object
Instantiate Rectangle
Add Perimeter
Call Time

App 3 (Project) Math Painter S1 Creating Images
Installing the Libraries for App 3
Preview of the Math Painter App
How Python Handles Images
Creating an Image out of Nothing
Drawing Shapes in the Image

App 3 (Project) Math Painter S2 Planning Phase
Planning the App
Creating the Empty Classes

App 3 (Project) Math Painter S3 Implementing the Methods
Implementing the Methods

App 3 (Project) Math Painter S4 Building the User Interface
Building the CLI Interface

App 4 Webcam Photo Sharer S1 Introductory App – Photo Searcher
Installing the Libraries for App 4
How the Introductory App Looks Like
The Four Main Objects of Kivy
Building the Frontend
Changing the Size of the Widgets
Setting an Image Dynamically
Getting an Image from the Web Given a Search Query
Downloading an Image from a URL
Implementing the Search Image Functionality
Best Coding Practices

App 4 Webcam Photo Sharer S2 Planning Phase
Preview of the Webcam Photo Sharer App
Designing the Frontend
Designing the Object Types
Creating the Empty Classes

App 4 Webcam Photo Sharer S3 The Camera Screen
Creating the Camera Screen
Starting the Camera
Stopping the Camera
L4 – Capturing a Photo from the Camera

App 4 Webcam Photo Sharer S4 The Image Screen
Building the Image Screen
Showing the Image in the Screen Image
Uploading and Creating a Sharable Link of the Image File
Implementing the Copy Link Button
Implementing the Open Link Button

App 4 Webcam Photo Sharer S5 Improving the Appearance of the App
Improving the Size of the Widgets
Changing the Color and Shape of the Buttons
Changing the App Background Color

App 5 Flatmates’ Bill Web App S1 Planning Phase
Installing the Libraries for App 5
What the App Is About
The Design of the Webapp
The Classes
Writing the Empty Classes

Exercise Retreat
Tip Don’t Hard Code

App 5 Flatmates’ Bill Web App S2 Implementation Phase
Implementing the Home Page
Completing the Home Page
Implementing the Bill Form Page
Implementing the Web Form
Implementing the Form Submit Button
Processing the User Data
Default Data for the Input widgets
Completing the Results page

App 5 Flatmates’ Bill Web App S3 Making the App Visually Appealing
Creating and Linking the CSS File
Completing the Visual Changes

App 5 Flatmates’ Bill Web App S4 Deploying the App
Deploying the App on the Python Anywhere Servers

App 5 Flatmates’ Bill Web App S5 App Improvements
Showing the Results Under the Form

App 6 (Project) Calories App S1 Planning Phase
Installing the Libraries for App 6
Preview of the Calories App
Planning the App
The Empty Classes

App 6 (Project) Calories App S2 The Web Scraping Part
Making a URL Request with Python
Extracting the Temperature Value from the Webpage

App 6 (Project) Calories Flask App S3 Implementing The Methods
Implementing the Calorie Class
Implementing the Temperature Class
Implementing the Flask Classes

Tools & Techniques 2 Writing Readable Code
What is the PEP 8 Style Guide
PEP 8 Guidelines

Tools & Techniques 3 Debugging a Program
Program Execution Phases Under the Hood
The Parsing Phase and Syntax Errors
Tracebacks with Multiple Errors
Debugging with Print Functions
Using the Debugger Tool
The Step Into My Code and Step Over Buttons

App 7 Automated Emails S1 Planning Phase
Installing the Libraries for App 7
Preview of the Automated Emails App
Planning the App
Writing the Empty Classes

App 7 Automated Emails S2 Getting News With Python
Getting All the News of Today
Getting News for Certain Dates
Getting a Particular News
Constructing a String of News Titles and Urls
Implementing the News Feed Class

App 7 Automated Emails S3 Sending out Emails
Preparing the Tools
Sending a Single Email
Sending Batch Emails
Dynamic Timestamps for Today and Yesterday
Running the Code at a Certain Time

Tools & Techniques 4 Code Refactoring
What is Code Refactoring
Refactoring Our Code

Tools & Techniques 5.1 Git What is Git
What is Git
The Benefits of Git Illustrated

Tools & Techniques 5.2 Git Working with the Local Repo
Creating a Git-Enabled PyCharm Project
Add and Commit
Commit History
Git Reset
Git Revert
Unversioned Files and .gitignore

Tools & Techniques 5.3 Git Working with the Remote Repo (GitHub)
Pushing the Changes to GitHub
Cloning a GitHub Repository
Using the requirements.txt File

App 8 Instant Dictionary Web App & API S1 Planning Phase
Installing the Libraries for App 8
Planning the App
Creating the Empty Classes

App 8 Instant Dictionary Web App & API S2 Implementing the Definition Class
Implementing the Definition Class

App 8 Instant Dictionary Web App & API S3 Interactive Webpage Frontend
What We Will Build
A Basic Webpage
Styling the Webpage
Adding More Components to the Webpage
Putting Components in a Grid
Handling Events
More Mouse Events
Using the Quasar Interface

App 8 Instant Dictionary Web App & API S4 Making OOP Web Apps
The Problem with the Current Project Structure
Making the About Page
Tip Inheritance vs. Composition
Making the Home page
Making the Dictionary Page
Time Bomb in the Code
Getting Output in the Output Div
Getting the Definitions in the Output Box
Getting Output Instantly

App 8 Instant Dictionary Web App & API S5 Making the Navigation Menu
The Goal of This Section
Making the Layout
Adding the Menu Items
Making a Default Layout class
Making the Routes Automatic
Creating an Abstract Class

App 9 Instant Dictionary API S1 Understanding an API
Installing the Libraries for App 9
Understanding an API

App 9 Instant Dictionary API S2 Building the API
Getting the Request
Definitions as API response
Returning a JSON Response
Writing the API Documentation

App 9 Instant Dictionary API S3 Using the API
Using the API

Tools & Techniques 6 Databases
What is a Database and Why Use it
Creating a Database and a Table in DB Viewer
Adding Records in DB Viewer
Creating a Database Table with Python
Inserting Records to a Table
Selecting Records
Updating Records
Deleting Records
Query Parameters

App 10 (Project) Cinema Booking App S1 Planning Phase
Installing the Libraries for App 10
Preview of the Cinema Booking App
Planning the App

App 10 (Project) Cinema Booking App S2 Implementation Phase
The Empty Classes
The Complete Code

App X (Bonus and Optional) Creating a Weather Forecast Package
Demo of the Package
The Library Structure
Preparing the Input Data
Creating the Weather Class
Getting Weather Forecast by Coordinates
Raising Errors When Arguments Are Not Passed
Cleaning the Data
Providing Simplified Weather Data
Raising Errors When Data Are Incorrect
Adding Docs to Your Library
Preparing and Testing the Library
Uploading the Library to PyPi
Making and Uploading a Package Change