Programming Languages


100 Days of Code - The Complete Python Pro Bootcamp for 2021

Master Python by building 100 projects in 100 days. Learn to build websites, games, apps, plus scraping and data science

4.75 (23868 reviews)



63.5 hours


Feb 2021

Last Update
Regular Price

What you will learn

Be able to program in Python professionally

Master the Python programming language by building 100 projects over 100 days

Create a portfolio of 100 Python projects to apply for developer jobs

Be able to build fully fledged websites and web apps with Python

Be able to use Python for data science and machine learning

Build games like Blackjack, Pong and Snake using Python

Build GUIs and Desktop applications with Python

Learn to use modern frameworks like Selenium, Beautiful Soup, Request, Flask, Pandas, NumPy, Scikit Learn, Plotly, Matplotlib, Seaborn,


Welcome to the 100 Days of Code - The Complete Python Pro Bootcamp, the only course you need to learn to code with Python. With over 100,000 ⭐️⭐️⭐️⭐️⭐️ reviews and a 4.8 average, my courses are some of the HIGHEST RATED courses in the history of Udemy!  

100 days, 1 hour per day, learn to build 1 project per day, this is how you master Python.

At 56+ hours, this Python course is without a doubt the most comprehensive Python course available anywhere online. Even if you have zero programming experience, this course will take you from beginner to professional. Here's why:

  • The course is a taught by the lead instructor at the App Brewery, London's best in-person programming bootcamp.

  • The course has been updated to be 2021 ready and you'll be learning the latest tools and technologies used at large companies such as Apple, Google and Netflix.

  • This course doesn't cut any corners, there are beautiful animated explanation videos and tens of real-world projects which you will get to build. e.g. Tinder auto swiper, Snake game, Blog Website, LinkedIn Auto Submit Job Application

  • The curriculum was developed over a period of 2 years, with comprehensive student testing and feedback.

  • We've taught over 600,000 students how to code and many have gone on to change their lives by becoming professional developers or start their own tech startup.

  • You'll save yourself over $12,000 by enrolling, and still get access to the same teaching materials and learn from the same instructor and curriculum as our in-person programming bootcamp.

  • The course is constantly updated with new content, with new projects and modules determined by students - that's you!

We'll take you step-by-step through engaging video tutorials and teach you everything you need to know to succeed as a Python developer.

The course includes over 56 hours of HD video tutorials and builds your programming knowledge while making real-world Python projects.

Throughout this comprehensive course, we cover a massive amount of tools and technologies, including:

  • Python 3 - the latest version of Python

  • PyCharm, Jupyter Notebook, Google Colab

  • Python Scripting and Automation

  • Python Game Development

  • Web Scraping

  • Beautiful Soup

  • Selenium Web Driver

  • Request

  • WTForms

  • Data Science

  • Pandas

  • NumPy

  • Matplotlib

  • Plotly

  • Scikit learn

  • Seaborn

  • Turtle

  • Python GUI Desktop App Development

  • Tkinter

  • Front-End Web Development

  • HTML 5

  • CSS 3

  • Bootstrap 4

  • Bash Command Line

  • Git, GitHub and Version Control

  • Backend Web Development

  • Flask

  • REST

  • APIs

  • Databases

  • SQL

  • SQLite

  • PostgreSQL

  • Authentication

  • Web Design

  • Deployment with GitHub Pages, Heroku and GUnicorn

  • and much much more!

By the end of this course, you will be fluently programming in Python and you'll be so good at Python at that you can get a job or use the language professionally.

You'll also build a portfolio of 100 projects that you can show off to any potential employer. Including:

  • Blackjack

  • Snake Game

  • Pong Game

  • Auto Swipe on Tinder

  • Auto Job Applications on LinkedIn

  • Automate Birthday Emails/SMS

  • Fully Fledged Blog Website

  • Build Your Own Public API

  • Data Science with Google Trends

  • Analysing Lego Datasets

  • Google App Store Analysis

  • and much much more!

Sign up today, and look forward to:

  • Video Lectures

  • Code Challenges and Exercises

  • Fully Fledged Projects

  • Quizzes

  • Programming Resources and Cheatsheets

  • Downloads

  • Our best selling 12 Rules to Learn to Code eBook

  • $12,000+ Python Pro Bootcamp course materials and curriculum

Don't just take my word for it, check out what existing students have to say about my courses:

"Angela is just incredible, awesome and just fantastic in this course. I've never had such an instructor; detailed in every aspect of the course, gives precise explanations, gives you the anxiety to learn etc. She's got that ability to make fun while explaining thing for better understanding. I really love this course." - Ekeu MonkamUlrich

"Angela is very thorough without ever being boring. I've taken MANY online courses in my life including my Bachelors and Masters degrees. She is by far the best instructor I've ever had. This course is packed with thousands of dollars worth of great instruction, and paced well enough for anyone to pick coding up and run with it- Thank you!" - J Carlucci

"Love the way Angela explains things. Easy to follow and full or logic. I can say she must spent a lot of energy creating this great course. Thank you and I recommend to all who's interested in coding!" - Yiqing Zheng

"So far (on my third day) this course has taught me more than I was able to learn in multiple other programming courses. This course is clearly outlined and builds upon itself gradually in an easy to understand way." - Normal Ramsey

"It's a different approach to teaching Web Development. I like that you are given everything possible to succeed from the onset." - Ronick Thomas

The tutor is simply AMAZING, by far the best tutor I have ever had. I would give her 10 stars out of 5. She is not just punching the code and talks to herself, but she is actually explaining things. She keeps on giving really usefull hints and she will give you a great load of other references. I always knew what I was doing and why I was doing it. All the extra challenges have just made me to remember and understand things better. - Peter Dlugos

REMEMBER… I'm so confident that you'll love this course that we're offering a FULL money back guarantee for 30 days! So it's a complete no-brainer, sign up today with ZERO risk and EVERYTHING to gain.

