Corey Schafer — Channel Summaries — Page 2
AI-powered summaries of 140 videos about Corey Schafer.
140 summaries
Python Quick Tip: The Difference Between "==" and "is" (Equality vs Identity)
In Python, the difference between `==` and `is` comes down to what gets compared: `==` checks whether two values are equal in content, while `is`...
Python Tutorial: Namedtuple - When and why should you use namedtuples?
Namedtuples offer a practical middle ground between plain tuples and dictionaries: they keep tuple behavior (including immutability) while making...
Python Tutorial: AsyncIO - Complete Guide to Asynchronous Programming with Animations
AsyncIO in Python delivers real concurrency only when code yields control to the event loop—meaning I/O-bound work must use awaitable operations...
Python Flask Tutorial: How to Use a Custom Domain Name for Our Application
Adding a custom domain to a Flask app deployed on a private Linux server hinges on one practical sequence: buy a domain, point its DNS to the...
Programming Terms: Mutable vs Immutable
Mutable vs. immutable is a practical distinction about whether an object’s contents can change after creation—and it directly affects both...
SQL Tutorial for Beginners 4: SELECT - Retrieving Records from Your Database
Retrieving specific data from a database starts with the SQL `SELECT` statement, and the practical path is: choose which columns to return, filter...
Python Tutorial: Ruff - A Fast Linter & Formatter to Replace Multiple Tools and Improve Code Quality
Ruff is positioned as an all-in-one, Rust-based Python linter and formatter that can replace a patchwork of tools—while running fast enough to make...
SQL Tutorial for Beginners 3: INSERT - Adding Records to Your Database
Populating a database table starts with the INSERT statement, and the key practical detail is how SQL matches the values you provide to the table’s...
Programming Terms: Memoization
Memoization is an optimization technique that speeds up programs by caching the results of expensive function calls and reusing them when the same...
Python Coding Problem: Creating Your Own Iterators
Creating a custom Python iterator for a sentence—and contrasting it with a generator that yields the same words—shows how iteration state is tracked...
Python Tutorial: Pathlib - The Modern Way to Handle File Paths
Pathlib is poised to replace Python’s OS-based path handling because it turns file paths into readable, safer objects instead of brittle...
Automate Your Development Environment Setup with Scripts and Dotfiles
A repeatable, from-scratch setup for a new development Mac is built by combining a GitHub “dotfiles” repository with install scripts that automate...
VirtualBox: How to Use Snapshots
VirtualBox snapshots let administrators save a virtual machine’s exact state—settings, disk contents, and optionally memory—so they can roll back...
How I Setup a New Development Machine - Using Scripts to Automate Installs and Save Time
A new MacBook can be turned into a fully working development environment in under 10 minutes by combining Homebrew with a personal “dotfiles”...
Python Pydantic Tutorial: Complete Data Validation Course (Used by FastAPI)
Pydantic is positioned as a practical replacement for hand-written validation: define a model with Python type hints, and Pydantic enforces those...
Customizing Your Terminal: How To Use and Modify Dotfiles
Custom dotfiles can turn a plain terminal into a highly informative workspace—complete with a color-coded prompt, Git status indicators, smarter...
Git Tutorial: Difference between "add -A", "add -u", "add .", and "add *"
Git add’s different flags all target the staging area, but they differ sharply in which kinds of changes they include: modified vs. new (untracked)...
Python Tutorial: Else Clauses on Loops
An `else` clause attached to a Python loop runs only when the loop finishes normally—meaning it never encounters a `break`. That single rule resolves...
Programming Terms: DRY (Don't Repeat Yourself)
DRY—“Don’t Repeat Yourself”—is a software development principle that targets repeated information in code because repetition makes systems harder to...
Programming Terms: Combinations and Permutations
Combinations and permutations differ in one crucial way: whether the order of selected items matters. A combination counts groups where rearranging...
Programming Terms: Idempotence
Idempotence means an operation can be repeated multiple times without changing the outcome after the first application. In practical programming...
Python Tutorial: Securely Manage Passwords and API Keys with DotEnv
Using python-dotenv (imported as “dotenv” in code) to load environment variables from a local .env file lets developers keep API keys and other...
Python Tkinter Tutorial (Part 2): Using Classes for Functionality and Organization
Using Tkinter with classes fixes a common “wrong widget” bug that appears when event handlers rely on global variables and duplicated widget names....
Python Tutorial: Type Hints - From Basic Annotations to Advanced Generics
Type hints in Python become genuinely useful only when paired with a type checker—otherwise they’re mostly documentation. Using MyPy (via the VS Code...
Python Tutorial: Generate a Web Portfolio and Resume from One JSON File
A single JSON file can drive both a web portfolio and a traditional one-page resume—generated automatically by Python—so updates never fall out of...
Python Tutorial: Type Hinting vs Type Checking vs Data Validation - What’s the Difference?
Python’s type hints, type checking, and data validation solve different problems—even though all three relate to “types.” Type hints document what...
Python FastAPI Tutorial (Part 2): HTML Frontend for Your API - Jinja2 Templates
FastAPI keeps its JSON API endpoints, but adds human-friendly HTML pages by wiring Jinja2 templates into new “page routes.” The key move is switching...
Python FastAPI Tutorial (Part 5): Adding a Database - SQLAlchemy Models and Relationships
The core shift is replacing FastAPI’s in-memory “posts” list with a real SQLAlchemy-backed database so data persists across server restarts—and then...
Python FastAPI Tutorial (Part 3): Path Parameters - Validation and Error Handling
FastAPI path parameters let a single URL target one specific resource—while type hints automatically enforce validation and generate clear...
I Let Python Pick My March Madness Bracket - Bracket Simulation Tutorial
A Python bracket simulator can generate “realistic enough” March Madness outcomes by giving higher-seeded teams better odds—while still allowing...
Python FastAPI Tutorial (Part 4): Pydantic Schemas - Request and Response Validation
FastAPI’s request/response validation becomes concrete once Pydantic schemas define the API contract—what clients must send and what the server will...
Python FastAPI Tutorial (Part 10): Authentication - Registration and Login with JWT
Authentication is wired into the FastAPI app by adding secure password hashing (Argon 2), JWT access tokens, and backend endpoints for registration,...
Python FastAPI Tutorial (Part 7): Sync vs Async - Converting Your App to Asynchronous
The core takeaway is that FastAPI can run routes either synchronously or asynchronously, but the performance payoff from async only materializes when...
Python FastAPI Tutorial (Part 6): Completing CRUD - Update and Delete (PUT, PATCH, DELETE)
CRUD in FastAPI is completed for both posts and users by adding full update (PUT), partial update (PATCH), and deletion (DELETE), with careful...
Python FastAPI Tutorial (Part 11): Authorization - Protecting Routes and Verifying Current User
Authorization becomes real only after the API stops trusting client-supplied user IDs. This tutorial turns a working JWT login system into route...
Python FastAPI Tutorial (Part 9): Frontend Forms - Connecting JavaScript to Your API
A working CRUD workflow now runs from the browser: Bootstrap modals collect user input, JavaScript uses the fetch API to call FastAPI JSON endpoints,...
Python FastAPI Tutorial (Part 8): Routers - Organizing Routes into Modules with APIRouter
FastAPI route organization gets a major upgrade by moving API endpoints out of a bloated main.py file and into dedicated modules using APIRouter. The...
Python FastAPI Tutorial (Part 13): Pagination - Loading More Data with Query Parameters
Pagination moves the app from “send everything” to “send only what the client needs,” and the payoff is immediate: faster loads, less wasted...
Python FastAPI Tutorial (Part 14): Password Reset - Email, Tokens, and Background Tasks
A complete password reset system for a FastAPI blog app comes together by combining three security requirements—unguessable, expiring, single-use...
Python FastAPI Tutorial (Part 15): PostgreSQL and Alembic - Database Migrations for Production
The tutorial’s core shift is replacing SQLite plus “create tables on startup” with PostgreSQL plus Alembic-style migrations (via SQLAlchemy’s...