
Mastering python from scratch introduces two types of numbers, integers and floats, with examples like 1.5 and 102.5, and explains arithmetic as addition, division, floor division, modulo, and hash comments.
Explore python numeric types and arithmetic, including augmented assignments and the order of operations, then print variables and use input to capture user values.
Explore Python strings, learn to create strings with quotes, concatenate first and last names with a space, repeat strings by multiplication, and define string variables like a message with hello.
Master Python strings by using zero-based indexing, negative indices, and slicing with start, end, and step to extract precise substrings.
Master python lists from scratch by learning indexing, slicing to access items, reversing, counting occurrences, popping, appending, inserting, and distinguishing between aliasing and full copies.
Explore Python lists through copying, appending, and combining with plus; learn list comprehension to transform ranges and filter even numbers.
Explore how to use Python sets: create sets with literals or set(), remove duplicates, and perform intersection, union, difference, and symmetric difference. Iterate over sets with for loops.
Define functions with parameters and default values, print messages inside, document with a docstring, reveal help text, and return values using the return statement.
Explore Python modules and reuse functions across scripts by importing modules or using from import; access functions via module.name and discover contents with a function named Josh.
Explore Python built-in functions for collections, including lists, dictionaries, and sets, and learn operations like max, min, sum, pow, range, len, round, eval, and slicing with start, stop, and step.
Learn a Python project that uses divide and conquer and binary search to guess a number by repeatedly choosing the list center and halving based on feedback.
Build a Python converter project to turn numbers into words by using division and modulus to extract millions, thousands, and hundreds, then map values with a numbers dictionary.
Rename, replace, and remove files and folders using touch to create new files, write and read content, and inspect file properties such as name, suffix, stem, and timestamps.
Learn to interact with the file system by creating files with loops and list comprehension, and search for files using glob, filtering by extensions and recursively listing results.
Learn to manipulate the file system with shuttle: copy, move, rename, and remove folders and files; create and extract archives; check disk usage.
Explore web communications in Python by performing GET and POST requests with the requests library, building query strings and parameters, handling responses, and posting data to APIs.
Learn how Python handles errors with exceptions, using try, except, else, and finally to manage issues like syntax errors, division by zero, and file not found, with custom messages.
Create and edit environment variables on Windows with user and system scopes, set email_address and email_password, and restart Jupiter Lab for changes to take effect across Windows, Linux, and macOS.
Set Linux environment variables by editing the .bash file, exporting email and password, and test them with Python using os.environ.
Discover how to create macOS environment variables via the terminal: edit your profile, export the variable, reopen the terminal, and access it in Python with os.environ.
Learn to fetch environment credentials in Python using os and environ.get, then send Gmail messages with yagmail after configuring Google settings.
Parse and validate command-line arguments in Python, set defaults for timeout and options, handle conversion errors, and compute start time and timeout with datetime during script execution.
Build and debug a Python backup script, parsing command-line options -C, -R, and -E while validating source and destination paths. Explore log handling, case sensitivity, and behavior with varying arguments.
Extract and identify source files and folders, then build the destination path by joining path segments with forward slashes to complete a backup workflow.
Create nested directories when they do not exist by setting the parents flag to true, then copy files to the destination and optionally compress the directory into an archive.
Define two classes, student and course, with a maximum capacity and a student list; add students only if space remains, reject the third, and iterate to show enrolled students.
Explain how class variables differ from instance variables, show accessing and modifying them via the class name versus an instance, and discuss protecting the class variable from unintended changes.
Demonstrates class inheritance by overriding the salary raise attribute in an engineer subclass, using super to pass parameters, and overriding a method to apply a raise, with an accountant example.
Install Mongu, connect to a MongoDB Atlas cluster, define a student document class, and perform CRUD operations on documents using that class; next, explore document queries.
Explore a wide range of field types in MongoDB documents and learn how arguments like max length, required, default, and unique shape data validation and defaults at creation.
Explore querying documents in MongoDB by defining a student schema, creating a students collection with first name, last name, and email fields, and iterating over results to display formatted output.
Master basic MongoDB queries using equality operators to match first or last names, and refine results with not, less than, less than or equal, and greater than or equal conditions.
Query documents in MongoDB with aggregation and conditions; learn last element indexing, averages and sums, and filter by grade greater than or equal to 90 and name contains.
Explore document relationships in MongoDB within mastering python - from scratch, including cascade delete between employee and employee profile, and querying courses by name to retrieve student names.
Explore the student and courses project in Python: manage students, create and find by email, update and delete records, and list or search courses by maximum students.
model a student document in Mongo Engine with an embedded grade, including first name, last name, and unique email, plus a course reference and indices.
Master Python basics with map and enumerate to apply functions and add a counter; learn lambda, *args, **kwargs, and the __name__ == '__main__' check.
Define functions with a variable number of arguments using *args and **kwargs, and demonstrate keyword arguments and basic command line argument handling.
Explore controlling Python script execution with the main guard if __name__ == '__main__', distinguishing running from importing, and use breakpoints to verify __name__ behavior.
Explore iterators, generators, and decorators in Python, learning how __iter__ and __next__ control iteration, how yield enables generators, and how decorators add functionality to functions.
Master the basics of python logging, covering levels such as info, warning, error, and critical, configuring basicConfig, and using getLogger and handlers to format and route logs.
Create an advanced logger with file and stream handlers, set the debug level, and apply a formatter to log date, time, logger name, and messages to both file and console.
Explore creating and starting threads with threading and concurrent futures, pass arguments to functions, use dictionary comprehension, and join threads while measuring execution time for Python tasks.
Explains how to implement threading and multiprocessing for squaring list elements, using a multiprocessing manager and context managers to share a list between processes and print results.
Create and run multiple asyncio tasks to execute routines concurrently using await, time out, and canceled tasks, then attach callbacks to observe results in the event loop.
Explore asyncio-driven file downloads and saves, creating concurrent tasks, awaiting responses, and timing improvements. Demonstrates refactoring to return responses and measure time for concurrent downloads and saves.
Explore PySimpleGUI file and folder dialogs, including get file, save as, get folder, and a vertical progress bar with a cancel button and a stop flag.
Learn to build a PySimpleGUI interface with a window layout of inputs with keys and two buttons, read values from the dictionary, and update text in an event loop.
demonstrates how to customize PySimpleGUI interfaces with color themes and element sizes, build complex layouts with dynamic spacing, and generate multiple input boxes efficiently using layouts, windows, and event handling.
Build web apps with python using flask, define routes with decorators, and render templates with jinja. Style with bootstrap, manage dynamic content via render_template, redirects, template inheritance, and forms.
Learn to inspect web pages with Chrome dev tools, identify and manipulate elements like anchors, lists, and images, and adjust image sources and sizes using HTML attributes.
Build responsive layouts with bootstrap’s 12-column grid, containers, and screen-size classes, then style columns using inline CSS, margins, and padding to enhance front-end design alongside Flask.
Create a basic Flask app with a home page at / and a parameterized page, run in development with auto-reload to reflect code changes instantly.
Use publish to save in folders and integrate with the template and static assets, copy index and assets, and refresh to display the site correctly.
Build a Flask web app from scratch, connect to Atlas via MongoEngine, and store subscriber data (name, email, phone) using render template, redirect, and request.
Develop a Flask web app that collects subscriber data through a post form, validates inputs, saves to the database, and redirects to the list view after creation.
Explore a Flask app workflow to retrieve a subscriber, prefill a form for edits, handle get and post requests, and implement delete via an anchor link with redirect after updates.
Design a PySimpleGUI interface to back up a source folder to a destination, with options to create a folder, select extensions, compress the archive, and build a script executable.
Implement a GUI backup workflow by validating source and destination folders, handling empty directories, prompting for deletion, and reacting to user actions like cancel or OK to clear or proceed.
Build a Flask web app connected to a database, using a data service as the interaction layer, and create subscriber, publisher, and borrowing models with WTForms forms.
Build a Flask bookstore app by defining subscriber and book models with fields: first name, last name, email, ssn, and a borrowing history foreign key; add validators and library pages.
Explore building a Flask bookstore web app feature that lists publishers with pagination, fetches data via a data service, orders by name, and renders templates while debugging model definitions.
Apply pagination in a Flask bookstore web app project, fetch four books per column, iterate through each book, and fix template variable names to ensure the list displays correctly.
This part implements a get all publishers function, populates a publisher select field with id and name, and guides creating a book with a comma-separated authors list and validation.
Disable the select field validation to permit submission, fetch publishers via the data service, and use the publisher id to retrieve the publisher and author when creating a book.
Python is the fastest-growing programming language in the industry, and among the most popular programming languages in the world.
It's not a hard language for beginners to pick up and for intermediate or advanced programmers to advance, which is why the need to learn this language has increased exponentially over the past few years.
Mastering python - From Scratch is designed as a journey that will take you from installing the programs to learning the fundamentals of python and gradually applying the most advanced techniques to develop some of the most advanced real-life applications.
Whether you are a beginner with no knowledge in python or programming, or if you're an experienced programmer in a different programming language, or even if you're an experienced python programmer,
this course will give you the basics and move forward to the more challenging applications in Python to help you broaden your horizons in Python, or if you'd want to expand your career opportunities.
My name is Yasser Abbass. I'm a software engineer and I will be your instructor for this course
I have been in programming for the past 30 years and specifically in python for the past decade.
Mohammad: "Yasser is by far one of the best instructors I had opportunity to learn from. I highly recommend this course for any beginner. Every Topic is in depth. Many Projects and Practices. Thank you so much Yasser!!!"
The course is divided into four sections, each including several lectures. with each lecture, you will find some exercises and each section has one or more projects that will make sure that you applied what you have learned. we will be building 10 projects with varying levels of difficulty.
Some of the projects we will be building together are:
- Text to Speech.
- Guessing Number project.
- Converter project.
- Web Monitoring.
- System Health.
- Backup Script project.
- A student course management system.
- A bookstore management system.
- A File backup program that will be converted to a desktop application.
- A full bookstore web app.
But don't worry you will be able to create those projects and more as you follow along with the course and with the skills you learned you will be able to apply it to your projects. You will also be able to download all the source code for all the lectures and the projects.
During this course, you will learn:
- How to install the software on Windows, Mac, and Linux.
- An introduction to Jupiter-lab.
- Data types, Conditional logic, looping, and collections.
- Functions, modules, and built-in functions.
- How to handle files.
- How to interact with the file-system.
- Date-time, web communication, exception handling, and JSON.
- How to send emails through python.
- Object-oriented programming.
- How to use MongoDB from python.
- How to create databases with full CRUD operations
- Advanced python built-in functions.
- Iterators generators and decorators.
- Logging.
- Concurrency, threading multiprocessing, and Asyncio.
- How to create a GUI for python with PySimpleGUI.
- How to create a desktop application with PyInstaller.
- How to create professional web apps with flask.
Vikash: "Trust me, this is everything you will be needing."
Finally, if you are stuck you can drop a question in the Q&A, and I or one of my teaching assistants will answer you promptly