Python for Beginners: Getting Started and Data Structures Course

Course Summary

Learning to program can be overwhelming. Concepts and facts come at you fast and most courses don't cover many of them at all or at a beginner's pace. This is not most courses. Python for absolute beginners is our premier course for beginning developers. We start at the very beginning, teaching you the big ideas and concepts covered in a CS 101 course. Then we move on to writing increasingly complex code and applications in Python.

What students are saying

For anyone who is on the fence, take the course, I was in the beginner ~ intermediate level and started his courses, immediate return on investment. Great teaching Michael!
-- Scott

Source code and course GitHub repository

github.com/talkpython/python-for-absolute-beginners-course

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

Most courses teach you the facts of programming and Python. Here is how a loop is constructed. Here is how you test a condition and make your program choose one path or another. Often they assume that you are familiar with programming concepts such as data types, loops, functions, and so on and that you just need to learn the details of how to do this in Python.

This course is not most courses. If you want ground up coverage of software development using Python as the technology, this is your course!

We spend significant time setting the stage to make sure you have the big concepts clearly covered before diving into writing code. We explicitly discuss how to approach problem solving when writing code so that you don't have that deer in the headlines feeling.

And the course content isn't just facts. You will see a lot of code written before your eyes. That code isn't boring foo() this and bar() that. We build several fun and challenging games covering a wide range of topics that will be entirely relevant to your professional projects.

If you never had that formal computer science background but need to jump into programming and Python, this course has your back.

What topics are covered

In this course, you will:

  • Learn how to install Python and a proper editor to write code on your computer.
  • See a quick, high-level overview of the big ideas of computer programming (e.g. data structures).
  • Understand how Python executes a program and turns what you write into executable software.
  • See how Python defines data types (integers, strings, etc.) and how to convert between them.
  • Create interactive code that has a conversation with the user or data.
  • Use functions to make your code more maintainable and reusable.
  • Choose the right data structure to significantly improve the clarity and performance of your code.
  • Create a basic AI / computer opponent for the games built during the course.
  • Learn many problem solving techniques to help you dive right into writing code productively.
  • See resources to help visualize connections between data created by your code.
  • Work with multiple file formats to read and write data as our program runs.
  • Use external libraries from pypi.org.
  • Add error handling to your application for a polished, reliable application.
  • And lots more

View the full course outline.

Who is this course for?

This course is for anyone who wants to learn Python and computer programming. If you haven't had a formal education in software development or have tried other courses and programming "didn't stick", then you are a great candidate student.

The student requirements are quite light for this course. You'll need:

  • Basic typing skills
  • Foundational computer experience (installing software etc.)
  • A simple computer (macOS, Windows, or Linux)
  • A desire to learn programming

Note: All software used during this course, including editors, Python language, etc., are 100% free and open source. You won't have to buy anything to take the course.

What games will we build?

I believe it's important to learn programming in the context of something that feels plausible and real. We won't build a bunch of disconnected loops and other programming examples that don't relate back to real programs. We will build several fun games that cover meaningful content that any elementary Python course would cover.

  1. Guess the number of M&Ms in a jar
  2. TIC-TAC-TOE
  3. Rock-Paper-Scissors (3-way and 7-way)
  4. A Connect4 clone

Concepts backed by concise visuals

While exploring a topic interactively with demos and live code is very engaging, it can mean losing the forest for the trees. That's why when we hit a new topic, we stop and discuss it with concise and clear visuals.

Here's an example of visualizing the relationship between shared data, data types, and variables.

Example: Concepts backed by concise visuals

Get hands-on for almost every chapter

Learning to code is an interactive experience. That's why it's important to write code and explore the apps we are building during this course.

Every chapter that touches on code has a practice exercises section.

Each section has a few concrete examples for you to work on after seeing the live coding and concept videos. They also come with core concept reviews to help you have the information you need to do the exercises right at your fingertips.

Example: Practice exercises

This course is delivered in very high resolution

Example of 1440p high res video

This course is delivered in 1440p (4x the pixels as 720p). When you're watching the videos for this course, it will feel like you're sitting next to the instructor looking at their screen.

Every little detail, menu item, and icon is clear and crisp. Watch the introductory video at the top of this page to see an example.

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 am I? Why should you take my course?

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.

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.

The time to act is now

If you've always wanted to learn programming and are considering Python as your gateway into that world, this is the course for you. We will fill in the concepts that would normally be covered in a CS 101 course without wasting your time taking semesters to cover what can be learned and practiced in a week or two.

Dive into Python and become a software developer with this course. Join today! You've got nothing to lose. Every one of our courses comes with a 2-week money-back guarantee.

Course Outline: Chapters and Lectures

