Python for Software Engineering Bootcamp

Video description

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. This hands-on course will help you become a skilled software engineer with no prior programming experience needed.

You will start by learning the basics of Python such as variables, strings, Booleans, lists, tuples, dictionaries, generators, and so on as well as learning to write the first service test. Furthermore, you will learn to send requests in Python and understand how to modify permissions. You will also be able to explore Docker and SQL and learn to set up a local PostgreSQL Server. You will learn how to create tables using query results.

Moving further in the course, you will learn to integrate databases into your application and create database models in Python. You will be introduced to Redis and learn data compression. You will also get to know how to set up a GitHub desktop, and clone a repository as well as GitHub CLI. You will wrap up the course by having a look at threading in Python, multiprocessing pool, and async wait statements.

By the end of this course, you will feel comfortable with developing applications, have a portfolio item, and be ready to apply for software engineer positions and take on those technical interviews.

What You Will Learn

  • Learn to write proper and clean Python code
  • Learn to develop APIs in Python
  • Learn to write scalable applications in Python
  • Learn to interact with databases in code
  • Learn to add caching to your code
  • Learn to properly test your code


This course is for complete beginners who want to learn how to program and become software engineers. No prior programming experience is needed, you will learn everything you will need to know on the course.

About The Author

Maximilian Schallwig: Maximilian Schallwig is a data engineer and a proficient Python programmer. He holds a bachelor’s degree in physics and a master’s degree in astrophysics. He has been working on data for over five years, first as a data scientist and then as a data engineer. He can talk endlessly about big data pipelines, data infrastructure, and his unwavering devotion to Python.

Even after two unsuccessful attempts in high school, he still decided to learn Python at the University. He cautiously stepped into the realm of data, beginning with a simple Google search for “what does a data scientist do”

He was determined to pursue a career in data science to become a data engineer by learning about big data tools and infrastructure design to build scalable systems and pipelines. He enjoys sharing his programming skills with the rest of the world.