So what are you waiting for? Click the buy now button and join the world's highest rated development course.


100 Days of Code - The Complete Python Pro Bootcamp for 2021
100 Days of Code - The Complete Python Pro Bootcamp for 2021
100 Days of Code - The Complete Python Pro Bootcamp for 2021
100 Days of Code - The Complete Python Pro Bootcamp for 2021


Day 1 - Beginner - Working with Variables in Python to Manage Data

Introduction to the Course

Day 1 Goals: what we will make by the end of the day

Printing to the Console in Python

[Interactive Coding Exercise] Printing

String Manipulation and Code Intelligence

[Interactive Coding Exercise] Debugging Practice

The Python Input Function

[Interactive Coding Exercise] Input Function

Python Variables

[Interactive Coding Exercise] Variables

Variable Naming

Variable Naming Quiz

Day 1 Project: Band Name Generator

Congratulations! Well done!

Day 2 - Beginner - Understanding Data Types and How to Manipulate Strings

Day 2 Goals: what we will make by the end of the day

Python Primitive Data Types

Data Types Quiz

Type Error, Type Checking and Type Conversion

[Interactive Coding Exercise] Data Types

Mathematical Operations in Python

[Interactive Coding Exercise] BMI Calculator

Number Manipulation and F Strings in Python

[Interactive Coding Exercise] Life in Weeks

Mathematical Operations Quiz

Day 2 Project: Tip Calculator

You are already in the top 50%

Day 3 - Beginner - Control Flow and Logical Operators

Day 3 Goals: what we will make by the end of the day

Control Flow with if / else and Conditional Operators

[Interactive Coding Exercise] Odd or Even? Introducing the Modulo

Nested if statements and elif statements

[Interactive Coding Exercise] BMI 2.0

[Interactive Coding Exercise] Leap Year

Multiple If Statements in Succession

[Interactive Coding Exercise] Pizza Order Practice

Logical Operators

[Interactive Coding Exercise] Love Calculator

Day 3 Project: Treasure Island

Share and Show off your Project!

Day 4 - Beginner - Randomisation and Python Lists

Day 4 Goals: what we will make by the end of the day

Random Module

[Interactive Coding Exercise] Random Exercise

Understanding the Offset and Appending Items to Lists

[Interactive Coding Exercise] Banker Roulette - Who will pay the bill?

IndexErrors and Working with Nested Lists

List and IndexError Quiz

[Interactive Coding Exercise] Treasure Map

Day 4 Project: Rock Paper Scissors

Programming is like going to the Gym

Day 5 - Beginner - Python Loops

Day 5 Goals: what we will make by the end of the day

Using the for loop with Python Lists

[Interactive Coding Exercise] Average Height

[Interactive Coding Exercise] High Score

for loops and the range() function

[Interactive Coding Exercise] Adding Even Numbers

[Interactive Coding Exercise] The FizzBuzz Job Interview Question

Day 5 Project: Create a Password Generator

Hard Work and Perseverance beats Raw Talent Every Time

Day 6 - Beginner - Python Functions & Karel

Day 6 Goals: what we will make by the end of the day

Defining and Calling Python Functions

The Hurdles Loop Challenge

Indentation in Python

Code Indentation Quiz

While Loops

Hurdles Challenge using While Loops

Jumping over Hurdles with Variable Heights

Final Project: Escaping the Maze

Why is this *so* Hard?! Can I really do this?

Day 7 - Beginner - Hangman

Day 7 Goals: what we will make by the end of the day

How to break a Complex Problem down into a Flow Chart

Challenge 1 - Picking a Random Words and Checking Answers

Challenge 1 Solution - How to Check the User's Answer

Challenge 2 - Replacing Blanks with Guesses

Challenge 2 Solution - How to Replace the Blanks

Challenge 3 - Checking if the Player has Won

Challenge 3 Solution - How to Check if the Player Won

Challenge 4 - Keeping Track of the Player's Lives

Challenge 4 Solution - How to Keep Track of the Player's Lives

Challenge 5 - Improving the User Experience

Challenge 5 Solution - How to Add ASCII Art and Improve the UI

The Benefits of Daily Practice

Day 8 - Beginner - Function Parameters & Caesar Cipher

Day 8 Goals: what we will make by the end of the day

Functions with Inputs

Positional vs. Keyword Arguments

[Interactive Coding Exercise] Pain Area Calculator

[Interactive Coding Exercise] Prime Number Checker

Caesar Cipher Part 1 - Encryption

Caesar Cipher Part 2 - Decryption

Caesar Cipher Part 3 - Reorganising our Code

Caesar Cipher Part 4 - User Experience Improvements & Final Touches

How You Can *Stay* Motivated

Day 9 - Beginner - Dictionaries, Nesting and the Secret Auction

Day 9 Goals: what we will make by the end of the day

The Python Dictionary: Deep Dive

[Interactive Coding Exercise] Grading Program

Nesting Lists and Dictionaries

[Interactive Coding Exercise] Dictionary in List

Python Dictionaries Quiz

The Secret Auction Program Instructions and Flow Chart

Solution and Complete Code for the Secret Auction Program

Motivation and the Accountability Trick

Day 10 - Beginner - Functions with Outputs

Day 10 Goals: what we will make by the end of the day

Functions with Outputs

Multiple return values

[Interactive Coding Exercise] Days in Month


Functions Quiz

Calculator Part 1: Combining Dictionaries and Functions

Print vs. Return

While Loops, Flags and Recursion

Calculator Finishing Touches and Bug Fixes

How to Get a Good Night's Sleep

Day 11 - Beginner - The Blackjack Capstone Project

Day 11 Goals: what we will make by the end of the day

Blackjack Program Requirements and Game Rules

Hint 4 & 5 Solution Walkthrough

Hint 6-8 Solution Walkthrough

Hint 9 Solution Walkthrough: Refactoring and calling calculate_score()

