Collaborative Tool, Not Replacement
Frame LLMs as intelligent collaborators rather than complete replacements for your skills. Simon Willison describes this mindset as thinking of LLMs as "an over-confident pair programming assistant who's lightning fast at looking things up, can churn out relevant examples at a moment's notice and can execute on tedious tasks without complaint".
Source: Simon Willison
Verify Critical Information
Always fact-check information from LLMs, especially for important decisions. As Gavin Leech notes, he is "already too imprecise for [his] own liking; building in LLMs would make [him] even worse".
Source: Gavin Leech
Inspiration and Ideation
LLMs excel at generating multiple approaches to a problem. As Kaj Sotala shares: "Essay brainstorming. I'll tell Claude 'here's an essay that I started writing' and copy-paste what I've written so far to it. It will comment with ideas, possible other directions, and connections to related things".
Source: Kaj Sotala
Use Specific Instructions
Be explicit about what you want the LLM to do. Simon Willison explains: "For production code my LLM usage is much more authoritarian: I treat it like a digital intern, hired to type code for me based on my detailed instructions".
Source: Simon Willison
Leverage Context Effectively
Provide relevant context to improve LLM responses. Willison emphasizes: "Most of the craft of getting good results out of an LLM comes down to managing its context—the text that is part of your current conversation".
Source: Simon Willison
Iterate through Conversation
Treat LLM interactions as conversations rather than one-off queries. Jeff Kaufman notes how he iterates on plotting: "I often write code that assembles some data and then want to graph it. Pasting the code into Claude along with a request for the kind of plot I want typically produces something close to what I had in mind, and a good starting place for tweaks".
Source: Jeff Kaufman
Terminology and Concept Lookups
LLMs excel at explaining terminology or helping recall specific concepts. Kaufman shares how he uses LLMs for "questions like 'what do you call it when ...' with a verbose description and then Google the technical terms it thinks I might be gesturing at".
Source: Jeff Kaufman
Code Understanding
LLMs can help explain unfamiliar codebases or complex algorithms. Willison demonstrates using LLMs to analyze a GitHub repository: "I use my own files-to-prompt tool... to gather the contents of all of the files in the repo into a single stream. Then I pipe that into my LLM tool and tell it to prompt Gemini 2.0 Pro with a system prompt of 'architectural overview as markdown'".
Source: Simon Willison
Simplify Complex Text
LLMs can translate dense technical or academic writing into more accessible language. Sotala describes: "I found it helpful to copy-paste large parts of a philosophical text into Claude and asked 'could you explain this with simpler language and concrete examples'".
Source: Kaj Sotala
Test and Validate Generated Code
Always test LLM-generated code rather than assuming it works. Willison insists: "The one thing you absolutely cannot outsource to the machine is testing that the code actually works".
Source: Simon Willison
Recognize Subject Limitations
LLMs perform better in some domains than others. As Gavin notes, "I encourage you to start by prompting it with a field you know intimately - you will be disappointed".
Source: Gavin Leech
Adopt Appropriate Skepticism
Adjust your level of skepticism based on the stakes and task at hand. Jeff Kaufman explains: "There are still a lot of things it gets wrong, but it turns out there are many areas where I can pretty easily check the output and where something mostly-right is a good starting point".
Source: Jeff Kaufman
Balance Automation with Skill Development
Consider whether using an LLM may prevent you from developing important skills. Gavin mentions "worrying about being deskilled by using them" as a reason for limiting LLM use.
Source: Gavin Leech
Explore Multiple Perspectives
LLMs can help you consider different viewpoints on complex topics. Gavin mentions using LLMs for "strong misreading, in which one develops an entirely new view when reading someone else. Seems like LLMs could help me do this, by producing a weak misreading of a confusing writer which I then misread properly".
Source: Gavin Leech
Domain-specific Formatting Tasks
LLMs excel at transforming content between different formats and standards. Jeff Kaufman shares how he used Claude to solve a formatting challenge: "I once asked Claude, 'I have a Google Doc file with some lines that read 'USER:' and 'ASSISTANT:'. Is there a way of programmatically making all of those lines into Heading-3?'"
Source: Jeff Kaufman
Present Ideas as Someone Else's
To get more objective feedback, frame your own ideas as coming from another source. Gavin notes that "to get around sycophancy I present my ideas as someone else's. ('Someone just claimed hypothesis X. What's the evidence for and against this?')"
Source: Gavin Leech
Structure Complex Learning Projects
LLMs can help break down overwhelming topics into manageable learning paths. Sotala describes using LLMs as a "Self-help coach. A lot of self-help books have various exercises or a complicated algorithm to follow... I'll grab a PDF of the book... upload it to Claude, and ask to be coached according to the philosophy in the book".
Source: Kaj Sotala