
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Start from scratch, learn Python basics and programming concepts like functions and classes with object-oriented programming, OS-agnostic setup on Linux, macOS, and Windows, and build Python programs, no experience required.
Install Python 3.11 on Windows via the Microsoft Store, ensuring the version is 3.8 or newer, then verify the installation by checking the Python version in the terminal.
Download the macOS Python 3.11 installer, run it, accept the license, enter your password to install, and verify the installation in the terminal by checking the version.
Install Python 3.11 on Linux by adding the deadsnakes PPA, updating packages, and installing Python 3.11, then verify the installation with the version check.
Install Visual Studio Code on any operating system by downloading the installer and enabling add to path, then use the code command in the terminal to open projects.
Download the course code from GitHub as a zip or clone for reference. Open the repository in Visual Studio Code and navigate it with OS agnostic terminal commands.
Learn to create a Python course folder with mkdir, navigate with cd using relative and full paths, and clear the screen before starting Python files in VS Code.
Create your first Python program by writing a basics.py file and printing Hello, World with the print function in Visual Studio Code, then run it from the console.
Explore variables and data types in Python, learn how to check types, and master integers, floats, strings, date-times, booleans, and multiple assignment for practical programming.
Learn how Python handles numeric variable types, from integers to floats, using type() and print operations; explore formatting, run in terminal and VS Code, and understand a float precision caveat.
Explore non-numeric types in Python, including strings with quotes, concatenation, and line breaks; import date time, create date time values, print types, booleans, and the none type.
Master multiple assignment in Python by assigning two integers on one line using a comma, as in first_multi and second_multi with values 5 and 6, then print both.
Explore operators and conditionals in Python, including mathematical operators, conditional statements with if/elif/else, the walrus operator, and match case, to guide program flow.
Master Python math operators, including subtraction, addition, multiplication, division, floor division, modulus, and the power operator, with practical examples like 10 minus 5 and 10 divided by 5.
Explore conditional statements in Python, using operators like == and !=, and learn how to compare numbers and strings, apply not, and understand greater than, less than, and lowercase methods.
Learn to use Python's try and except to handle errors without stopping the program, showing how to place code in a try block and handle failures with an except clause.
Explore how if, elif, and else control Python logic by selecting code blocks. Demonstrate execution depends on true or false, using greater than and less than or equal to.
Explore the walrus operator in Python 3 foundations, demonstrating how to assign a value during an if check, with parentheses controlling evaluation and revealing false or true outcomes.
Explore Python's match and case statements to compare a variable against static values, including default and multiple typed cases, with practical examples using numbers, strings, and date strings.
Explore Python data structures, including lists, sets, ranges, matrices (lists of lists), dictionaries, and tuples, highlighting indexing, mutability, and dynamic typing.
Master Python lists by declaring and manipulating elements, accessing items by index starting at 0, and using append, pop, and remove to manage values.
Learn how to split strings on a delimiter to create lists, join lists with a delimiter, and use replace to clean data, with CSV parsing as a practical example.
Explore how to sort lists in Python using the sort method, printing original and sorted orders in ascending and descending (reverse=True) to understand list ordering.
Learn how to slice lists with a start index and an exclusive end index, including zero-based bounds, and explore the variadic 'splat' to clone a list.
Explore the variadic function, also known as the splat or spread operator, to unpack list values, create a true clone with [*list], and safely combine multiple lists in Python.
Learn to search and filter lists using max, min, and index; check presence with in; and filter with for-in to keep values greater than 3, preparing for sets.
Master using sets to deduplicate lists, obtain unique values, and print them in order; convert a set back to a list with the variadic splat, and test membership with contains.
Explore creating and using range objects in Python, including range(7) and range(3,7), with the upper bound not included, then convert to lists, extend lists, and sum ranges.
Learn how to work with matrices in Python by building a 3x3 matrix as a list of lists, access elements with two indices, and explore nested matrices.
Explore Python dictionaries by creating key-value pairs with curly braces, access values by keys, add and delete keys, and learn two declaration styles for building dictionaries.
Explore tuples, which are immutable lists defined with parentheses. See how deletion and item assignment fail, and learn why a single-member tuple needs a trailing comma.
Explore Python loop theory by mastering the for loop over iterables and the while loop, learn how to prevent infinite loops, and apply break and continue to control iteration.
Master the Python for loop by iterating over lists, calculating squares, filtering values with if statements, and capitalizing and joining words to form sentences.
Explore how the while loop replaces the for loop to iterate dates from a start date to an end date, advancing one day at a time with a time delta.
Learn how the continue keyword controls Python for loops by skipping to the next iteration, with a practical fast food menu example that handles garbage data.
Use the break keyword to exit a loop when the cart total exceeds ten dollars, updating the cart and total to show only affordable items like cheeseburger and fries.
Learn how the continue keyword affects loop iterations, handle garbage data by skipping problematic items, and build dictionaries from split strings to organize a menu dataset.
Write to a file in Python using the open function to create or modify text files, choosing write to overwrite or append to add lines.
Learn to read files in Python by opening the file, using read, and printing its contents, then flush and seek(0) to reread from the start.
Parse json strings with python's json module, convert them to dictionaries, and print the results. Then serialize dictionaries back to json strings with json.dumps and write them to a file.
Parse json from a file, load it into a list of dictionaries, and write a new json copy named random names copy.json, including the first dictionary.
Analyze json data to count first and last name occurrences using two dictionaries, and print name frequencies to the console before converting to csv in the next lecture.
Convert a json file to a csv by building a csv output string with headers first name and last name, then write to a csv file and view in Excel.
Dynamically convert JSON to CSV by deriving headers from the first JSON object. Build rows with dynamic headers, and apply quotes to handle commas in values.
Explore the theory of functions, create a basic function, pass arguments with positional, keyword, args, kwargs, and return, and delve into dynamic functions, callbacks, and decorators.
Define and run your first Python function using def, print hello world, and call it multiple times to see repeated output, with next lesson introducing function arguments.
Create a print arguments function that accepts messages and a should print flag, enabling default true behavior and conditional console output.
Learn how to use the return keyword to return the word count by splitting a string and taking the length of the resulting list, with optional printing.
Learn the args keyword in Python by turning a list-based sum into a dynamic argument function. Accumulate the total and prepare for the upcoming kwargs discussion.
Explore kwargs in Python, learn to pass data via a dictionary, and conditionally print show message or show new message based on keys.
Explore Python's / and * arguments to control positional and keyword passing, and work with dynamic parameter types through function calls using mixed positional and keyword arguments.
Explore dynamic functions that accept a callback as an argument, execute a root function, then call the callback, and learn about passing and returning functions across files.
Learn to return a nested function from a dynamic function, store and call it, and apply this pattern as a decorator in Python.
Explore lambda functions as anonymous callbacks in Python, demonstrating one-line limits, passing arguments, and using lambdas for simple tasks while preferring def for complex logic.
Learn how decorators in Python transform a dynamic function that takes a callback into a single decorated call, simplifying passing and invoking the callback, and previewing object-oriented programming.
Explore how classes encapsulate data and behavior, turning variables into attributes and functions into methods. Learn constructors with self, and study inheritance, super, overriding, and multiple inheritance.
Create your first Python class using the class keyword and define a class attribute. Use instances to share or override the attribute, and practice dot notation for access.
Explore Python constructors by implementing the __init__ method, understanding self, and initializing or dynamically adding attributes. Learn to use positional args and kwargs for flexible attribute assignment.
Explain how a class method uses self to compare a value with the numeric attribute, returning greater than, less than, or equal, and test with two instances via dot notation.
Learn how Python inheritance lets a child class access and modify behavior from a parent class, override methods, and keep initialization intact while preserving the original class.
Learn how the super keyword accesses parent class methods, calls the original method, and returns its result while extending with lowercase formatting and string concatenation.
Explore how multiple inheritance affects method resolution order in Python by using super calls, the mix in class, and first class inheritance to access methods and attributes.
Understand python modules theory, create and import your own modules, manage packages with pip and pie pie, and use virtual environments and freeze to generate a requirements file.
Learn how to split Python code into modules, move a class to a separate file, and import it using from module import or import, then instantiate and use its attributes.
Upgrade pip with python -m pip, install and use virtualenv to create a contained environment, activate it (macOS/linux use source, Windows use scripts/activate), then deactivate when finished.
Activate the virtual environment, install numpy with pip, and use pip freeze to capture installed packages into a requirements.txt file. Recreate the environment later by installing from that file.
Verify numpy installation by importing numpy as np, creating an array from a list, and printing the result in a virtual environment.
You've finished Python foundations and can start building real programs with NumPy, Pandas, and Matplotlib, plus web apps and APIs with Flask or Django Rest Framework.
If you are considering learning to program, this course will help you understand common programming concepts and one of the most popular programming languages.
The whole course also only uses resources that are available to all operating systems so that you can follow along from Windows, Linux or MacOS.
Why take this course?
There are a lot of Python courses our there, so why take this one?
While you may get sick of looking at me, studies have shown that being able to see someone while they are talking improves comprehension and understanding, which is why I will be in the corner of each video unlike most courses.
The Video and Audio quality of this course is high which will also make it easier to follow.
In this course we will put things in an order that makes sense, and focus on a complete understanding of Python basics.
Learning Path:
In this course we are going to start from nothing and build a strong foundation to prepare you to understand and work with the Python programming language.
Install and Getting Started
Variables
Operators and Conditional Statements
After we have a foundational understanding of how to write some Python code, we take our first steps to manage basic variables and create procedural programming logic
Data Structures
Loops
File Interaction
Once we have an understanding of procedural logic and workflows we can start making things more powerful and reusable with Functions and Classes
Functions
Classes & OOP
And finally after we have made our logic dynamic, we can also make our programs themselves dynamic by breaking up our code into multiple Modules, and talking about how we can add common modules to our projects
Modules
pip & virtualenv
If you are new to software development, congratulations on starting your journey to become a developer! I look forward to seeing you inside!