Learning By Example, and AI Dependence

There are many ways to learn, and they vary in how fast and effective they are. In my opinion, the most effective way of learning is to combine bottom-up fundamentals with self-directed exploration and problem-solving. However, this method of learning takes a very long time, and it can be difficult to determine what fundamentals you need to learn for your chosen field, until you're experienced enough in that field that you've probably already learned them. It being such a large investment of time is also a problem if you change your mind about what you want to learn.

At the other end of the spectrum is getting an LLM to generate whatever you want and not learning anything. Obviously, if you're not doing the work, you're not learning, and you're fully dependent upon the program which is actually doing it. These "AI" tools can be addictive, because they enable you to see results you're not yet capable of producing on your own, in record time. But if an LLM takes care of all the easy stuff for you, then how are you ever going to get good enough to do the hard stuff? I don't believe that LLMs will ever be good enough to fully realize my creativity, so I can't recommend them as a substitute for learning. Also, creativity is a process of work, not just a process of coming up with ideas, so LLMs inherently short-circuit the creative process, in my opinion.

Often I find the best balance is to learn from examples. Whether that be downloading a demo project, copy-pasting from StackOverflow, or even these days, generating an example with an LLM. With a working example, you can dive into experimenting with whatever you're interested in, and gain enough experience and context to decide whether this is something you want to invest your time into learning. Then, you can work backwards from these examples to discover what fundamentals you should be learning. Before my time, people like John Romero learned from examples in magazines. They couldn't always find an example of exactly what they wanted, so they were forced to understand the examples they had in order to develop their own code. And just being forced to type in the code, unable to copy-paste from a physical page, automatically taught some programming skill.

With the advent of the internet, we gained access to far more examples, though their quality is less consistent. There are numerous gold nuggets, mixed into a pile of excrement. We can find more specific examples closer to our end goal, though almost never all the way there. And we can copy-paste, or download a premade project and run it without typing in any code ourselves. This has been a mixed bag, with greater accessibility, but less forced learning. Many people get stuck not progressing much beyond what direct examples provide.

LLMs are another big leap in that direction. You can now generate incredibly specific examples, in your language of choice, and even conforming to the programming style of your existing codebase. This can be a superpower when you want to learn how to reach a specific end result, but don't know where to start. What you couldn't find with a web search before, an LLM can now produce for you. From there, you can ask for references and the code on which the examples are based, and work backwards to find high quality learning material. But many people just use whatever an LLM outputs without ever learning to do it themselves.

Use LLMs or don't, but if you do, my advice is: use them last, and use them with caution.

The Golden Path is essentially a series of examples, with references and guidance on how to learn more. As with all example code: don't just use these examples to achieve what you want - learn from them.