Table of contents

  1. Chapter 1 : Introduction
    1. Introduction
    2. Setting Up Our Coding Environment
    3. Installing Python
    4. Writing Our First Program
    5. Variables
    6. String
    7. Integers, Floats, and Type Casting
    8. Booleans and Boolean Operations
    9. None Types
    10. Lists
    11. Tuples
    12. Dictionaries
    13. Formatting Strings and Writing Comments
    14. If Statements
    15. Elif and Else Statements
    16. For Loops
    17. While Loops
    18. Functions
    19. Function Parameters
    20. Global Variables
    21. File Handling
    22. Virtual Environments
    23. Launching Our First Application
    24. Classes
    25. Classes Inheritance
    26. Decorators
    27. Generators
    28. JSON and Text Response
    29. Typing
    30. Response Models
    31. Expanded Field Information
    32. Path Parameters
    33. Request Bodies
    34. Query Parameters
    35. Put and Delete
    36. Docstrings
    37. Async Functions
    38. Directory Structure
    39. API Routers Continued
    40. Environment Variables
    41. HTTP Status Codes
    42. Exceptions
    43. Logging
    44. Logging Formatter
    45. Custom Exception Handlers
    46. Headers and Dependencies
  2. Chapter 2 : Testing
    1. Pytest Introduction
    2. Writing Our First Service Test
    3. Fixtures
    4. Integration Tests
    5. Testing for Exceptions
    6. Sending Requests in Python
    7. Sending Async Requests
    8. Testing Synchronous Requests
    9. Testing Async Requests
    10. Test Coverage
    11. MyPy Round 2
  3. Chapter 3 : Introduction to the Terminal
    1. Digital Ocean Setup
    2. SSH on Windows
    3. Connecting with SSH
    4. Basic Navigation
    5. Creating Folders
    6. Creating Files
    7. Removing Folders and Files
    8. Moving, Renaming, and Copying Files and Folders
    9. Environment Variables
    10. Piping and Redirecting
    11. Super User and Running Pythons Scripts
    12. Executables and Modifying Permissions
    13. Sending Requests
  4. Chapter 4 : Docker
    1. Docker Introduction
    2. Creating a Dockerfile
    3. Multistage Build
    4. Docker Compose
    5. Makefile
  5. Chapter 5 : SQL
    1. Introduction to Relational Databases
    2. Data Types and Schemas
    3. [Mac] Setting Up a Local PostgreSQL Server
    4. [Windows] Setting Up a Local PostgreSQL Server
    5. [Mac] SQL Editor Postico
    6. SQL Editor DataGrip
    7. SQL Editor CLI
    8. Creating and Removing a Database
    9. Creating Schemas
    10. Creating Tables
    11. Altering Tables
    12. Enumerated Types
    13. Inserting Values
    14. Running an SQL Script
    15. Reading Data
    16. Creating Tables Using Query Results
    17. Aliases and Ordering
    18. Conditional Filtering Direct Comparisons
    19. Conditional Filtering Grouped Comparisons
    20. Joining Conditionals
    21. Negating Conditionals
    22. Filtering Null Values
    23. Creating New Columns and Arithmetic
    24. Datatype Conversions
    25. Logic Statements
    26. Manipulating Strings
    27. String Positional Information
    28. String Subsets and Concatenations
    29. String Replacements
    30. Date and Time
    31. Date and Time Intervals
    33. Aggregation Functions
    34. Grouping and Filtering Aggregations
    35. Inner Join
    36. Left, Right, and Outer Joins
    37. Self Joins
    38. Unions
    39. Subqueries
    40. Common Table Expression (CTEs)
    41. Window Functions and Aliases
    42. Row Numbers and Ranks
    43. Using Other Rows with Window Functions
    44. NTiles
    45. Understanding Query Performance
  6. Chapter 6 : Integrating Databases into Our Application
    1. Adding Postgres to Our Docker Compose
    2. Creating Database Models in Python
    3. Database Migrations
    4. SQLAlchemy ORM Introduction
    5. Creating a Database Client
    6. Updating Our Application to Read from the Database
    7. Database Inserts
    8. Database Updates
    9. Database Deletes
    10. Async Database Queries
    11. Async Updates
    12. Updating Unit Tests to Work with the Database
    13. Updating Integration Tests to Work with the Database
    14. SQLite for Testing
    15. Mocking
  7. Chapter 7 : Caching
    1. Redis Introduction
    2. Adding Caching to Our Application
    3. Redis Hash Introduction
    4. Redis Sets Introduction
    5. Adding Hash Caching to Pagination Endpoint
    6. Python Object Serialization
    7. Cache Flushing
    8. Data Compression
  8. Chapter 8 : Linting
    1. MyPy Configurations
    2. Import Sorting
    3. Automatic Code Formatting
    4. Additional Code Checking
  9. Chapter 9 : GitHub
    1. GitHub Credentials Setup
    2. GitHub Desktop Setup
    3. Cloning a Repository
    4. Pushing a Local Repository to GitHub
    5. Reverting and Squashing Commits
    6. GitHub Branches
    7. Pull Request
    8. Precommit Hooks
    9. GitHub CLI
    10. Tagged Release
    11. Reading Documentation
  10. Chapter 10 : Concurrent and Parallel Programming
    1. Threading, Multiprocessing, and Async Introduction
    2. Threading in Python
    3. Creating a Threading Class
    4. Creating a Wikipedia Reader
    5. Creating a Yahoo Finance Reader
    6. Queues and Master Scheduler
    7. Creating a Postgres Worker
    8. Integrating the Postgres Worker
    9. Yaml File Introduction
    10. Creating a Yaml Reader
    11. Improving Our Wiki Worker
    12. Improving All Workers and Adding Monitoring
    13. Final Program Clean-Up
    14. Locking
    15. Multiprocessing Introduction
    16. Multiprocessing Queues
    17. Multiprocessing Pool
    18. Multiprocessing Pool Map Multiple Arguments
    19. Multiprocessing Multiple Varying Arguments
    20. Multiprocessing Checking Elements in List in Certain Ranges
    21. Introduction to Writing Asynchronous Programs
    22. Asynchronous Tasks
    23. Async Gather Method
    24. Using Async Timeouts
    25. Creating Asynchronous For Loops
    26. Using Asynchronous Libraries
    27. The Async Wait Statement
    28. Combining Async and Multiprocessing

Product information

  • Title: Python for Software Engineering Bootcamp
  • Author(s): Maximilian Schallwig
  • Release date: November 2022
  • Publisher(s): Packt Publishing
  • ISBN: 9781804617205