Can ChatGPT teach me Python?

It’s popular to use AI tools to speed up certain tasks or create graphics, and videos, complete business plans or predict stock market moves…
I wanted to try something more practical and use ChatGPT as my personal Python teacher.

Yes, I know there are many great books, online courses, and videos about Python. That’s not the point.

I want to test a couple of things here:

  1. Can ChatGPT create a complex lesson plan?
    It requires a great deal of “planning”, an overview of “the big picture” and the ability to divide it into small chunks. Remember that I didn’t ask GPT to create a lesson plan that I will use as new prompts for each lesson. I asked it to make everything for me. I will only ask it for the next lesson, nothing more.
  2. Can it gradually increase the complexity of the lessons and not be repetitive?
    I have no idea how well it’s going to work. It may get stuck in a loop, repeating the same subject over and over, skipping important parts, or being too brief with the explanation. I will try to follow the lessons as much as possible and not introduce any additional requests or information.
  3. Can ChatGPT really work as a teacher?
    I have no idea… It’s excellent at answering specific questions, giving parts of simple code, or solving some problems, but this task is slightly different…
  4. Can I use this “project” as motivation?
    Consistency is the key to obtaining any new skill. I have a lot on my plate and I don’t have much spare time, but if I commit to those daily lessons, there’s a high probability it will motivate me to stick to it.

It’s 2nd of June, 2023 and I have completed my first lesson…

Used prompt:

You are an experienced Python 3 developer and a teacher.
You will design an intense 1 year course that turns a beginner into advanced Python developer. You will focus on practical application and code examples. Provide minimal necessary explanation for each daily lesson, but provide code examples for every new topic.
Add detailed explanations of the code as comments in the source code.

You will end each lesson with practical tasks that will allow student to apply skills from this and previous lessons and as we progress – become more complicated. Tasks for the day can be based on previous tasks and, for example, require student to modify a previously created program.

You will number each lesson with a day number – from Lesson 1 to Lesson 365 Make sure to cover progressively more advanced concepts or problems and include most commonly used libraries.
Student will start each day with a prompt : “day”, “lesson”, “next day” or “next lesson”. You will provide only the material for a given day.
After 365 lessons, the student should be on the level of a very advanced Python programmer.

Confirm you understand and wait for the first day prompt

All Lessons

Week 1

Lesson 1: Introduction to Python
Lesson 2: Variables and Data Types
Lesson 3: Basic Operations and Expressions
Lesson 4: Conditional Statements (if-else)
Lesson 5: Loops (for and while)
Lesson 6: Lists and List Manipulation
Lesson 7: Functions

Week 2

Lesson 8: Modules and Libraries
Lesson 9: File Handling
Lesson 10: Error Handling (Exception Handling)
Lesson 11: Object-Oriented Programming (OOP) – Classes and Objects
Lesson 12: Object-Oriented Programming (OOP) – Inheritance
Lesson 13: Object-Oriented Programming (OOP) – Encapsulation and Access Modifiers
Lesson 14: Object-Oriented Programming (OOP) – Polymorphism

Week 3

Lesson 15: Modules and Packages
Lesson 16: File Handling
Lesson 17: Error Handling (Exception Handling)
Lesson 18: Generators and Iterators
Lesson 19: Decorators
Lesson 20: Working with Databases (SQL)
Lesson 21: Working with JSON

Week 4

Lesson 22:
Lesson 23:
Lesson 24:
Lesson 25:
Lesson 26:
Lesson 27:
Lesson 28:

Week 4 Summary