Hint 10-12 Solution Walkthrough

Hint 13 Solution Walkthrough

A Solid Foundation goes a Long Way

Day 12 - Beginner - Scope & Number Guessing Game

Namespaces: Local vs. Global Scope

Does Python Have Block Scope?

How to Modify a Global Variable

Python Constants and Global Scope

Scope Quiz

Introducing the Final Project: The Number Guessing Game

Solution & Walkthrough to the Number Guessing Game

Day 13 - Beginner - Debugging: How to Find and Fix Errors in your Code

Describe the Problem

Reproduce the Bug

Play Computer and Evaluate Each Line

Fixing Errors and Watching for Red Underlines

Squash bugs with a print() Statement

Bringing out the BIG Gun: Using a Debugger

Final Debugging Tips

[Interactive Coding Exercise] Debugging Odd or Even

[Interactive Coding Exercise] Debugging Leap Year

[Interactive Coding Exercise] Debugging FizzBuzz

Day 14 - Beginner - Higher Lower Game Project

Introduction & Program Requirements for the Higher Lower Game

Solution & Walkthrough of the Higher Lower Game

Day 15 - Intermediate - Local Development Environment Setup & the Coffee Machine

Installing Python Locally on Your Computer

Download PyCharm for Windows or Mac

PyCharm's Charming Features (while you wait for the download to finish)

How to Install PyCharm on Windows

Installing PyCharm on Mac

Introduction & Requirements for the Coffee Machine Project

Solution & Walkthrough for the Coffee Machine Code

Day 16 - Intermediate - Object Oriented Programming (OOP)

Why do we need OOP and how does it work?

How to use OOP: Classes and Objects

Constructing Objects and Accessing their Attributes and Methods

How to Add Python Packages and use PyPi

Practice Modifying Object Attributes and Calling Methods

Python Objects Quiz

Building the Coffee Machine in OOP

Walkthrough and Solution for the OOP Coffee Machine

Day 17 - Intermediate - The Quiz Project & the Benefits of OOP

Day 17 Goals: what we will make by the end of the day

How to create your own Class in Python

Working with Attributes, Class Constructors and the __init__() Function

Adding Methods to a Class

Quiz Project Part 1: Creating the Question Class

Quiz Project Part 2: Creating the List of Question Objects from the Data

Quiz Project Part 3: The QuizBrain and the next_question() Method

Quiz Project Part 4: How to continue showing new Questions

Quiz Project Part 5: Checking Answers and Keeping Score

The Benefits of OOP: Use Open Trivia DB to Get New Questions

Day 18 - Intermediate - Turtle & the Graphical User Interface (GUI)

Day 18 Goals: what we will make by the end of the day

Understanding Turtle Graphics and How to use the Documentation

Turtle Challenge 1 - Draw a Square

Importing Modules, Installing Packages, and Working with Aliases

Turtle Challenge 2 - Draw a Dashed Line

Turtle Challenge 3 - Drawing Different Shapes

Turtle Challenge 4 - Generate a Random Walk

Python Tuples and How to Generate Random RGB Colours

Turtle Challenge 5 - Draw a Spirograph

The Hirst Painting Project Part 1 - How to Extract RGB Values from Images

The Hirst Painting Project Part 2 - Drawing the Dots

Day 19 - Intermediate - Instances, State and Higher Order Functions

Day 19 Goals: what we will make by the end of the day

Python Higher Order Functions & Event Listeners

Challenge: Make an Etch-A-Sketch App

Object State and Instances

Understanding the Turtle Coordinate System

Turtle Coordinate System Quiz

Aaaand, we're off to the races!

Day 20 - Intermediate - Build the Snake Game Part 1: Animation & Coordinates

Day 20 Goals: what we will make by the end of the day

Screen Setup and Creating a Snake Body

Animating the Snake Segments on Screen

Create a Snake Class & Move to OOP

How to Control the Snake with a Keypress

Day 21 - Intermediate - Build the Snake Game Part 2: Inheritance & List Slicing

Day 21 Goals: what we will make by the end of the day

Class Inheritance

Inheritance Quiz

Detect Collisions with Food

Create a Scoreboard and Keep Score

Detect Collisions with the Wall

Detect Collisions with your own Tail

How to Slice Lists & Tuples in Python

Day 22 - Intermediate - Build Pong: The Famous Arcade Game

Day 22 Goals: what you will make by the end of the day

Set up the Main Screen

Create a Paddle that responds to Key Presses

Write the Paddle Class and Create the Second Paddle

Write the Ball Class and Make the Ball Move

Add the Ball Bouncing Logic

How to Detect Collisions with the Paddle

How to Detect when the Ball goes Out of Bounds

Score Keeping and Changing the Ball Speed

Day 23 - Intermediate - The Turtle Crossing Capstone Project

Day 23 Goals: what you will make by the end of the day

Choose Your Difficulty

How to use the Starter Code

Step 1 - Check out how the game play works

Step 2 - Break down the Problem

Solution to Step 3 - Create the Player Behaviour

Solution to Step 4 - Create the Car Behaviour

Solution to Step 5 - Detect when the Turtle collides with a Car *squish*

Solution to Step 6 - Detect when the Player has reached the other side

Solution to Step 7 - Add the Scoreboard and Game Over sequence

Day 24 - Intermediate - Files, Directories and Paths

Day 24 Goals: what you will make by the end of the day

Add a High Score to the Snake Game

How to Open, Read, and Write to Files using the "with" Keyword

Challenge: Read and Write the High Score to a File in Snake

Understand Relative and Absolute File Paths

File Paths Quiz

Introducing the Mail Merge Challenge

Solution & Walkthrough for the Mail Merge Project

Day 25 - Intermediate - Working with CSV Data and the Pandas Library

Day 25 Goals: what we will make by the end of the day

Reading CSV Data in Python

