A robot is helping me learn Python

 

An example of a daily summary from my tutor Robot

I recently hired a tutor to help me learn Python. It just happens to be a robot.

Any job that touches an engineering function is more technical today than in the past. Product, Ops, and GTM Engineering roles are cross-functional and include a mixture of code and no-code tools. You need to read (and probably write) code well to do these jobs effectively.

I’ve learned a lot of technical tools in the past and pride myself on the ability to pick up a skill when I need it in the job. For some reason, Python coding has not stuck with me when I’ve learned it previously. The main reason? I haven’t made the stakes high enough and can usually switch to another language like Javascript when needed.

Finding a conversational option

Anyone who’s ever worked with me knows I ask questions when I’m learning something new. That makes pair programming work well and other kinds of methods less effective. When I’ve used “boot camp” methods like Datacamp, I do the sample problems well and don’t always map the learning to long-term memory.

The reason for this gap? The code I’m building in my current role is mostly bug-fixing or pattern-matching to existing patterns instead of net new code. I want to build a way to learn concepts just in time to have a bespoke technology tutor on any well-known subject.

The answer? Have ChatGPT’s “task” option set up a daily lesson pomodoro where it can ask me to demonstrate Python concepts.

How I set up a daily lesson in Python

To improve my Python skills, I’m using ChatGPT’s “task” option to give me a daily lesson. The goal is to have a conversation and learn new things, while letting the bot change the difficulty as I answer questions correctly. The task option sends me an email prompt at the same time each day to start working.

To customize the bot, I’ve created an instruction summarizing the topics we’ve covered that day that gets printed as a table at the end of the chat. I also asked ChatGPT to remember the topics we’ve covered so that I don’t get the same questions every day.

With this tool, I hope to move from a basic coder to an intermediate or better coder within 60 days of using this daily task.

What’s happening so far?

I’ve been using the tutor bot for about three weeks so far and I am noticing a few things that are different than previous methods I’ve used to learn Python:

  1. The quality of the examples is higher than the typical examples I see in learning content
  2. I like being able to have conversations with the bot when I don’t understand the concept or need additional information
  3. There’s a low barrier to show up for practice, so I do it, even on the days when I don’t answer as many questions

When I created the initial bot, I asked ChatGPT to assess my level as a Python programmer based on my answers to several questions, and we established the questions that made sense collaboratively based on my understanding. As I’ve progressed, the bot has given me more comprehensive questions that focus on problem solving instead of basic function usage or text manipulation in Python.

Here’s an example of a recent question:

 

It’s a good question for a novice programmer because you need to consider:

  • function building for readability and reuse
  • implementing recursion to traverse all of the items in a collection
  • avoiding edge cases that could cause an error

After considering my (admittedly less elegant) solution to the problem, ChatGPT responds with some improvements:

 

I don’t think this will replace basic education yet, but for common skills like Python programming, “just-in-time” tutorbots have real promise to help students level up their skills.

What I’d change in a future version

Now that I know the Chatbot can do a decent job of assembling content, taking questions, and critiquing results, I’d focus on a few things to improve:

  1. UI Improvements: Use Cursor to build an interface and store context in a database. I like the daily ping through email and it would be helpful to see my scores and progression against different common topics. In addition, using Cursor to build a python app (how meta) will help me see where I’m missing concepts and identify buckets to improve.
  2. Set a Curriculum: Identify a curriculum and topics and rotate questions through topics at different levels of difficulty. The current bot won’t work for other people as it’s tuned for me, but a standard series of onboarding questions and topic exploration would make this idea more general.
  3. Add Context: Build a “long-term” memory for the bot by creating a time series of questions and answers in a database. I’m not sure how much ChatGPT is actually storing right now instead of just filling in Mad Libs and giving me Jedi mind tricks to make me think I’m getting better at programming.
  4. Deepen Knowledge: Ingest some Python textbooks to give the bot additional context. Better content and context should yield more effective learning.

LLMs are not flawless tutors. Because of the way they work you shouldn’t take their token-tumbling as “thinking” —> they are matching up statistics to show you the next best answer completion to your prompt. But they do make an intriguing platform to self-teach … almost anything that’s well known.

What’s the takeaway? Daily tasks in ChatGPT make a good prototype for just in time learning. Because of their low lift to get started, you can design almost anything! They are not ready to be a full curriculum yet but have loads of promise as a learning building block.

gregmeyer
gregmeyer
Articles: 568