Complete Python Masterclass
4.6 (5,326 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
36,682 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Complete Python Masterclass to your Wishlist.

Add to Wishlist

Complete Python Masterclass

Python 3 is the in-demand programming language used extensively by Google. Master Python 3 and you’ll be in demand too!
4.6 (5,326 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
36,682 students enrolled
Last updated 8/2017
Curiosity Sale
Current price: $10 Original price: $145 Discount: 93% off
30-Day Money-Back Guarantee
  • 37.5 hours on-demand video
  • 13 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • You’re taught step by step HOW to program in Python
  • With each step, the WHY you’re doing it is explained
  • UNDERSTAND data structures and how to access the web with Python
  • The course is continually UPDATED, so you’ll learn the very latest
  • SUPPORT is mind blowing – questions answered that day
  • You’ll have the expertise to CREATE your own Python programs
  • The skills to get a JOB with Python under your belt as taught by the best
View Curriculum
  • You’ve either already got it or it’s FREE. Here’s the checklist:
  • A computer - Windows, Mac, and Linux are all supported. Setup and installation instructions are included for each platform.
  • Your enthusiasm to learn this go-to programming language. It’s a valuable lifetime skill which you can’t un-learn!
  • Everything else needed to start programming in Python is already included in the course.

So, you want to be a kickass Python programmer?

Let me guess. You want to do this without attending class, or going through a pile of textbooks or online guides.

Sound like you?

Yep, and I know the drill – you want to learn it straight away, so you can put your big plans into action and create stunning Python programs.

Well, I’m Tim Buchalka, one of your instructors, and I’ve designed the Complete Python Masterclass just for you!

Choosing a course that’s perfect for you can be damn hard. You need Instructors:

·      Who are passionate about what they do

·      Keep their courses continually updated

·      And most important, provide outstanding support and follow up to your questions

That’s what I do. And that’s the reason why I made it into the Top 10 List of Outstanding Instructors in the 2015 Udemy Instructor Awards.

Know that you’re in the right place to master Python. For starters, this course will help you develop Python programs for Microsoft Windows, Mac OS X, and Linux.

Learning Python will give you more opportunities for jobs and career advancement because Python is one of the most requested skills in 2017!

This course assumes no previous programming or Python experience. If you’ve never programmed a computer before, or if you know another programming language and want to learn Python, this course will teach you how.

To reinforce what you’ve learned, there are numerous challenges during the course designed to help you understand each concept being taught. You’re also shown the solution to the challenge so you know you’re always on the right track.

The course is continually updated and enhanced, and fully supports Python 3. This guarantees what you’re learning is relevant for you today and will never be obsolete.

Click the Free preview button on this page and check out a few of the videos to judge the quality yourself.

And if you have any doubts about the course, be blown away by the glowing reviews left by students on this page.

Your instructors are myself and Jean-Paul. Between us we have a collective sixty years of commercial software development experience, meaning you’re learning the right way to program to maximize your future development potential.

Importantly, our courses teach students the real-life skills needed to get those in-demand jobs or further your programming skills.

Take this course in confidence today knowing you have just found the BEST Python course on Udemy!  Don't delay. Every minute you’re not learning Python is another potential opportunity wasted.

Click the Buy Now button and start learning now!


"I've purchased other courses from Tim before, and he is one of my favorite Course Instructors on Udemy. He provides a lot of detailed information, and concrete examples to help assist with learning difficult concepts of programming. Tim also cares about his courses a lot, and this can be seen with how often courses are updated with new information, and how Tim sends out announcements to students in his courses. If on the fence about purchasing a course in programming because "programming might be difficult", purchasing one from Tim will greatly alleviate that concern." - Kieran Thomsen

"This course is really awesome! Kudos to the instructors....They make really honest efforts to push the concepts deep into the students' mind. It seems like they actually know where a student can have doubts hence they put more emphasis on those points..I am more than 100 % satisfied and more than that, I get a really good feeling after going through each I learnt something new today..Hats off to you guys!" - Mayank

Who is the target audience?
  • The course is PERFECT for you if you’re a beginner or intermediate. No previous programming experience is assumed!
  • If you are an expert Python programmer with extensive knowledge, and many years’ experience, then this course is probably not for you.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
199 Lectures
1 Lecture 04:47

Have an understanding of what the course is about.

Preview 04:47
Python Setup for Windows
6 Lectures 34:05

Have an understand of what this section is all about.


This lecture will guide you through installing Python on Windows. We will cover where to download the Python installer from, how to install and set it up and also how to confirm Python is successfully installed and ready to use.

Preview 03:49

Start using Python with IDLE on Windows. IDLE is the Integrated development environment that comes standard with Python. While we won’t be using this for most of the course, its a good introduction to Python and can be useful for you to know about.

Preview 13:47

How to get your extended 90 day trial of IntelliJ Ultimate edition!

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

Move to next section!
Python Setup for Mac
6 Lectures 33:10

Get an understanding on what this section for Mac users is all about


This lecture will guide you through installing Python on Max OS X. We will cover where to download the Python installer from, how to install and set it up and also how to confirm Python is successfully installed and ready to use.

Preview 03:51

Start using Python with IDLE on Mac OS X. IDLE is the Integrated development environment that comes standard with Python. While we won’t be using this for most of the course, its a good introduction to Python and can be useful for you to know about.

IDLE on Mac OS X with a cool demo app!

How to get your extended 90 day trial of IntelliJ Ultimate edition!

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available

Move to next section!
Python Setup for Linux
5 Lectures 35:55

Having an understanding on what this section covers for Linux users


This lecture will guide you through installing Python on Ubuntu Linux. We will cover where to download the Python installer from, how to install and set it up and also how to confirm Python is successfully installed and ready to use.

Preview 03:39

Start using Python with IDLE on Ubuntu Linux. IDLE is the Integrated development environment that comes standard with Python. While we won't be using this for most of the course, its a good introduction to Python and can be useful for you to know about.

IDLE on Ubuntu Linux with a cool demo app!

This lecture will introduce you to IntelliJ, the main tool we will be using in this course. You will learn where to download it, and how to install it on a machine running Ubuntu Linux.

Installing IntelliJ (FREE and PAID versions) on Ubuntu Linux

How to get your extended 90 day trial of IntelliJ Ultimate edition!

Free 90 Day Extended Trial of IntelliJ Ultimate Edition Now Available
The Basics of Python
6 Lectures 01:10:59

Have an understanding on what this section is going to offer in teaching you Python basics


This lecture is aimed at giving you a rundown on Python and its history (dont worry its not boring). You will learn how to create a project for the first time, how to make use of the print command to display information to the screen, as well as finding out what strings and operators are and how they work.

Getting To Know Python

Let’s talk about getting input from the keyboard, and displaying the results, and then move on to the various ways to display output on a new line.

Understanding More About Python

This lectures will discuss a fundamental concept in Python (and other programming languages). How to store items to be used in a program. You will understand what variables are and their purpose in Python. You will also understand more about operators, and how to make use of them. The operators we will discuss include +, - , *, / , and //.

Preview 16:25

Moving on with variables, we now discuss the importance of brackets for operator precedence, and how it can impact your calculations. You will also learn more about String variables, and the various ways of display them.

More About Variables And Strings

String formatting is another important concept in Python, and you will learn about it in this video. Specifically, what String formatting is, how to apply it in your code, and display Strings and numbers. You will also be introduce to replacement fields, which is important when it comes to printing out multiple strings and numbers.

String Formatting - Displaying Numbers And Strings
Program Flow Control in Python
13 Lectures 02:20:49

Get and understanding on the various types of Program Flow Control lectures you will be tackling in this section


Its time to discuss the basics of Program Flow Control. Namely, what it is and how its used, and how its an important basic fundamental in Python programming. You will also learn about indentation which is something not required in many other programming languages, and how using it incorrectly can prevent programs from working.

An Introduction To Program Flow Control

If, ElIf, and Else are important building blocks for Python programs. Here we are going to discuss what they are used for, namely condition processing of your code, which is essential to creating any program of even minimal complexity.

Preview 18:44

This lectures continues where we left off with If, ElIf, and Else. This time we will use more complex versions and get to know the and and or operators.

More Advanced If, ElIf & Else Processing

This is a challenge lecture to better understand your knowledge of If, ElIf, and Else. As with all challenges in the course, try solving the challenge first, and then come back and see how we did it. The challenge involves creating a program that asks the user to enter the name and age and check if the age meets our requirements to take a holiday.

Preview 06:30

A for loop is use by programmers to execute a line or block of code a given number of times. You will learn what how to generate a for loop in Python.

For Loops

We move on to more advanced applications of for loops, such as printing out a sequence of strings. We also get to know about using step in your for loop and its usefulness.

Extending For Loops

In some cases you may want to break out a for loop early. We are going to look at continue and break which are two ways to help control the flow of your Python program. Plus we are going to look at a second and separate use of Else that we have not seen previously.

Preview 16:26

IntelliJ does a great job to warn us if our code has errors, but it also suggests if there are ways for the code to be improved. We will find out how to use the markers that show up on the right hand side of the screen to check for warnings in our code. We will also learn to use a short hand way to assign values to variables with a concept called Augmented Assignment.

Preview 09:42

Challenge - Program Flow - Part 1

Challenge - Program Flow - Part 2

A for loop is only one type of loop. Another loop used in Python is the while loop, which is based on conditions you set, rather than executing a given number of times. You will learn about the while loop in this video

While Loops

This is a challenge for the while loop. The challenge consists of you developing a program that allows as many guesses of a number as possible and should the let the player know if the guess is higher or lower (its an advanced version of code we developed without a while loop previously).

Challenge - While Loop
Lists, Ranges & Tuples in Python
9 Lectures 01:26:08

You are going to understand what the sections covers when it comes to the topic of Lists,Ranges and Tuples.


This lecture introduces you to the basic sequences in Python. Namely Lists, Ranges and Tuples. We will focus mainly on Lists here, what they are, how they work, and all about sequences. Plus we will start on sequence operators. We will even cover how to sort your lists simply and efficiently.

Lists In Python

This lecture continues the discussions on lists with an exercise on using the list function to print each and every single character of a string. We discuss some inbuild options like setting reverse=true to reverse the sorting of elements in a list.

Preview 09:56

This is a challenge for lists, designed to test your understanding of them. You should come away after completing the challenge with a better understanding of lists.

Challenge - Lists

Its time to discuss Iterators and Iterable Objects. We discuss the relationship of Strings and Lists with Iterators which should help you understand how useful they are and how to use them. There is also a mini challenge in this video as well.

Understanding Iterators

Ranges are a useful addition to for loops. You will learn about Ranges here. Specifically, you will learn about having more fine control on what part of the sequence you want to process. In addition, you will understand what to do and importantly, what not do when using Ranges in your Python code. We finish with understanding Slices, what they are and how to implement them with ranges.

Preview 11:35

We continue on with Ranges from where we left them in the previous video. Lets look at understanding equality in ranges, as well as how to reverse a range in order. We also go through a mini challenge to test our understanding of Ranges.

More About Ranges

This lecture focuses on tuples, what they are (an alternative to Lists), and how they are important if you want to have an immutable sequence (you will understand what that means as well). We will also discuss when to use a list, and when to use a tuple.

Ordered Sets With Tuples

Continuing on with Tuples, here are will look at more advanced concepts. Specifically, how to put tuples within tuples. And we will finish off with a mini challenge where you will need to figure out how to use Tuples to print a music album's individual track details.

Preview 14:49
The Binary number system explained
4 Lectures 31:31

Have an understanding on what this section on Binary number system will cover.

Introduction to the Section

An introduction to what Binary actually is

Binary Basics

A deeper discussion on what Binary is and how to implement it

What is binary

In this section you will get an understanding on how Hexadecimal and Octal relates to the Binary system as well as a challenge in the end

Hexadecimal and Octal and the Challenge
Python Dictionaries and Sets
9 Lectures 02:04:36

Have an understanding on the various topics you will go through in this section.

Introduction to the Section

The part 1 to understanding dictionaries in Python

Preview 16:06

Part 2 to understanding dictionaries in Python

Dictionaries Part 2

The final part to understanding dictionaries in Python

Dictionaries Part 3

Tackle the 2 challenges for dictionaries

Dictionaries Challenge

Get a more deeper understanding on Dictionaries

Preview 16:54

The second challenge for the Dictionaries topic

The Second Dictionary Challenge

Get to know about sets in Python and gain an understanding on how to use it.


Continuation on the discussion on sets as well as a Python challenge all around it.

Python Sets Part 2 and Challenge
Input and Output (I/O) in Python
11 Lectures 02:25:23

Have an understanding on the various topics you will learn from this Input and Output section.

Introduction to the Section

Get an understanding on the number of ways to read a file.

Reading and writing text files

Get an understanding on the number of ways to write a file.

Writing Text Files

Understanding how to use the mode to append files as well as a challenge about it

Appending to Files and Challenge

Have an understanding on how to write binary files in Python

Writing Binary Files Manually

Get to know Pickling in Python and how it is use to write binary files

Preview 19:35

Get an understanding on the alternative to Pickling and that is the Shelve module


Learn how to manipulate data in a file using the Shelve module

Manipulating Data With Shelve

Go into understanding on how to update values stored in a shelve, a common way to increase performance and also tackle a problem that people often encounter in the shelve module

Updating With Shelve

Learn how to get pass the errors when converting a Dictionary into a Shelve as well as go through the Shelve challenge

Shelve Challenge

Continuation of the Shelve challange

Challenge Continued
8 More Sections
About the Instructor
Tim Buchalka
4.6 Average rating
32,232 Reviews
157,921 Students
4 Courses
Java, Android & Python Expert Developer - 157,000 students!

Tim's mission is simple:  to make a difference in your life by helping you to become a software developer.  Tim does that through his Android, Python, Java and Spring Framework courses.

When Tim started programming over thirty years ago, there was no online video training.  

There was no "easy" way to learn.  The Internet, in its current form, didn't exist, and as a result, Tim couldn't "Google" for help, or watch videos on Youtube.

After learning the hard way, Tim was determined to become the best teacher he could, and to make his training as painless as possible, so that you, or any one else with the desire to become a software developer, could become one.

In between doing that, Tim spent the best part of those years as a professional software developer writing applications in Java, and a variety of other languages.  In addition he spent many years with J2EE (as it was then known), now known as Java Enterprise Edition (JEE), designing and developing enterprise applications.

Tim is relatively unique, in that he is a professional, experienced software developer who also has exceptional teaching skills.  

Many instructors have no work experience in the field!  Make sure the person you trust with your education is a real expert with substantial previous professional experience.

The bottom line for you is, when taking any of Tim's courses, is that you will learn the right way to do things from an expert, in the shortest possible amount of time.

Tim's Java, Android, and Python courses, here on Udemy are of the highest quality as reviewed by his students.   Ten's of thousands of students, just like you, have taken his classes, thousands have left glowing reviews, and many have gone on to full-time jobs, or consulting/freelancing opportunities after completing one of his courses.

Tim recently placed in the top ten Udemy instructors as voted for by his students and Udemy themselves.  

What does all of this mean for you?

You can have full confidence that Tim's courses are of exceptional quality, and that he can teach you to become a software developer if you have the desire to become one.

Are you ready to start?  You can get started today!  No previous experience is necessary.

In 2017, video training is the quickest way to learn, and with Tim's experience and training, it is possible for you to become a software developer!  You can do this!

Why not start today?  Click one of his courses below, and watch his introductory video, to find out more about who he is and what he can offer you.

Jean-Paul Roberts
4.6 Average rating
8,115 Reviews
55,450 Students
2 Courses
Computer programmer, analyst and teacher

I am a programmer with over 30 years' experience gained in a range of industries, the last 16 with IBM.

I am now self employed developing apps for Android; programming in a range of languages including Java, Javascript and Python; and helping the next generation of programmers gain the skills that I have acquired over the years.

The first program I sold controlled stock movement in a warehouse, and ran on a CP/M computer - both the program and operating system lived in the 64 kb (yes, kilobytes) that was all CP/M systems had in those days.

I have gained experience in a wide range of industries including Utilities, Retail, Insurance and the Motor Manufacturing industry. My clients and employers have included Northumbrian Water, Arcadia, Royal Sun Alliance, Nissan and Jaguar Landrover. I also worked for Sunderland University for 3 years preparing and delivering training courses in computing.

Times have changed, the challenges are very different to what they were, but programming remains fun!

When not at my computer, I am often riding my motorbike through the wonderful countryside of the UK and Europe.

The Learn Programming Academy
4.6 Average rating
32,232 Reviews
157,921 Students
4 Courses
Industry experts teaching the essential skills for success

The Learn Programming Academy was created by Tim Buchalka, a software developer with 35 years experience, who is also an instructor on Udemy, with over 155,000 students in his courses on Java, Android, Python  and the Spring framework. 

The Academy’s goal in the next three years, is to teach one million people to learn how to program.

Apart from Tim’s own courses, which are all available here, we are working with the very best teachers, creating courses to teach the essential skills required by developers, at all levels.

One other important philosophy is that our courses are taught by real professionals, 
software developers with real and substantial experience in the industy, who are also great teachers.  All our instructors are experienced software developers!

Our team is busy creating new courses right now.

In the coming weeks and months, new courses are due for release covering the following topics.

Android Development with Kotlin
Angular 4
Big Data using Python
C Programming
C++ for beginners
Data Structures and Algorithms
Design Patterns
iOS 11 / Swift 4
Java Associate Exam
Kotlin for Java developers
LibGDX Game Development with Java
Oracle PL-SQl
Ruby for beginners.
Ruby on Rails
Unity Game Development with C#
Unreal Game Programming using C++
Web Development
What’s new in Java 9

Whether you are a beginner, looking to learn how to program for the very first time, or to brush up on your existing skills, or to learn new languages and frameworks, the Academy has you covered.