DataFrames & Series: Working with Rows & Columns

The Great Squirrel Census Data Analysis (with Pandas!)

U.S. States Game Part 1: Setup

U.S. States Game Part 2: Challenge with .csv

U.S. States Game Part 3: Saving Data to .csv

Day 26 - Intermediate - List Comprehension and the NATO Alphabet

Day 26 Goals: what you will make by the end of the day

How to Create Lists using List Comprehension

[Interactive Coding Exercise] Squaring Numbers

[Interactive Coding Exercise] Filtering Even Numbers

[Interactive Coding Exercise] Data Overlap

Apply List Comprehension to the U.S. States Game

How to use Dictionary Comprehension

[Interactive Coding Exercise] Dictionary Comprehension 1

[Interactive Coding Exercise] Dictionary Comprehension 2

How to Iterate over a Pandas DataFrame

Introducing the NATO Alphabet Project

Solution & Walkthrough for the NATO Alphabet Project

Day 27 - Intermediate - Tkinter, *args, **kwargs and Creating GUI Programs

Day 27 Goals: what we will make by the end of the day

History of GUI and Introduction to Tkinter

Creating Windows and Labels with Tkinter

Setting Default Values for Optional Arguments inside a Function Header

Default Values Quiz

*args: Many Positional Arguments

**kwargs: Many Keyword Arguments

Optional Arguments, *args and **kwargs Quiz

Buttons, Entry, and Setting Component Options

Other Tkinter Widgets: Radiobuttons, Scales, Checkbuttons and more

Tkinter Layout Managers: pack(), place() and grid()

Mile to Kilometers Converter Project

Day 28 - Intermediate - Tkinter, Dynamic Typing and the Pomodoro GUI Application

Day 28 Goals: what we will make by the end of the day

How to work with the Canvas Widget and Add Images to Tkinter

Challenge - Complete the Application's User Interface (UI)

Add a Count Down Mechanism

Dynamic Typing Explained

Setting Different Timer Sessions and Values

Adding Checkmarks and Resetting the Application

Day 29 - Intermediate - Building a Password Manager GUI App with Tkinter

Day 29 Goals: what we will make by the end of the day

Challenge 1 - Working with Images and Setting up the Canvas

Challenge 2 - Use grid() and columnspan to Complete the User Interface

Solution to the Creating the Grid Layout

Challenge 3 - Saving Data to File

Dialog Boxes and Pop-Ups in Tkinter

Generate a Password & Copy it to the Clipboard

Day 30 - Intermediate - Errors, Exceptions and JSON Data: Improving the Password

Day 30 Goals: what you will make by the end of the day

Catching Exceptions: The try catch except finally Pattern

Raising your own Exceptions

[Interactive Coding Exercise] IndexError Handling

[Interactive Coding Exercise] KeyError Handling

Code Exercise: Exception Handling in the NATO Phonetic Alphabet Project

Write, read and update JSON data in the Password Manager

Challenge 1 - Handling Exceptions in the Password Manager

Challenge 2 - Search for a Website in the Password Manager

Day 31 - Intermediate - Flash Card App Capstone Project

Day 31 Goals: what you will make by the end of the day

Step 1 - Create the User Interface (UI) with Tkinter

Solution & Walkthrough for Creating the UI

Step 2 - Create New Flash Cards

Solution & Walkthrough for Creating New Flash Cards

Step 3 - Flip the Cards!

Solution & Walkthrough for Flipping Cards

Step 4 - Save Your Progress

Solution & Walkthrough for Saving Progress

Day 32 - Intermediate+ Send Email (smtplib) & Manage Dates (datetime)

Day 32 Goals: what we will make by the end of the day

A Note About the Next Lesson: Google SMTP Port

How to Send Emails with Python using SMTP

Working with the datetime Module

Challenge 1 - Send Motivational Quotes on Mondays via Email

Automated Birthday Wisher Project Challenge

Solution & Walkthrough for the Automated Birthday Wisher

Run Your Python Code in the Cloud!

Day 33 - Intermediate+ API Endpoints & API Parameters - ISS Overhead Notifier

Day 33 Goals: what you will make by the end of the day

What are Application Programming Interfaces (APIs)?

API Endpoints and Making API Calls

Working with Responses: HTTP Codes, Exceptions & JSON Data

Challenge - Build a Kanye Quotes App using the Kanye Rest API

Understand API Parameters: Match Sunset Times with the Current Time

ISS Overhead Notifier Project - Challenge & Solution

Day 34 - Intermediate+ API Practice - Creating a GUI Quiz App

Day 34 Goals: what you will make by the end of the day

Trivia Question API Challenge

Solution & Walkthrough for getting Trivia Questions

Unescaping HTML Entities

Class based Tkinter UI

Python Typing & Showing the Next Question in the GUI

Python Typing: Type Hints and Arrows ->

Check the Answer

Give Feedback to the Player, Keep Score and Fix the Bugs =)

Day 35 - Intermediate+ Keys, Authentication & Environment Variables: Send SMS

Day 35 Goals: what you will make by the end of the day

What is API Authentication and Why Do We Need to Authenticate Ourselves?

Using API Keys to Authenticate and Get the Weather from OpenWeatherMap

Challenge - Check if it Will Rain in the Next 12 Hours

Sending SMS via the Twilio API

Use PythonAnywhere to Automate the Python Script

Understanding Environment Variables and Hiding API Keys

Day 36 - Intermediate+ Stock Trading News Alert Project

Day 36 Goals: what you will make by the end of the day

Choose Your Destiny!

Solution & Walkthrough for Step 1 - Check for Stock Price Movements

Solution & Walkthrough for Step 2 - Get the News Articles

Solution & Walkthrough for Step 3 - Send the SMS Messages

Day 37 - Intermediate+ Habit Tracking Project: API Post Requests & Headers

Day 37 Goals: what you will make by the end of the day

HTTP Post Requests

