10 ChatGPT productivity patterns I use
Since everyone and their mom is now talking about ChatGPT, I figured I'd jump on the bandwagon. I've been using it since November but didn't think it was news-worthy... Ok, I'm lying. I knew it was news-worthy but I was more interested in using it to boost my own productivity than hyping it up in a blog post or a YouTube video. After all, I'm not going to be able to compete on clicks with the likes of Graham Stephan, so there is no point in creating yet another hype video/blog about it. Instead, I want to focus on how we've been using it internally, you know, for landlording, coding and general productivity.
Instead of simply hyping up the future of AI, like many blogs are already doing, I want to talk specifically about the current version of ChatGPT, what you can do with it now (regardless of your industry), and pitfalls to avoid. In programming, there is a concept of design patterns. A design pattern is a general, reusable solution to a commonly occuring problem in programming. Think of it like a more abstract version of a math formula you can plug variables in. There are dozens of such patterns, they help with productivity as well as quality of your code. Similarly, if you use ChatGPT often enough, you'll notice that a lot of communication with it can be abstracted into patterns. The way ChatGPT answers your question often depends on how you ask it. Sometimes you can trick it into giving you an answer for information it claims to not know, other times you can have it do a task that it claims not to be able to, as you can see from example below.
Beware, however, that it can give you a wrong answer and confidently argue its legitimacy. It talks with deceptive confidence, sometimes about things it knows nothing about. If you want to see some examples of it, head on over to the ChatGPT subreddit, you won't be dissapointed. However, the point of this particular blog post are the productivity design patterns I see myself using over and over with ChatGPT for my work:
- Brainstorming Outlines: When you're starting a new project, ChatGPT can help you get your thoughts in order by generating an outline for you. By providing a prompt or a broad topic, you can ask ChatGPT to come up with a detailed outline, including sections and sub-sections, that will serve as a starting point for your project.
- Generating Rough Drafts: If you're struggling to get your ideas onto paper, ChatGPT can help you by generating a rough draft. Simply provide ChatGPT with a general idea or topic, and it can generate a draft that you can use as a starting point for your project. Beware that ChatGPT writing level right now seems to be on par with that of a high school student. It uses passive voice, clutter adjectives that add no value, and in general the content it generates is better classified as "filler" content rather than the main course. If you want it to be good enough for a blog post, you'd at least want to run it through Grammarly, and hopefully do a few iterations. I've found that giving it a rough outline works best, after which you can iteratively massage the content. After a few iterations, I found that ChatGPT starts getting confused about instructions and doing more harm than good (maybe it struggles with juggling so much context), so I always polish the final content manually.
- Generating Scripts/Algorithms: ChatGPT can help you generate code for scripts and algorithms. All you need is to state your programming language (if you omit this, it seems to default to Python - which IMO is a sane default), a brief description of your task, and it can generate the code for you. Beware that generated code will probably have bugs, and fail to address any edge cases unless you specifically start calling them out. Which brings me to my next bullet.
- Debugging Scripts/Algorithms: If you actually do call out ChatGPT on its generated code, pointing out a specific edge case, it will attempt to address it. The keyword here, unfortunately, is attempt, because you'll need to hand-hold through several iterations. Similarly, you can have it debug your own code too. If you have a script or algorithm that is not working properly, paste it into ChatGPT and ask it to identify what's wrong with it. ChatGPT will generate suggestions for how to fix it, it's basically like having a private version of StackOverflow.
- Iterating through Multiple Variations of Content: As I mentioned before, my ChatGPT conversations are often iterative. It rarely gets things right on the first try unless my bar is low for a specific task. If you want ChatGPT to produce content that doesn't suck, you'll want to go through multiple iterations. You start by giving ChatGPT a topic or question and it will generate a first pass, I'll call this the vanilla version. You then ask ChatGPT to keep rewriting the content as you provide more context, clarifications, and feedback. Your job then becomes more like a proof-reader or editor. Feedback can be anything from asking it to insert specific examples, to elaborate more on a point you like. You may even ask it to play Devil's advocate for the opposing point of view, your creativity is the limit here. The nice thing is that you can reference phrases and paragraphs from different versions (almost like fuzzy variables), and even get the benefit of version control (you can ask ChatGPT to revert something you don't like, it remembers earlier drafts).
- Role-Play/Game: One of the limitations of ChatGPT is that its dataset lags behind current events. Initial version of CHatGPT was limited to events taht occured prior to September of 2021. But OpenAI is constantly releasing new updates to that may change soon. However, you can dupe ChatGPT into writing an article on any topic you want by doing some role-playing. For example, you can tell it to pretend that we live in an alternate universe where certain events that you list have occured. After this, you can ask ChatGPT to generate the article as if those events were true.
- Smart Lists: You can feed a regular boring list to ChatGPT. Once it's in the context, you can ask it to manipulate it or generate derivative content from it. You can provide ChatGPT with a fuzzy instruction on how to process the list, such as grouping items by category, providing price estimates for each item, or recommend the best place to buy each item. Basically, any task ChatGPT can do once, it can also apply to each item in a list.
- Product Manual: You can ask ChatGPT how to use software, where a certain feature is located, or even how to do something in one program you already know how to do in another. For example, when I was video editing an earlier YouTube video, I needed to find equivalent audio controls in Davinci Resolve to the ones I was already familiar with in Audacity. I was able to ask ChatGPT and it gave me an answer. Beware, however, that its answers may be wrong. Apparently, ChatGPT has also learned how to bullshit from the internet and sound confident while doing so. Given the glitches I see Dall-E 2 generate in its content (a sister product that's also developed by OpenAI), I believe the "fuzziness" of this generative AI is what makes ChatGPT prefer to make up an answer rather than simply admit that it doesn't know. I think we'll see this tendency reduced as ChatGPT gets smarter, but I doubt this preference to "lie" will completely go away, it's a quirk of generative AI. The whole point of this technology is wisdom of the crowds, it takes original/true content from different sources and mashes it together into original work. This original work may no longer match up with reality, especialy for the purpose of using it as a manual. And this actually scares me, because there is now a push to replace search with AI, which means that we may start quoting bullshit metrics to each other that we believe are real but were generated specifically for us by ChatGPT to satisfy our own confirmation bias.
- Modal Flow: If you need ChatGPT to process content differently than it otherwise would, you can tell it how to process content with the first message, and provide the content afterward. This is similar to approach I already explained with role-playing, but instead of just providing context in your original message, you're providing the logic for how you wanted consecutive data interpreted.
- Scaffolding: Similar to modal flow, you can start by giving ChatGPT an outline, but tell it not to do anything with it yet. You then can iteratively expand the outline, generate content from it, revert it (the concept of version control I mentioned earlier), move things around, effectively using the original outline as a scaffold. This is great when generating large bodies of content (a book or a movie script), ones that don't completely fit into a single response, you can process or output them in chunks (speaking of chunks, if ChatGPT ever seems to stop midway through its output, you can simply type
continue
to have it finish its thought - something I found out from OpenAI discord). I must admit, however, that as promising as this is, I have found that ChatGPT starts performing significantly worse as the conversation drags on - forgetting instructions, changing wrong content, etc.). According to ChatGPT itself (and I asked), it doesn't actually remember the context, but parses the entire conversation thread for each request. My guess is these glitches are a result of the added context getting exponentially harder to parse/interpret as the thread gets larger. I will keep experimenting with this one as I'm sure the tech will get better.
If you have your own strategies for using ChatGPT, feel free to share in the comments.