Think of LLMs as the person who gets good marks in exams because they memorized the entire textbook.
For small, quick problems you can rely on them (“Hey, what’s the syntax for using rsync between two remote servers?”) but the moment the problem is slightly complicated, they will fail because they don’t actually understand what they have learnt; if the answer is not in the original textbook, they fail.
Now, if you are aware of the source material or if you are decently proficient in coding, you can check their incorrect response, correct it, and make it your own. Instead of creating the solution from scratch, LLMs can give you a push in the right direction.
However, DON’T consider their output as the gospel truth. LLMs can augment good coders, but it can lead poor coders astray.
This is not something specific to LLMs; if you don’t know how to use Stackoverflow, you can use the wrong solution from the list of given solutions. You need to be technically proficient to even understand which one of the solutions is correct for your usecase. Having a strong base will help you in the long run.
josefo@leminal.space 8 months ago
Great summary. I would add not using LLMs to learn something new. As OP mentioned, when you know your stuff, you are aware of how much it bullshits. What happens when you don’t know? You eat all the bullshit because it sounds good. Or you will end up with a vibed codebase you can’t fully understand because you didn’t reason to produce it. It’s like driving a car and having a shitty copilot that sometimes hallucinates roads, and if you don’t know where you are supposed to be, wherever that copilot takes you would look good. You lack the context to judge the results or advice.
I basically use it now days as a semantic search engine of documentation. Talking with documentation is the coolest. If the response doesn’t come with a doc link, it’s probably not worth it. Make it point to the human input, make it help you find things you don’t know the name of, but never trust the output without judging. In my experience, making it generate code that you end up correcting it’s more cognitive heavy load than to write it yourself from scratch.