Advanced Authentication using an HTTP Header

Challenge: Add a Pixel to the Habit Tracker using a Post Request

Autofilling today's date using strftime

How to use HTTP Put and Delete Requests

Day 38 - Intermediate+ Workout Tracking Using Google Sheets

Day 38 Goals: what you will make by the end of the day

Step 1 - Setup API Credentials and Google Spreadsheet

Step 2 - Get Exercise Stats with Natural Language Queries

Step 3 - Setup Your Google Sheet with Sheety

Step 4 - Saving Data into Google Sheets

Step 5 - Authenticate Your Sheety API

Step 6 - Environment Variables in Repl.it

Day 39 - Intermediate+ Capstone Part 1: Flight Deal Finder

Day 39 Goals: what you will make by the end of the day

Step 1 - Download the starting project

Step 2 - Chose Your Path

Step 3 - Get the IATA Codes

Step 4 - Search for Cheap Flights

Step 5 - If Flight Price Lower than in Google Sheet send an SMS

Day 40 - Intermediate+ Capstone Part 2: Flight Club

Day 40 Goals: what you will make by the end of the day

Step 1 - Create the Customer Acquisition Code

Step 2 - Download the Starting Project

Step 3 - Exception Handling for Destinations without Flights

Step 4 - Destinations without Direct Flights

Step 5 - Email all our customers

Day 41 - Web Foundation - Introduction to HTML

Day 41 Goals: what you will make by the end of the day

How Does the Internet Actually Work?

How Do Websites Actually Work?

Optional: Install the Atom Text Editor used in the Video Lessons

Introduction to HTML

The Anatomy of an HTML Tag

What we're building - HTML Personal Site

What is The HTML Boilerplate?

How to Structure Text in HTML

HTML Lists

HTML Image Elements

HTML Links and Anchor Tags

Day 42 - Web Foundation - Intermediate HTML

Day 42 Goals: what you will make by the end of the day

HTML Tables

Using HTML Tables for Layout

HTML Tables Code Challenge

How to Type Emojis

HTML Tables Solution Walkthrough

HTML Forms

Forms in Practice - Create a Contact Me Form

HTML Challenge

Publish Your Website!

Day 43 - Web Foundation - Introduction to CSS

Day 43 Goals: what you will make by the end of the day

Introduction to CSS

Inline CSS

A Quick Note about the Next Lesson

Internal CSS

External CSS

How to Debug CSS Code

The Anatomy of CSS Syntax

CSS Selectors

Classes vs. Ids

CSS Quiz

Day 44 - Web Foundation - Intermediate CSS

Day 44 Goals: what you will make by the end of the day

What We'll Make - Stylised Personal Site

What Are Favicons?


The Box Model of Website Styling

CSS Display Property

CSS Static and Relative Positioning

Absolute positioning

The Dark Art of Centering Elements with CSS

Font Styling in Our Personal Site

Adding Content to Our Website

CSS Sizing

Font Properties Challenge 1 - Change the Font Colour

Font Properties Challenge 2 - Change the Font Weight

Font Properties Challenge 3 - Change the Line Height

CSS Font Property Challenge Solutions

CSS Float and Clear

CSS Challenge

Stylised Personal Site Solution Walkthrough

[Optional] Get More Practice HTML and CSS

Day 45 - Intermediate+ Web Scraping with Beautiful Soup

Day 45 Goals: what you will make by the end of the day

Parsing HTML and Making Soup

Finding and Selecting Particular Elements with BeautifulSoup

Beautiful Soup Exercises

Scraping a Live Website

Is Web Scraping Legal?

100 Movies that You Must Watch

Day 46 - Intermediate+ Create a Spotify Playlist using the Musical Time Machine

Day 46 Goals: what you will make by the end of the day

Step 1 - Scraping the Billboard Hot 100

Step 2 - Authentication with Spotify

Step 3 - Search Spotify for the Songs from Step 1

Step 4 - Creating and Adding to Spotify Playlist

Day 47 - Intermediate+ Create an Automated Amazon Price Tracker

Day 47 Goals: what you will make by the end of the day

Step 1 - Use BeautifulSoup to Scrape the Product Price

Step 2 - Email Alert When Price Below Preset Value

Day 48 - Intermediate+ Selenium Webdriver Browser and Game Playing Bot

Day 48 Goals: what you will make by the end of the day

How to Install & Set Up Selenium

How to Find and Select Elements on a Website with Selenium

Challenge: Use Selenium to Scrape Website Data

Challenge: Use Selenium in a Blank Project & Scrape a Different Piece of Data

How to Automate Filling Out Forms and Clicking Buttons with Selenium

The Cookie Clicker Project

Challenge: Create an Automated Game Playing Bot

Day 49 - Intermediate+ Automating Job Applications on LinkedIn

Day 49 Goals: what you will make by the end of the day

Step 1 - Setup Your LinkedIn Account

Step 2 - Automatically Login

Step 3 - Apply for a Job

Step 4 - Apply for all the jobs

Day 50 - Intermediate+ Auto Tinder Swiping Bot

Day 50 Goals: what you will make by the end of the day

Step 1 - Setup your account on Tinder

Step 2 - Navigate to Login Page

Step 3 - Login with Facebook

Step 4 - Dismiss all requests

Step 5 - Hit Like!

Day 51 - Intermediate+ Internet Speed Twitter Complaint Bot

Day 51 Goals: what you will make by the end of the day

Step 1 - Setup Your Twitter Account

Step 2 - Create a Class

Step 3 - Get Internet Speeds

Step 4 - Building a Twitter Bot to Tweet at your Internet Provider

Day 52 - Intermediate+ Instagram Follower Bot

Day 52 Goals: what you will make by the end of the day

Step 1 - Get Your Instagram Credentials

Step 2 - Create a Class

Step 3 - Login to Instagram

Step 4 - Find the followers of the target account

