Idea to Launch: Python Web Development for Entrepreneurs Course

Course Summary

Have you ever wanted to create a startup or small web-based business? Do you know a little of the Python language? Great, that's a huge first step. But there are many elements to launching a successful online business and this course will fill in the gaps and help you realize your dreams.

What students are saying

Worth every penny! Great content delivery and the overall idea of the course is brilliant as it brings the experience of modern full-stack development and at the end, you get fully-functional and more importantly extensible platform with all bells and whistles
-- Dmitry Filippov, PyCharm Team Member

Source code and course GitHub repository

github.com/mikeckennedy/python-for-entrepreneurs-course-demos

What's this course about and how is it different?

Many courses will teach you about the technology involved in building a web application. Fewer courses will teach you what it actually takes to launch that product as an operating online business. Python for Entrepreneurs is here to teach you both how to build your website and everything needed to make it a functioning online business.

The overriding goal of this course is to dramatically shorten your time from idea to minimum viable product (MVP) to running in production and accepting online payments from months to weeks or even a couple weeks in some cases.

When building an online product or web app, it's easy to focus deeply on the product, the market fit, design, and these types of things. When you finally have it finished enough to launch your first version, you'll find yourself hit with a wave of many unfamiliar technical tasks before you can actually go live:

  • Accepting credit cards in a compliant manner
  • Storing user accounts in a 'hacker-safe' format to keep your product out of the headlines
  • Sending outbound email (e.g. as a user makes a purchase or resets their password)
  • Collecting users' email for outbound email marketing (mailing lists)
  • Domain registration and configuration
  • SSL certificates and configuration
  • Error logging and monitoring in production
  • Deploying to cloud servers
  • Configuring your cloud servers for scale
  • Testing your website performance and making it faster
  • Getting help via part time contractors so you can focus on product and growth
  • And so much more

You will learn all of these in this course: How to build a data-driven web app and launch it successfully.

Once you launch, you'll need to turn your focus to areas that, as a technical person, you probably have little experience with. So we will also cover

  • Design
  • Capturing and engaging users
  • SEO basics
  • Growth hacking basics
  • Showcasing your products

View the full course outline.

You will learn to build and design your web app

This course will teach you how to build a data-driven web application in Python. We will:

  • Build our web app with the Pyramid web framework, "the Python web framework that supports your decisions, by artisans for artisans."
  • Create and connect to our database using SQLAlchemy, the most popular data access layer in Python
  • Learn the core elements of web design including CSS and front-end frameworks such as Bootstrap.

What app will we build and explore?

We will start from absolute scratch: a new, blank web app. From there we will build the ecommerce site for my and your favorite fictional, tech-based rock band "Blue Yellow Rockets".

Here's a picture of the web application we'll build during the course.

What we will build: Blue Yellow Rockets webapp

A few things to note right from this screenshot:

  • The design is catchy and feels pretty modern
  • It has account management (via sign in / register)
  • Credit card and ecommerce capabilities under the albums nav link
  • Mailing list / subscription support via 'get notified' field

And that's just above the fold. It has all the features we've discussed so far and much more.

What is covered in depth

Estimated length: 15 hours
Average length of chapter: 45 minutes
Lectures per chapter: **5-10 video lectures

Chapters: See course outline below

Who is this course for?

The ideal student for this course is someone who knows a little (or a lot) of programming and wants to launch an online business based around a non-trivial product.

For example, if you have always spent your time in middle-tier programming at a big company and you want to break out of that mold to launch a competitor to AirBnB, then you found the right place to start. That would be a huge challenge, of course, but it gives you the idea of who we have in mind.

If you don't know Python, consider taking my Python Jumpstart by Building 10 Apps course first.

If you don't know any programming at all, you'll want to take a primer first. We recommend you take the free MIT course Introduction to Computer Science and Programming Using Python. Once you've learned the core computer science ideas you'll be ready to dive deeper into Python with my two courses (jumpstart course and entrepreneurs course).

Keep in mind, this journey you are starting is not necessarily (or even recommended to be) a leap before you look experience. You don't have to quit your job, build an MVP, and see if the market or VC community wants it. Even if you just want to build something small as a side business first, this course would be perfect for you.

Why Python?

A premise of this course is that you want build something special. While many web apps can be constructed from a wordpress instance and a bunch of plugins plus a premium theme, you won't really control that application.

