Course Overview

Programming is fun and profitable. Learning to become a software developer should be equally fun! This course will teach you everything you need to know about the Python language all the while building interesting and engaging applications.

Key Learning Areas

It's for people who have some programming / scripting experience and want to improve their Python knowledge. Maybe you

  • Know JavaScript but you want to learn Python
  • Used Python casually, but you want to learn it comprehensively
  • Know part of the language well, but want rounded knowledge
  • Want to write more Pythonic code (iterators, comprehensions, etc.)
  • Are a scientist looking to use the Python data tools and need a foundation
  • Are a college student and want more than your university course offers
  • Considering becoming a software developer

If any of those descriptions fit you, then you're my target student. This course was written for you.

Course Outline

The course will cover Python 3 (3.5 specifically), but 96% of what you learn will be translatable back to Python 2 with virtually no effort. The few features that are Python 3 specific will be highlighted as such (e.g. new dictionary merging syntax).

Python 2 will literally become unsupported in less than 4 years (in 2020). That's coming up faster than people realize and focusing on Python 3 going forward is important.

We will build the following apps, which among many other things, focus on the language concepts listed under them.

  • Hello World App
  • Guess That Number App
  • Birthday App
  • Personal Journal App
  • Weather Client App
  • LOLCat Factory App
  • Wizard Battle Game App
  • File Searcher App
  • Real Estate Analyzer App
  • Movie Lookup App

Who Benefits

Most courses focus on teaching you hundreds of details and leave putting them together as an exercise for the student. My course is different.

You will learn all the basics, yes. But you will learn them while building 10 standalone applications. You will see each application built from the ground up in live demos. When we hit new topics (functions for example), we will pause, discuss them, and return to our application we are building.

This way you will continuously be "putting the pieces together". You don't have to wade through many small details before making sense of Python. It starts right from the beginning and grows from there.


No experience in Python is assumed. This course teaches you Python from the ground up. However, some level of programming concepts is assumed (loops, functions, etc.) in any language.