Step 5 - Follow all the followers

Day 53 - Intermediate+ Web Scraping Capstone - Data Entry Job Automation

Day 53 Goals: what you will make by the end of the day

Capstone Project Program Requirements


Day 54 - Intermediate+ Introduction to Web Development with Flask

Understanding Backend Web Development with Python

Create your First Web Server with Flask

Understand the Command Line on Windows and Mac

__name__ and __main__ : Special Attributes built into Python

Python Functions as First Class Objects: Passing & Nesting Functions

Understanding Python Decorator Functions and the @ Syntax

[Interactive Coding Exercise] Create Your Own Python Decorator

Day 55 - Intermediate+ HTML & URL Parsing in Flask and the Higher Lower Game

Day 55 Goals: what you will make by the end of the day

Working Flask URL Paths and the Flask Debugger

Rendering HTML Elements with Flask

Challenge: Use Python Decorators to Style HTML Tags

Advanced Decorators with *args and **kwargs

[Interactive Coding Exercise] Advanced Decorators

Final Project - Higher or Lower URLs

Day 56 - Intermediate+ Rendering HTML/Static files and Using Website Templates

Day 56 Goals: what you will make by the end of the day

Rendering HTML Files with Flask

Serving Static Files using Flask

How to Use Website Templates to Speed Up Web Development

Final Project - Name Card Website Template

Solution and Walkthrough for the Name Card Final Project

Day 57 - Intermediate+ Templating with Jinja in Flask Applications

Day 57 Goals: what you will make by the end of the day

Using Jinja to Produce Dynamic HTML Pages

Challenge: Combining Jinja Templating with APIs

Multiline Statements with Jinja

URL Building with Flask

Blog Capstone Project Part 1 - Templating

Day 58 - Web Foundation Bootstrap

Day 58 Goals: What You'll Learn By the End of Today

What is Bootstrap?

Installing Bootstrap

Wireframing a Website

The Bootstrap Navigation Bar

What We'll Make - Tindog

Download the Starting Files

Setting Up Our New Project

The Bootstrap Grid Layout System

Getting Custom Fonts and Montserrat Black to Work

Adding Grid Layouts to Our Website

A Note About CSS Link Order

Bootstrap Containers

Bootstrap Buttons and Font Awesome

Styling Our Website Challenges and Solutions

Bootstrap Challenge 1

Solution to Bootstrap Challenge 1

The Bootstrap Carousel Part 1

The Bootstrap Carousel Part 2

Bootstrap Cards

CSS Z-index and Stacking Order

Advanced CSS - Media Query Breakpoints

Bootstrap Challenge 2

Solution to Bootstrap Challenge 2

Code Refactoring

Refactor Our Website Part 1

Advanced CSS - Combining Selectors

Refactoring Our Website Part 2

Advanced CSS - Selector Priority

Completing the Website

Day 59 - Advanced - Blog Capstone Project Part 2 - Adding Styling

Day 59 Goals: What you'll make by the end of today

Step 1 - Download the starting project

Step 2 - Get the home page to work

Step 3 - Fix the header and footer

Step 4 - Using Jinja Include fo Render Templates

Step 5 - Make the About and Contact Pages Work

Step 6 - Fetch and render the blog posts from an API

Step 7 - Rendering Individual Posts

Day 60 - Advanced - Make POST Requests with Flask and HTML Forms

Day 60 goals - Make the Contact Form Work

HTML Forms Revision - Creating a Form from Scratch

Handle POST Requests with Flask Servers

POST Requests in Flask Solution

Getting the Contact Form to Work

Sending Email with smtplib

Day 61 - Advanced - Building Advanced Forms with Flask-WTForms

Day 61 Goals: Building Advanced Forms

Installing Flask-WTF

Creating Forms with Flask-WTF

Code Improvements for Our WTForms

Adding Validation to Forms with Flask-WTF

Receiving Form Data with WTForms

Inheriting Templates Using Jinja2

Using Flask-Bootstrap as an Inherited Template

Flask-Bootstrap Supports WTForms

Day 62 - Advanced - Flask, WTForms, Bootstrap and CSV - Coffee & Wifi Project

Download the Starting Project

Look at the Desired Final Product

Check Off Each Requirement

Day 63 - Advanced - Databases and with SQLite and SQLAlchemy

Day 63 Goals: Creating a Virtual Bookshelf

Download the Starting Project

Make the Website Work

What Happens When You Refresh the Server?

SQLite Databases


CRUD Operations with SQLAlchemy

Build a SQLite Database into the Flask Website

Day 64 - Advanced -My Top 10 Movies Website

Day 64 Goals: What We'll Build

Download the Starting Project

Requirement 1 - Be Able to View Movie List Items

Requirement 2 - Be Able to Edit a Movie's Rating and Review

Requirement 3 - Be Able to Delete Movies from the Database

Requirement 4 - Be Able to Add New Movies Via the Add Page

Requirement 5 - Be Able to Sort and Rank the Movies By Rating

Day 65 - Web Design School - How to Create a Website that People will Love

Introduction to Web Design

Understanding Color Theory

Understanding Typography and How to Choose Fonts

Manage ATTENTION with effective User Interface (UI) Design

User Experience (UX) Design

Web Design in Practice - Let's apply what we've learnt!

Day 66 - Advanced - Building Your Own API with RESTful Routing

Day 66 Goals: Build Your Own REST API Service

What is REST?

Download the Starting Project

HTTP GET - a Random Cafe

HTTP GET - All the Cafes

HTTP GET - Find a Cafe

Postman - The all in one API Testing Tool

HTTP POST - A New Cafe


HTTP PATCH - A Cafe's Coffee Price

HTTP DELETE - A Cafe that's Closed

Build Documentation for Your API

Day 67 - Advanced - Blog Capstone Project Part 3 - RESTful Routing

Day 67 Goals: Building a RESTful Blog with Editing!

Download the Starting Project

