ChatGPT is a conversational bot launched by OpenAI in November 2022 as a prototype for beta testing and feedback. Among the many things it can do, it can teach you programming languages. This article explores how the conversational nature of ChatGPT can be leveraged to learn Python.
Let’s get started
What is ChatGPT?
GPT (Generative Pre-training Transformer) is a type of language model developed by OpenAI that uses deep learning techniques to generate human-like text. ChatGPT is a variant of the GPT model that has been specifically trained to engage in conversation with humans. It is able to generate responses to user input by predicting the next word or phrase in a conversation based on the context of the conversation. ChatGPT is an example of a chatbot, which is a computer program designed to mimic human conversation in a chat or messaging interface. ChatGPT can be used for a variety of purposes, including entertainment, customer service, and education.
The definition above was generated by ChatGPT itself. Impressive, isn’t it?
But what ChatGPT actually is?
The Human definition
ChatGPT is the newest “chatbot” in the market. However, its creators prefer calling it a model rather than a bot. It is build on top of OpenAI’s GPT-3.5 family of large language models. The GPT in ChatGPT stands for Generative Pre-trained Transformer. The conversational bot is trained to engage in human-like conversations. It maintains context, admits mistakes, accepts follow-up questions and provides updated information. One thing to remember is that the information provided by ChatGPT is from its trained models and not from the Internet. ChatGPT has no access to the Internet and the information it provides is as fresh as when the model was last updated.
As you start interacting with ChatGPT, you will start realizing that it is astonishing and scary at the same time. Astonishing due to its insane capabilities and its ability to mimic a human-like conversation. Scary, because of the ways these capabilities can be used or misused.
According to its official website, “Python is a programming language that lets you work more quickly and integrate your systems more effectively.”. It is a general purpose, high-level, open-source, cross-platform, multi-paradigm programming language. Python is a scripting language and uses indentation to separate code blocks rather than using braces. It supports multiple programming paradigms like structured programming, object oriented programming and functional programming.
Let’s start learning…
To begin, let’s ask ChatGPT to chart out a learning plan for us.
Note that the response you receive from ChatGPT may be completely different from the ones you see here.
ChatGPT returns a very verbose list of steps to be followed to learn Python, just like a human tutor does.
Let’s ask “Teach me Python” and see what it returns
That, sure enough, is pretty good information about Python and its basics. It starts by explaining what Python is and how basic programming concepts like Variables, Data types, Operators, Control flow and Functions are defined and used in Python.
Let’s dig deeper into next topics. I’m going to ask ChatGPT to explain how functions are defined and used in Python
It starts by explaining the syntax for declaring functions with examples. It also explains in a human-like manner how parameters and defined and used within a function and how parameters can have default values. Then it moves on to explain how functions can have multiple parameters and return multiple return values. In each of these steps, it also provides examples of how the functions can be invoked, parameters passed and return values accessed. Notice how each step is accompanied by code examples. Pretty impressive, isn’t it?
Create and consume REST APIs
Let’s move on to advanced topics. Let’s ask ChatGPT how to use create and host a REST API and invoke it. Note that I did not specify Python in my question, but ChatGPT still infers it from the context of the conversation.
As you can see, it starts by explaining that to create REST API in Python, you need to use a web framework such as Flask. It then provides a fully working example of how to define functions that will handle the requests and how to define routes and associate them with functions. Following the code example, it explains how the endpoints work and then moves on to show code examples of how to invoke the APIs.
Note how the entire conversation feels like you are actually talking to a human tutor and in no way feels like a machine generated instructions.
Download files from Cloud Storage providers
ChatGPT even understands incomplete requests and tries to infer the intent of the request and provides appropriate information. For example, if you ask it to write code to download files from the Cloud, it actually returns code to connect to DropBox using its API and download the files.
We’ll move on next to ask few questions on the data handling capabilities of Python.
Note how ChatGPT understands that you haven’t discussed data handling earlier and how it introduces you to the pandas library for joining data frames. Note the description of pandas library and how it contrasts with the description of pandas for the next questions. When you ask ChatGPT how to remove duplicates from a data frame, it explains the data cleaning and manipulation capabilities of the pandas library.
Again, ChatGPT answers your question with a fully working code example and also explains the code line by line.
To understand basic mathematical capabilities of Python, let’s ask ChatGPT to write code to determine if a number is prime or not.
The working code example and the detailed explanation of each step helps you understand not just the algorithm, but also what programming constructs to use to implement the algorithm in Python.
Be warned, ChatGPT can be completely wrong sometimes
Sometimes, ChatGPT can return completely wrong, inaccurate or misleading information, especially for presumptive questions like this. So, it is a good practice to cross check its responses when you are doubtful about them.
More Conversation Ideas
You can continue the conversation and ask more questions like these:
- How can I create a Web application in Python?
- What Machine Language packages are available in Python?
- What Data Analysis packages are available in Python?
- How can I run Python in AWS Lambda?
- Write a Python program to back up a PostgreSQL database
- Write a Python program to exchange data using a TCP channel
- Write a Python program to parse a web page and inspect a text box inside the page
- How do I use loops and control statements in Python?
- How do I handle exceptions in Python?
- How do I work with files and directories in Python?
- How do I use modules and packages in Python?
- How do I perform basic data manipulation and analysis with Python libraries such as NumPy and Pandas?
- How do I use Python for web development with frameworks such as Django and Flask?
- How do I use Python for machine learning with libraries such as scikit-learn?
- How do I use classes and object-oriented programming in Python?
- How do I use modules and import statements in Python?
- What are the differences between lists and tuples in Python?
- How do I use a for loop in Python?
- How do I work with data structures in Python, such as lists and dictionaries?
- How do I install and use third-party libraries in Python?
Let’s ask ChatGPT to tell us where we can find more information about Python.
Let’s thank ChatGPT
Like we’d normally thank a human tutor at the end of the course, let’s thank ChatGPT and see how it responds.
Learning a new programming language is a tedious task. Every language is different and we generally tend to get confused and lost when beginning to learn a new language, and are generally limited by our tendency to compare what we already know to what we are learning. Working code examples help us understand new concepts better and break these limitations.
The methods explained in the article can be used to learn anything about Python. Just ask the question in simple worded and clearly laid out sentences and ChatGPT will return appropriate responses. Remember that ChatGPT maintains context throughout the conversation and it is usually not necessary to make verbose questions. But if you find ChatGPT having difficulty in understanding your statement, just rephrase your statement and try adding some context that you think can help ChatGPT return more relevant and accurate information.
ChatGPT can serve as a very good starting point to learn the basics, intermediate and advanced topics of any language with code examples in a short span of time and a focused approach without getting distracted. It may not always return working code or accurate information, but the information it provides for most languages is good enough to get us started with the languages or feature and servers as a significant step in our journey towards learning the language.
I’m sure you’d have your own interesting insights and experiences interacting with ChatGPT, please feel free to share them in comments 🙂