Welcome to the course
21:46
Welcome!
1:45
Programming is a superpower
2:51
Why learn Python (over other languages)?
3:37
Student prerequisite knowledge
2:12
What will we cover?
4:53
How do I get help?
5:19
Meet your instructor: Michael Kennedy
1:09
Course setup and requirements
14:35
Installing and updating Python
3:06
Checking for Python on Windows
2:57
I do need to install Python, now what?
0:42
Setting up an editor
4:40
PyCharm Pro for Free
0:41
git the source code
2:29
The big ideas of software development
36:01
The big ideas
2:29
Big idea: What is source code?
2:39
Examples of code
5:56
Big idea: How does code execute?
2:49
Code execution diagram
4:23
Source code vs. byte code
2:21
Big idea: Algorithms
1:57
Big idea: Designing an algorithm
3:12
Formal algorithms
2:03
Beginners and experts
7:06
A conversation with Python beginners
1:06
Writing your first lines of code
37:25
Writing code intro
2:21
Running the Python REPL on macOS
2:04
Running the Python REPL on Windows
1:51
Demo: Happy birthday to me
5:36
Concept: Concept sections
1:33
Concept: Variables and types
2:54
Visualizing variables
5:41
Visualizing mutable data types
3:48
Using a built-in library
4:10
Getting input from a user
3:43
Practice time!
3:44
Code that interacts with users
33:41
Interactive code intro
1:00
Our first interactive program
1:10
Creating a project with PyCharm
2:48
Determining the number of M&Ms
5:02
Getting the guess
6:03
Checking for a win
3:55
Exit early on a win
2:24
Using a debugger
3:50
Concept: Conditional statements
0:52
Concept: Truthiness
1:40
Concept: Multiple conditions to test at once
1:38
Practice time!
3:19
Organizing and reusing code with functions
55:31
Intro to functions
2:40
Intro to our rocks
2:16
Demo: Starter Rock Paper Scissors
6:17
Checking for a win
6:24
Adding a computer opponent
2:37
Cleaning up Rock Paper Scissors with functions
5:42
Functions for play-game
5:58
A function for winning
4:40
Adding the best-of feature
6:36
Concept: A simple functions
2:01
Selecting the roll quickly
6:42
Concept: for-in loops
1:55
Practice time!
1:43
Cleaner code with common data structures
32:50
Introducing data structures
0:58
Our Rock Paper Scissors code has issues
2:31
Demo: Data structure basics (dicts, sets, lists)
6:16
Concept: Dictionaries
1:48
Demo: Better rules with dictionaries
4:17
Demo: Checking for winner with new rules
5:24
Improving win-tracking with dictionaries
5:40
Concept: Data structures simplify our code
1:26
Concept: Common data structures and when to use them
3:16
Practice time
1:14
Problem solving techniques for writing software
1:01:49
Getting started when you're lost
2:00
Some techniques for problem solving in programming
5:38
Our problem solving project
1:18
Demo: Divide and conquer in action
3:44
Demo: Create the board
7:07
Demo: Choose the active player
3:38
Demo: Play until someone wins
2:46
Demo: Show the board
5:11
Demo: Choose a location
5:44
Demo: Toggle active player
2:43
Demo: Find the winner, naive version
9:35
Demo: Find the winner, good version
6:09
Concept: Remember the debugger
0:42
Concept: Refactor as you go
1:30
Practice time
4:04
Reading and writing files in Python
58:16
Intro to reading and writing files
3:19
Max Q
1:46
Making the game extensible
3:00
Demo: Moving the rules to a file
5:51
Demo: Safer file handling
2:37
Demo: File location without assumed working directory
3:29
Demo: Extending the game
5:00
Concept: Reading JSON
1:04
Concept: Leader boards!
0:44
Demo: Saving wins
6:14
Demo: Displaying leaders
6:38
Concept: Saving JSON
1:28
Demo: Writing lines in a text file
1:59
Demo: Adding logging to Rock Paper Scissors
4:29
Demo: Writing lines to a text file
6:07
Concept: Appending a line to a text file
1:26
For real logging use a real framework
1:14
Practice exercises
1:51
Using external Python packages
39:44
Introducing external packages
2:10
Introducing PyPI, the Python Package Index
2:23
Adding a little more UI to rock paper scissors
1:26
Demo: Creating a virtual env
5:40
Managing requirements with the requirements.txt file
2:48
Demo: Adding color output with colorama
7:34
Word completion, basic edition
6:20
Word completion, substring edition
9:07
Concept: External packages workflow
1:15
Practice exercises
1:01
Error handling
23:22
Introduction to Python's error handling
1:40
Where are the invalid numerals
2:23
Catching invalid numerals
6:04
Invalid file formats
7:16
Stepping through errors in the debugger
3:08
Concept: Python's exception handling
1:26
Practice time
1:25
Course conclusion
13:23
Conclusion
0:29
Review: Variables and types
2:00
Review: Conditional statements
1:01
Review: Functions
1:43
Review: Data structures
2:19
Review: Problem solving
2:05
Review: File I/O
1:30
Review: External packages
0:57
Review: git the source code
0:24
Time to get in the game
0:55
Appendix: Jupyter as your editor for this course
3:37
What are Jupyter notebooks
1:54
Setting up jupyter lab as your editor
1:43
Buy for 74 CAD + tax Bundle and save 85% Team Gift

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

Talk Python's Mastodon Michael Kennedy's Mastodon