Requirement 1 - Be Able to GET Blog Post Items

Requirement 2 - Be Able to POST a New Blog Post

Requirement 3 - Be Able to Edit Existing Blog Posts

Requirement 4- Be Able DELETE Blog Posts

Day 68 - Advanced - Authentication with Flask

Day 68 Goals - Login and Registering Users with Authentication

What is Authentication?

Download the Starting Project

Register New Users

Downloading Files

Encryption and Hashing

How to Hack Passwords 101

Salting Passwords

Hashing Passwords using Werkzeug

Authenticating Users with Flask-Login

Flask Flash Messages

Passing Authentication Status to Templates

Day 69 - Advanced - Blog Capstone Project Part 4 - Adding Users

Day 69 Goals - Adding Users to Our Blog Project

Download the Starting Project

Requirement 1 - Register New Users

Requirement 2 - Login Registered Users

Requirement 3 - Protect Routes

Creating Relational Databases

Requirement 4 - Allow Any User to Add Comments to BlogPosts

Day 70 - Advanced - Deploying Your Web Application with Digital Ocean

Day 70 Goals - Learn to Deploy Your Website

Version Control and Git

What is GitHub?

Step 1 - Upload Your Project to GitHub

Step 2 - Use gunicorn and Heroku to host your website

Step 3 - Setup a WSGI server with gunicorn

Step 4 - Upgrade SQLite Database to PostgreSQL

Day 71 - Advanced - Data Exploration with Pandas: College Major v.s. Your Salary

Day 71 Goals: what you will make by the end of the day

Upload the Data and Read the .csv File

Getting Set Up for Data Science

Preliminary Data Exploration and Data Cleaning with Pandas

Accessing Columns and Individual Cells in a Dataframe

Solution: Highest and Lowest Earning Degrees

Solution: Degrees with the Highest Potential

Sorting Values & Adding Columns: Majors with the Most Potential vs Lowest Risk

Grouping and Pivoting Data with Pandas

Learning Points & Summary

Day 72 - Advanced - Data Visualisation with Matplotlib: Programming Languages

Day 72 Goals: what you will make by the end of the day

Download and Open the Starter Notebook

Solution: Preliminary Data Exploration

Solution: Analysis by Programming Language

Data Cleaning: Working with Time Stamps

Data Manipulation: Pivoting DataFrames

Data Visualisation with Matplotlib

Multi-Line Charts with Matplotib

Smoothing out Time-Series Data

Programming Language Data Analysis

Learning Points & Summary

Day 73 - Advanced - Aggregate & Merge Data with Pandas: Analyse the LEGO Dataset

Day 73 Goals: what you will make by the end of the day

Use HTML Markdown to Make Your Notebook Look Pretty

Solution: Exploring the LEGO Brick Colours

Find the Oldest and Largest LEGO Sets

Visualise the Number of Sets Published over Time

How to use the Pandas .agg() function

Superimposing Line Charts with Separate Axes

Scatter Plots: Average Number of Parts per LEGO Set

Relational Database Schemas: Primary and Foreign Keys

How to Merge DataFrames and Create Bar Charts

Learning Points & Summary

Day 74 - Advanced - Google Trends Data: Resampling and Visualising Time Series

Day 74 Goals: what you will make by the end of the day

Data Exploration - Making Sense of Google Search Data

Data Cleaning - Resampling Time Series Data

Data Visualisation - Tesla Line Charts in Matplotlib

Using Locators and DateFormatters to generate Tick Marks on a Time Line

Data Visualisation - Bitcoin: Line Style and Markers

Data Visualisation - Unemployment: How to use Grids

Data Visualisation - Unemployment: The Effect of New Data

Learning Points & Summary

Day 75 - Advanced - Beautiful Plotly Charts & Analysing the Android App Store

Day 75 Goals: what you will make by the end of the day

Data Cleaning: Removing NaN Values and Duplicates

Preliminary Exploration: The Highest Ratings, Most Reviews, and Largest Size

Data Visualisation with Plotly: Create Pie and Donut Charts

Numeric Type Conversions for the Installations & Price Data

Plotly Bar Charts & Scatter Plots: The Most Competitive & Popular App Categories

Extracting Nested Column Data using .stack()

Grouped Bar Charts and Box Plots with Plotly

Learning Points & Summary

Day 76 - Advanced - Computation with NumPy and N-Dimensional Arrays

Day 76 Goals: what you will make by the end of the day

NumPy's ndarray - Incredible Power at Your Fingertips!

Generating and Manipulating ndarrays

Broadcasting, Scalars and Matrix Multiplication

Manipulating Images as ndarrays

Learning Points & Summary

Day 77 - Advanced - Linear Regression and Data Visualisation with Seaborn

Day 77 Goals: what you will make by the end of the day

Explore and Clean the Data

Investigate the Films that had Zero Revenue

Filter on Multiple Conditions: International Films

Seaborn Data Visualisation: Bubble Charts

Floor Division: A Trick to Convert Years to Decades

Plotting Linear Regressions with Seaborn

Use scikit-learn to Run Your Own Regression

Learning Points & Summary

Day 78 - Advanced - Analysing the Nobel Prize with Plotly, Matplotlib & Seaborn

Day 78 Goals: what you will make by the end of the day

Update Packages in Google Colab & Explore and Clean the Dataset

plotly Bar & Donut Charts: Analyse Prize Categories & Women Winning Prizes

Using Matplotlib to Visualise Trends over Time

A Choropleth Map and the Countries with the Most Prizes

Create Sunburst Charts for a Detailed Regional Breakdown of Research Locations

Unearthing Patterns in the Laureate Age at the Time of the Award

Learning Points & Summary

Day 79 - Advanced - The Tragic Discovery of Handwashing: t-Tests & Distributions

Day 79 Goals: what you will make by the end of the day

Preliminary Data Exploration and Visualising Births & Deaths at Vienna Hospital

