What are your thoughts on humans learning from LLM output ?
I’ve been encouraging the new developers I work with to ensure they read the docs and learn the language to ensure the LLM doesn’t become a crutch, but rather a bicycle.
But it occurred to me recently that I probably learned most of what I know from examples of code written by others.
I’m certain my less experienced colleagues are doing the same, but from Claude rather than Stack Overflow…
Code are practical realizations of concepts that exists outside of code. Let's take concurrency as an example. It's something that is common across many domains where 2 (or more) independent actors suddenly need to share a single resource that can't be used by both at the same time. In many cases, it can be resolved (or not) in an ad-hoc manner. And sometimes there's a basic agreement that takes place.
But for computers, you need the solution to be precise, eliminating all error cases. So we go one to define primitives and how these interacts with each other and the sequence of the actions. These are still not code. Once we are precise enough, we translate it to code.
So if you're learning from code, you are tracing back to the original concept. And we can do so because we are good at grasping patterns.
But generated code are often a factor of several patterns at once, and some are not even relevant. Just that in the training phases, the algorithm detected similarity (and we know things can be similar but are actually very different).
So I'm wary of learning from LLMs, because it's a land of mirages.
I've been programming since 2009 and lately I've been also learning a ton from LLM output. When they review my code or architecture ideas, they sometimes suggest approaches I outright didn't know because my day-to-day "rut" has been different so far.
LLMs are like a map of everything, even it's a medieval map with distorted country sizes and dragons in every sea. Still, it can be used to get a general idea of where to go.
I think an important skill to develop as a software developer (or any other profession) is learning to learn effectively.
In software these days that means learning from many different sources: documentation and tutorials and LLM-generated examples and YouTube talks and conference sessions and pairing with coworkers and more.
Sticking to a single source will greatly reduce the effectiveness of how you learn your craft. New developers need to understand that.
I’ve been encouraging the new developers I work with to ensure they read the docs and learn the language to ensure the LLM doesn’t become a crutch, but rather a bicycle.
But it occurred to me recently that I probably learned most of what I know from examples of code written by others.
I’m certain my less experienced colleagues are doing the same, but from Claude rather than Stack Overflow…