
Learn to control program flow with Python if statements, using equality, booleans, and print outputs. Build complex conditions with and, or, in, and parentheses for order of operations.
Explore Python while loops and loop control with break and continue, practicing finite and infinite loops, conditions, and printing numbers up to 20 using modulo to skip evens.
Explore how to define and manage function parameters in Python, including input parameters, keyword arguments, default values, and advanced unpacking with *args and **kwargs.
Explore Python generators to enable memory-efficient streaming by using yield to output lines one at a time from large files.
Learn to send data to a server with a post request to /users, creating a new user via a full profile as a pedantic model in the request body.
Explore using query parameters to paginate user data and fetch multiple profiles via a get endpoint, with start and limit optional filters that control paging.
Learn how to write Python docstrings to document functions, classes, and modules. Describe inputs and returns, access docs via __doc__, and apply best practices for public APIs.
Explore how to define and use asynchronous functions in Python with async def and await to handle network IO, API calls, and database waits efficiently.
Refine API router design by prefixing user endpoints, grouping routes with tags, and updating documentation to reflect router-level properties; verify behavior through manual tests.
Create a console logger with a stream handler to view logs in the console, then configure a format that includes the level name, logger name, date, time, and message.
Master headers and dependencies in a FastAPI app, expose response headers, and implement a simple rate limit across endpoints using a dependencies approach with a five-per-ten-second policy.
Learn to test synchronous http requests in python by mocking external services with the responses library. Create a get_user function and simulate endpoint responses without real network calls.
Learn to test asynchronous requests by mocking predefined responses, using a configurable base url with endpoint prefix and user id, and asserting a 200 status and expected json payload.
Learn how to integrate mypy into your Python testing workflow, fix type notation errors, and ensure functions return the correct objects while validating with unit and integration tests.
You can get your free start-up credits for Digital Ocean from here: https://m.do.co/c/620e356dbe86
Learn how to set and inspect environment variables with export and echo, organize them in local, staging, and production files, and load them with source to switch environments.
Learn to use history to review past commands, then pipe output into grep for targeted searches—even handling case sensitivity with the minus flag—and redirect results to a file.
Send requests from the terminal using curl to test APIs with get, post, put, and delete, including authorization headers and JSON data with proper content-type.
Create and customize a makefile to shorten recurring docker compose commands. Define phony targets like start, stop, and unit tests, and enforce tab-based syntax.
Set up a local PostgreSQL server on Mac using the PostgreSQL app, start the server, and access the default three databases on your machine.
Explore using the SQL editor CLI to connect to a Postgres server via the terminal, write queries, and manage databases, with GUI options for flexibility.
Learn to create and drop databases within a data source, test connections to Postgres, and manage multiple databases using create and drop commands with semicolons.
Create and manage schemas to organize tables, drop and recreate schemas and databases as needed, and use introspection to verify the public schema is available.
Learn to create tables in database schemas with create table, define columns and data types, set primary keys, manage schemas, and establish foreign keys referencing related tables.
Learn to streamline data insertion through backend pipelines rather than manual insert into statements, and use sql scripts to drop tables, cascade relations, and load data from a GitHub dataset.
Learn how to perform data type conversions by casting between integers and real numbers, using as and :: syntax, casting individual values or full columns to enable floating point divisions.
Explore string positional information in Python for software engineering by using length, case statements, and position to measure name lengths, bucket sizes, and locate substrings for data analysis.
learn to work with dates and times in sql queries by casting timestamps to date, extracting time components, and filtering with now for current utc date.
Master how left, right, and full outer joins extend inner joins to include unmatched data, using track and invoice line examples to compare behavior and outcomes.
Learn to test code with unavailable databases by building an async mocking database client and fixtures, asserting awaited calls and arguments, and validating paginated queries.
Implement Redis-backed caching in the application, integrating Postgres and Redis in docker compose, adding prefixes, get/set/delete helpers, and cache-first strategies for read and write operations.
Explore Redis hashes to efficiently group related data and avoid memory explosions from large objects; learn hash operations, existence checks, and subset retrieval for scalable caching.
Switch from json to Python-specific pickle serialization for Redis cache, storing byte representations and enabling immediate Python object retrieval with proper deserialization and decoding control.
Explore isort-based import sorting with a configuration file to ensure consistent multi-line formatting, line-length choices, and trailing commas, integrated with typing checks and linting.
Set up git and GitHub on your machine, create a GitHub account, configure global username and email, and learn to log in with the GitHub CLI for pushing code.
Navigate the pull request workflow to review, merge, and protect code with branch rules, status checks, and peer approvals, while resolving conflicts and rebasing for a clean master history.
Learn to integrate pre commit hooks into your Python project, enabling automatic linting and formatting on every commit. Set up and customize a pre commit workflow and enforce coding standards.
Develop a yaml reader to load a pipeline, initialize queues and worker instances, and dynamically import and configure workers with input and output queues using flexible initialization parameters.
Improve a YAML-based data pipeline by coordinating workers and queues, implementing a central monitoring loop, and signaling completion only after all workers finish.
Define local and pipeline environment variables in a .env file and export them for testing on Linux or Mac, including Postgres settings and extraction time.
Master how to prevent race conditions in Python threading by using locks and context managers to safely increment a shared counter across multiple threads.
Use star map with multiprocessing to pass multiple varying argument pairs by zipping input lists into (x, y) pairs and applying a function on each pair.
Explore multiprocessing techniques to check how many values in a list fall within specified lower and upper bounds, using a comparison list and star-unpacking for scalable input.
Explore asynchronous programming in Python using asyncio to run a single event loop, define async functions and coroutines, await results, and schedule futures and tasks for concurrent execution.
Software Engineers are one of the most in-demand positions in the modern world, and this demand will only increase as people and organizations continue to adopt technology and integrate it into their business processess.
In addition, Software Engineering provides lucrative and flexible job positions, with especially many remote work opportunities in the post-COVID error.
However, because of this, Software Engineering positions can be extremely competitive to get, and often contain several rounds of intense interviews.
In this course you're going to go from no prior programming experience to having the technical skillset to work as a Software Engineer in tech. You're going to learn how to build, test, and APIs and web services, which form the foundation of most software engineer work, and you'll be learning all of this in Python, one of the worlds most popular and widely used programming languages.
However, what really sets this course apart is not just the content you'll learn, but also the depth you'll learn it in. You'll learn how to write properly structured, well tested, and production ready code that's not just suited for a hobby project, but will be at level that is expected in the professional world.
By the end of this course you'll feel comfortable with developing applications, have a portfolio item, and be ready to apply to Software Engineer positions and take on those technical interviews.