You will need to make the changes and tweaks to create a truly custom web app that can adapt as you get customer feedback after launch or to new business models. We want you to have an application that you can build upon for a long time to come. This means you need a custom app and Python is one of the very best choices for this.

Pick and choose how you take this course

We understand everyone comes with a different background and might need something different to succeed. Remember, the overriding goal is to get you from where you are to launch as fast as possible. Towards that end:

This course is designed for random access.

Let's say you already know Python web apps, but don't know much about front-end design or accepting credit cards. That's fine, save the time, skip the web and database sections, just go from intro to web design basics to the credit card section.

Already know web design but need the Python web exposure? Perfect: jump right into the Pyramid and Python parts.

What if I use Flask or Django or even another tech?

If you use another web framework such as Flask or Django, don't worry. Almost everything we cover outside of explicitly covering Pyramid itself will be very relevant to you.

For example, we'll use Stripe Checkout for credit cards. This is basically the same across all three frameworks. We'll use Mailchimp for mailing lists and email marketing. Again, it's "pip install mailchimp" and carry on the same way across all three frameworks, etc.

Concepts backed by concise visuals

While building apps and learning as you go is engaging, it can be hard to fully introduce a topic in that format. That's why when we hit a new topic, we stop and discuss it with concise and clear visuals.

Here's an example for when we will start working with Stripe and credit card processing.

Example: Concepts backed by concise visuals

Backed by real experience and success

Michael and Matt have built a number of online web applications and launched them to varying degrees of success.

Michael's businesses (the podcast, related website, and online training website - where you'll take this course) have done extremely well since they launched over four years ago.

The Talk Python To Me podcast has over 17 million downloads and sponsorships are sold out through 6 month in advance. The courses are popular and continue to attract new and returning students. You will get a deep look inside these two web apps. During the course, you'll see the internals, including source code, of how these apps work and some of the growth hacking techniques Michael has used to make them successful.

Matt's Full Stack Python (open source) project has helped over a million readers learn programming, web development and application deployment since it launched in December 2012. Today, over 75,000 people per month read Full Stack Python and contribute back to the project by submitting pull requests and opening issues on GitHub.

Matt also inspires and equips fellow Python and Swift developers as a Twilio Developer Evangelist via his technical tutorials as well as in person at conferences and hackathons.

And, of course, we've both tried a number of ventures that failed too.

As much as possible, we will bring this experience to this course. We want to help you learn from what has worked for me and what hasn't.

Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Who we are and why should you take our course?

Meet Michael Kennedy:

Who is Michael Kennedy?

My name is Michael, nice to meet you. ;) There are a couple of reasons I'm especially qualified to teach you Python.

 1. I'm the host of the #1 podcast on Python called Talk Python To Me. Over there, I've interviewed many of the leaders and creators in the Python community. I bring that perspective to all the courses I create.

 2. I've been a professional software trainer for over 10 years. I have taught literally thousands of professional developers in hundreds of courses throughout the world.

 3. Students have loved my courses. Here are just a few quotes from past students of mine.

"Michael is super knowledgeable, loves his craft, and he conveys it all well. I would highly recommend his training class anytime." - Robert F.
"Michael is simply an outstanding instructor." - Kevin R.
"Michael was an encyclopedia for the deep inner workings of Python. Very impressive." - Neal L.

Meet Matt Makai:

Who is Matt Makai?

Hey there, my name is Matt Makai, thanks for considering my course! I'm stoked to teach this course for several reasons:

  1. I've been a professional software developer for over 15 years which has shown me how rewarding and empowering it is to create software for your own purposes.

  2. In 2012 I started Full Stack Python as a side project to help junior developers on my team learn how to build web applications with the Python programming language. This course is a natural extension of what is provided on Full Stack Python, with step-by-step instructions so anyone can build their own application even without prior programming experience.

  3. As part of the Twilio Developer Network, it's my goal to inspire and equip fellow software developers. Even if you don't consider yourself a developer, it's absolutely possible to build what you want if you're willing to take some of your own inspiration and put it into learning from hands-on videos that equip you to code.

Free office hours keep you from getting stuck

One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.

That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.

Just visit your account page to see the upcoming office hour schedule.

Is this course based on Python 3 or Python 2?