Analysing the Yearly Data Split By Clinic

The Effect of Handwashing

Visualising Distributions and Testing for Statistical Significance

Learning Points & Summary

Day 80 - Advanced - Capstone Project - Predict House Prices

Day 80 Goals: what you will make by the end of the day

Solution & Learning Points

Day 81 - Professional Portfolio Project - [Python Scripting]

The Road to Becoming a Professional Developer

Day 82 - Professional Portfolio Project - [Python Web Development]

Day 83 - Professional Portfolio Project - [Python Scripting]

Day 84 - Professional Portfolio Project - [GUI]

Day 85 - Professional Portfolio Project - [GUI]

Day 86 - Professional Portfolio Project - [Game]

Day 87 - Professional Portfolio Project - [Web Development]

Day 88 - Professional Portfolio Project - [Web Development]

Day 89 - Professional Portfolio Project - [GUI Desktop App]

Day 90 - Professional Portfolio Project - [HTTP Requests & APIs]

Day 91 - Professional Portfolio Project - [Image Processing & Data Science]

Day 92 - Professional Portfolio Project - [Web Scraping]

Day 93 - Professional Portfolio Project - [GUI Automation]

Day 94 - Professional Portfolio Project - [Game]

Day 95 - Professional Portfolio Project - [HTTP Requests & APIs]

Day 96 - Professional Portfolio Project - [Web Development]

Day 97 - Professional Portfolio Project - [Python Automation]

Day 98 - Professional Portfolio Project - [Data Science]

Day 99 - Professional Portfolio Project - [Data Science]

Day 100 - Professional Portfolio Project - [Data Science]


Paulina10 November 2020

This is my second Angela's course and I absolutely love it! I am a developer but would love to learn new programming languages and her teaching style suits me very much as it is the most interactive, interesting course that keeps me focused and motivated to finish all the modules. This is probably the best money I have ever spent! Thanks Angela, you are the best.

Francis10 November 2020

The instructor is amazing. She know her stuff very well, and any student can understand the course easily.

Doug10 November 2020

The early bits of the course might not be targeted to me. I've been a developer since the cobol days, used python a few years ago on a project but only used what i needed. Still, learning things like f strings but waiting for the pace to pick up a bit

Jesse10 November 2020

Amazing course! Angela explains all concepts in detail along with the examples, which makes it much easier to actually understand. For beginners, breaking down the problem into smaller steps using a flowchart clarifies what needs to be coded and of course the how (AMAZING!). Also, the one minute "motivational" video at the end of each day is an excellent motivator to continue. Angela, you are a great teacher!

Mohammed10 November 2020

The course is easy to follow with additional resources given to help with our understanding. Everything is well explained I have learned so much in a small amount of time.

Marcel10 November 2020

I'm a big fan of Angela's classes, I loved the Flutter class and liked the web design one a lot (even though the latter was a bit outdated at times). This one here is excellent once again for the most part, the lessons come with Angela's awesome example-based style of teaching, explaining everything from scratch and including fun and geeky popular culture references. The class just overpromises a bit in terms of content and this is where it feels unfinished. You won't get 100 days of brand new video lessons. At the current date for the most part the new video content stops around day 37. After that most lessons are just textual tutorials and solutions with several reused video lessons from her older classes. Textual content would not be a problem if it was just revision exercise projects (like in days 80-100), but some concepts (like SQL, python notebook, regression etc) could really use more extensive explanatory videos instead of a short textual explanation. Especially the statistics / data analysis content in the later lessons is, although very important, pretty dry in this textual form. The reused content matches the excellent new content - the HTML, CSS and bootstrap state of the art is still the same as when those videos were recorded so they're not outdated at all and the examples in there are fun - but if you already took the web design class they won't bring anything new to you. That means if you already passed it at least 15 hours (about 1/4) of the class are already known to you, leaving you about 40 hrs of new video content + a lot of textual exercises + solutions, still a very good deal! All in all, another excellent class but be aware you currently only get about 50% of what you expect when you buy the class. Content is exceptional until day 30, pretty good from day 30 to day 45, still ok until day 58 but a bit dull for the rest.

Abhirup10 November 2020

print('Excellent' + 'marvellous') if instructor == 'angela': print('course is gonna interesting')

Shrithik10 November 2020

i have taken Angela's prior courses so this is perfect for me , she nailed the previous course , expecting the same with this one .

Jitendra9 November 2020

This is not the first time i am doing a course from Angela. I can blindfoldedly guess this also will be one of the best course and resources on python. The best part is Angela teaches keeping the learners mind in her place. She really understands how to teach. The explanations and teaching methodology everything is unique. I just love it. Thanks for another great yet content rich course.

Ariel9 November 2020

I love this course, mainly because every section is only an hour and the whole course is centered around giving you projects to master what you just learned immediately. I've tried multiple courses in the past and I think this is the first one I will actually complete!

Jean-Gustave9 November 2020

Excellent content, presentation, good pace, good audio and pleasant voice. Good combination of practice and theory. And knows how to test skills and highlight potential gotchas.

John9 November 2020

Yes, good match. Issues setting up repl.it account but ok know i think. Can't see how to get url line at top of my run console, as in the training video.

Antonio9 November 2020

Los cursos de Angela Yu y de AppBrewery son los mejores que he tomado hasta ahora. He tomado muchos y para mí estos son excelentes.

Iain9 November 2020

Just what I was hoping for, lots of interesting libraries being used, explained with nice data sets. Currently enjoying your use of Pandas with Squirrels.

Mohammad9 November 2020

Angela explains in such a simple manner that even 6 years old can learn Python by watching this video course


Expired11/3/202090% OFF
Expired1/9/202194% OFF
Expired1/29/202194% OFF
Expired2/27/202194% OFF
Valid3/18/202194% OFF


Udemy ID


Course created date


Course Indexed date
Course Submitted by