How to use AI
My experience is biased towards programming, but is much broader. There are certain things that make AI a lot more effective across many tasks: the expertise of the user, information provided, the clarity of prompts, and how is it easy to verify the results.
One particular twist I have noticed recently with programming is that the quality of the existing code matters. If asked to add functionality to high quality code, the LLMs additions with be high quality too. What I mean by quality here is the same things that make it easy for a human being to maintain and modify a codebase. Code that is easy to understand, that fits together in a well design architecture, well thought out data structures and database design, modular, decoupled, well comments and documented code.
In a completely different field, in a recent online conversation about its use to mark practice exam papers (humanities GCSEs/IGCSEs to be precise) , people who are reasonable good at assessing what they are doing seem to agree all LLMs need to be fed the right materials: specifications (syllabus etc.), other papers and mark schemes, examiners reports and so on.
The value of that conversation was that it was with someone I knew had the experience to evaluate how well the LLM did on the task. That leads to the next, and most difficult to fulfil, requirement for using LLMs effectively. Expertise in the field. LLMs are a multiplier of the productivity of an expert, and a multiplier of the damage done by the incompetent. An experience I had in yet another field was in law. I was presented with LLM output which disagreed with my own conclusions about a legal problem. I looked at the chat and suggested adding a clarification, at which point the LLM agreed with my conclusion. I am not entirely ignorant of law, and knew enough to ask the right question. However, I would say this was a relatively straightforward question and I would definitely prefer a lawyer (even if they used an LLM) for advice on something complex.
This fits with my experience of programming too. An AI will happily do the wrong thing, or fail to consider something and it needs review. There is a reason why phrases like “you are absolutely right” are cliche AI output - Claudisms of the current generation (Opus 5).
The ability to verify and review is also vital. All the customisations of the code running this site (using a static code generator) and its design were made by Claude, with my part being guiding and correcting it. This worked well because it is easy to review the HTML and CSS output, and therefore that the customisations and the design do what I want. If it loads, right and looks right its pretty close to being right (subject to accessibility issues which are unlikely on a site this simple).
I also use LLMs to write automated tests. My code becomes more reliable as my test coverage improves. Again, this is code that is tedious to write, but easy to review. It is also good at analysing large amounts and finding flaws, but I have also found to all the bugs in a complex and low quality code base are necessarily important issues. A crash in an edge case is something many people can live with. It can debug very fast.
On the other hand, Claude is not consistently good at writing new code. it needs precise directions. You cannot just tell it to refactor something complex. Even in a good quality codebase it does silly things. Sometimes inefficient, sometimes entirely wrong. It had a lack of common sense and human judgement about what matters and what needs to be done. .