This course is based upon Python 3. Python 2 is officially unsupported as of January 1st, 2020 and we believe that it would be ill-advised to teach or learn Python 2. This course is, and has always been, built around Python 3.

The time to act is now

Become the Python developer you have always wanted to be. Join this course right now.

Course Outline: Chapters and Lectures

Welcome to the course
22:43
Welcome and thanks for coming
5:15
Meet your instructors
2:16
What you're going to learn
4:26
Built for random-access
3:26
What we are going to build
1:24
Corporate backers and deals
3:51
Video player: A quick feature tour
2:05
Course setup and tooling
12:41
What do you need to take this course?
1:41
Course setup on OS X
3:11
Course setup on Windows
3:59
Course setup on Linux
3:50
Python language refresher
18:05
Refresher Intro
1:39
Demo: Memory game - Structuring the program
5:28
Demo: Memory game - Implementing the game
10:17
Concept reviews are at the end
0:41
Build web apps with Pyramid: Part 1
1:02:47
What can you build with Python?
3:06
Spectrum of frameworks
2:04
Web Framework Performance
2:36
Pyramid principles
2:35
CLI Introduction
3:36
CLI Demo
6:27
CLI Concepts
3:31
PyCharm Demo
4:40
PyCharm Concepts
1:22
Template variations / inconsistencies
2:11
Project Structure
3:46
Running Pyramid in PyCharm Community Edition
4:53
Introducing Pyramid Building Blocks
1:34
Building Block: Views
2:28
Building Block: Routes
2:56
Building Block: config
1:19
Building Block: Models
0:47
Building Block: Templates
1:56
Managing outside dependencies
2:25
Installing with bower
6:32
Concept: Bower
1:32
Get the back story
0:31
Source Control and Git
41:56
Source control concepts
1:06
What is Git?
1:35
Installing Git
2:18
First time git configuration
2:56
Using the Git CLI
6:40
Git Repositories
3:34
Introducing GitHub
3:36
GitHub signup settings
4:54
Asymmetric key overview
2:51
SSH Key Management in Linux and macOS
2:57
SSH Key Management in Windows
2:42
Adding SSH keys in GitHub
1:39
Creating git repositories
2:38
Cloning repos in Git
2:30
Digging Further into Git
36:38
Working with Git
1:27
Git status
1:59
Git Staging and Committing
4:47
Git add
2:05
Git commit
4:08
Git remote
2:46
Git push
2:06
The Git commit log
3:02
Collaboration on GitHub
3:05
Modifying files on GitHub
3:40
Git pull
2:09
Desktop Apps for Git: Sourcetree
3:08
Additional Git resources
2:16
Web design foundations
1:09:24
Design intro
4:58
The power of css
3:02
CSS Further Reading
0:34
Style-sheet overview
5:35
Cache busting: Introduction
2:45
Cache busting: The demo
4:43
Cache busting: the solution
8:03
Concept: Cache busting
2:06
CSS: Selectors demo
5:24
CSS: Selectors concepts
1:42
CSS: Box model demo
4:53
CSS: Box model-concepts
2:20
CSS: Layout demo intro
1:15
CSS: Layout Demo
6:22
CSS: Floating demo
3:51
CSS: Floating Concepts
1:34
Browser Dev Tools
6:55
CSS What's Not Covered
3:22
Build web apps with Pyramid: Applied web development
1:50:28
Intro to applied web development
4:01
Demo: Remember the site we built? It's back!
2:09
Introducing Pyramid handlers: Classes as controllers
2:44
Installing Pyramid Handlers
2:11
Concept: Controller classes via Handlers
3:08
Getting started with handlers demo
4:07
Mapping routes to controller actions demo
5:51
Concept: Mapping routes to controller actions
1:39
Leveraging a base controller demo
3:16
Concept: Base controllers
1:08
Plugging leaky actions demo
3:35
Concept: Plugging leaky actions
1:39
A peek inside Talk Python
5:07
Introduction to Chameleon templates
1:05
Concept:Template introduction
1:05
Data flow from controller to template demo
3:45
Styling the list views of data
4:38
Navigation based on logged in status and demo wrap up
3:25
Concept: Shared layout (motivation)
2:15
Shared layout demo
8:16
Concept: Shared layout
3:13
Concept: Project structure with layout
0:34
Concept: Anatomy of an HTML form
1:46
Concept: GET-POST-Redirect pattern
2:20
Register on the site (handle GET section) demo
5:10
Register on the site (handle post section) demo
2:51
Register on the site (data from post section) demo
2:19
Register on the site (redirect or error section) demo
3:46
Register on the site (handle errors section) demo
3:44
View models demo (intro section)
4:11
View models demo (reading data section)
6:24
Concept: View models
3:30
Concept: Server-side validation with view models
1:10
Client-side validation demo
3:32
Concept: Client-side validation
0:54
Web design: CSS Frontend frameworks and Bootstrap
2:02:57
Front-end frameworks introduction
2:27
Front-end framework Survey
2:47
Introduction to bootstrap
9:15
Installing bootstrap (recap)
1:35
Grid layout benefits
2:14
Grid layout demo
6:05
Buttons in Bootstrap
5:21
Images in Bootstrap
7:09
Introduction to navbars
0:48
navbars demo
8:05
Dark navbars and overriding bootstrap
2:26
Concept: navbars
0:48
Introduction to Bootstrap forms
1:48
Demo: Bootstrap forms in action
4:23
Concept: Bootstrap forms
1:16
Introduction to Dialogs in Bootstrap
1:39
Dialogs in Bootstrap Demo
3:52
Concept: Dialogs in Bootstrap
1:24
Introduction to Bootstrap Themes
1:11
Survey of Bootstrap Themes
7:27
From theme to Blue/Yellow
2:33
Mix in the theme
11:37
Make the theme fit your layout
8:36
Adding our copy and content
4:23
Newsletter section
2:39
Upcoming events section
2:45
Band members section
3:22
A proper footer
4:24
Incorporating a theme: wrap up
3:31
Alternating rows via an HTML helper in the view
7:07
Accessing databases from Python: SQLAlchemy ORM
1:12:50
Introduction to SQLAlchemy
3:35
Popular deployments
2:18
Concept: SQLAlchemy architecture
2:27
Demo: Part 1 Creating the engine and base class
7:21
Demo: Part 2 Modeling albums and tracks
3:58
Demo: Part 3 Creating the tables
8:26
Demo: Part 4 Relationships
5:25
Demo: Part 5 Indexes and nullability
3:12
Concept: Modeling classes with SQLAlchemy
5:52
Demo: Creating the Unit of Work
2:13
Demo: Reading data
5:55
Demo: Web form for creating albums and tracks
2:13
Demo: Creating albums and tracks
10:35
Demo: Review of creating albums
0:54
Concept: Unit of Work Design Pattern
1:44
Concept: Querying data
4:40
Concept: Adding new data
1:26
Going deeper with SQLAlchemy
0:36
Building your email list
33:32
Introduction to mailing lists
2:29
Choosing a mailing list provider
4:33
Creating your mailchimp account
4:09
Storing your API keys in your web app
4:16
Form to handle the sign up request
4:50
Using the MailChimp API
8:19
Concept: The MailChimp API
3:36
Concept: Sending mail
1:20
User accounts and identity
1:04:04
Accounts introduction
1:37
Demo: Account class
6:36
Concept: Account class
2:18
Demo: Account table creation
1:05
Demo: Account object creation
8:03
Demo: Hashing passwords
12:08
Concept: Hashing passwords
1:36
A peek inside Talk Python accounts
2:51
Introduction to login in and out
0:59
Demo: Getting started with logging in
8:45
Demo: Reading the authentication cookie
4:57
Demo: Making the cookie tamper-proof
2:09
Demo: Indicating the signed in status
2:03
Demo: Logging out
4:11
Concepts: logging in
3:05
Concept: Logged in status
1:41
Sending and receiving email
1:14:56
Introduction to sending outbound email
2:27
Demo: Setup for sending email
5:14
Demo: Sending basic HTML email
6:05
Demo: Sending the welcome message (basic)
4:15
Concepts: Sending basic email
3:30
Demo: Sending rich templated email
12:09
Concepts: Sending rich templated email
2:09
Inbound email on your own domain name
4:20
Introduction to password resets
5:33
Demo: Setting up password resets
3:02
Demo: The password reset table
2:50
Demo: Creating resets
6:01
Demo: Emailing the reset code
2:02
Demo: Performing the reset
6:10
Demo: Setting the password
7:12
Concept: Password resets
1:57
SEO and Content Marketing
38:21
Search Engine Optimization (SEO) foundations
4:16
Content examples
10:46
Content titles and headers
3:24
Meta descriptions
3:38
Content length
4:46
URL structure
2:28
Site speed
6:48
HTTPS and Mobile Browser Support
2:15
Deploying to the cloud
1:49:51
Introduction to deployment
2:34
Hosting
6:08
Using Ansible
5:18
The initial configuration
22:53
The deployment playbook
7:26
Domain names
3:56
Let's encrypt
11:26
Deployment map
5:54
Using nginx as our web server
9:47
git-ting our source code
9:20
Application dependencies
7:14
Supervisor waitress
5:50
Setting up notifications
9:23
Updating resources
2:42
Making money (credit cards and businesses)
1:07:43
Making money introduction
4:53
Accepting credit cards options
2:33
Stripe Checkout overview
3:26
Demo: Checkout skeleton
4:14
Demo: Adding checkout javascript
11:35
Concept: Checkout JavaScript
2:21
Finalizing the purchase
9:43
Calling the Stripe API
8:09
Concepts: Finalizing the purchase
2:02
Business structures
4:29
US companies for people outside the US
1:16
Sales and pricing models
5:51
Purchase orders
3:53
The story of Stratechery
3:18
Monitoring and logging in production
1:05:07
Introduction to logging and monitoring
3:18
Introducing logbook: better logging than builtins
4:09
Creating the logging skeleton structure
6:12
Integrating logbook into our app
10:56
Logging dependency versions at startup
4:58
Logging made easy inside web action methods
5:59
Concepts: logbook
3:52
Introduction to Rollbar: Monitoring in production
1:52
A peek inside Michael's Rollbar account
6:31
Creating your Rollbar app
10:12
Setting up notifications in Rollbar
4:05
Concepts: Monitoring with Rollbar
3:03
Getting help (contracting, design, and more)
25:39
Introduction to getting help
4:02
Hiring contractors via Upwork
0:50
Inside Michael's projects at Upwork
3:12
Upwork: Reviewing the applicants
4:03
Upwork: A cautionary tale on hiring
1:48
Premium graphic design via 99designs
1:30
Python Bytes at 99designs
6:16
A little help for five dollars
1:07
Inside Michael's projects at fiverr
2:51
Growth hacking basics
26:10
Growth hacking marketing
4:50
Turkey carving
3:39
Email campaigns
2:49
Open source
3:44
Calls to action
4:44
Pricing pages
6:24
Course Conclusion
38:12
You've done it!
0:47
Showcase (of student creations)
0:40
Lightning review: pyramid-building-blocks
1:48
Lightning review: git
1:11
Lightning review: web-design-foundations
2:08
Lightning review: applied-pyramid
1:41
Lightning review: css-frameworks
2:08
Lightning review: sqlalchemy
2:24
Lightning review: mailing-list
1:15
Lightning review: Accounts
2:08
Lightning review: Sending email
1:02
Lightning review: SEO
3:04
Lightning review: Deployment
1:04
Lightning review: Credit cards
1:44
Lightning review: Monitoring
2:46
Lightning review: Getting help
0:58
Lightning review: Growth hacking
3:32
Get and update the source code
1:19
The final Pyramid cookiecutter template
5:54
Thanks and bye
0:39
Appendix: Python language concepts
46:01
Concept: The shape of a program
1:15
Concept: Variables
0:51
Concept: Truthiness
1:47
Concept: If else
1:24
Concept: Complex conditionals
1:31
Concept: for-in
1:41
Concept: Calling functions
0:59
Concept: Creating functions
1:33
Concept: File I/O
1:20
Concept: Imports and importing modules
1:59
Concept: Python package index
1:54
Concept: pip
2:26
Concept: Virtual environments
3:53
Concept: Slicing
2:53
Concept: Tuples
1:43
Concept: Named tuples
1:44
Concept: Classes
2:01
Concept: objects vs. classes
1:44
Concept: Inheritance
1:30
Concept: Polymorphism
0:53
Concept: Dictionaries
2:30
Concept: Error handling
2:38
Concept: lambdas
2:09
Concept: list comprehensions
2:57
Concept: Want more foundational Python?
0:46
Buy for $99 + tax Bundle and save 85% Team Gift

Questions? Send us an email: contact@talkpython.fm

Talk Python's Mastodon Michael Kennedy's Mastodon