ChatGPT is an AI-powered tool that can be used to write code as part of your daily coding practice. It can be used to write resumes, Excel formulas, essays, cover letters, and even code for a WordPress plugin. But, while ChatGPT appears to have a tremendous amount of domain-specific knowledge, it lacks wisdom and can get lost in the process of writing code. It is important to understand what types of coding ChatGPT can do well and what it cannot do.
ChatGPT can be used to write useful code, but it is important to understand its limitations. After testing ChatGPT to write a WordPress plugin, I decided to see how far ChatGPT could go. I wrote out a very careful prompt for a Mac application, including detailed descriptions of user interface elements, interactions, what would be provided in settings, how they would work, and so on. When I fed it to ChatGPT, it responded with a flood of text and code. However, none of it was usable. It didn’t identify where the code should go, how to construct the project, and when I looked carefully at the code produced, it left out major operations I requested, leaving in simple text descriptions stating “program logic goes here.”
It became clear to me that if you ask ChatGPT to deliver a complete application, it will fail. A corollary to this observation is that if you know nothing about coding and want ChatGPT to build you something, it will fail. Where ChatGPT succeeds is in helping someone who already knows how to code to build specific routines and get specific tasks done. It can be used to write small algorithms, produce subroutines, and help break down a bigger project into chunks. It can also be used to demo techniques and paste code into a project. However, it will not be able to write code containing the nuances for very specific or complex problems that require deep experience to understand.
To use ChatGPT to write code, the first step is to decide what you are going to ask of it. Decide what you want your function or routine to do, or what you want to learn about to incorporate into your code. Decide on the parameters you’re going to pass into your code and what you want to get out. Then look at how you’re going to describe it. Imagine you’re paying a human programmer to do this. Are you giving that person enough information to be able to work on your assignment? Or are you too vague and the person you’re paying is more likely to either ask questions or turn in something entirely unrelated to what you want?
To illustrate this, let’s look at an example. Imagine you want to be able to summarize any web page. You want to feed it a web page URL and get back a block of text with a summary. A very old school way of extracting web page data was to find the text between HTML paragraph tags. But with the rise of AI tools, it makes more sense to use an AI library to do an intelligent extract and summary. One of the places ChatGPT excels is finding libraries and resources. OpenAI (the maker of ChatGPT) sells API access to the GPT-3 and GPT-4 engines that will do this. But in this example, let’s assume we don’t want to pay transaction fees.
So let’s look at interacting with ChatGPT to figure out how to use such a tool, for free, with a project that runs in PHP. Start with a prompt that is designed to elicit information about what libraries would provide the functionality you want. A library (for those of you reading along who aren’t programmers) is a body of code a programmer can access that does a lot of the heavy lifting for a specific purpose. A big part of modern programming is finding and choosing the right libraries. So this is a good starting point.
ChatGPT can be used to help you write code, but it is important to understand its limitations. It can help you write small algorithms, produce subroutines, and break down a bigger project into chunks. It can also be used to demo techniques and paste code into a project. However, it will not be able to write code containing the nuances for very specific or complex problems that require deep experience to understand. So while ChatGPT can be a useful tool for writing code, it is important to understand what types of coding it can do well and what it cannot do.