I’m trying to wrap my head around whether I think junior developers should be using GitHub Copilot or something similar. I am thoroughly convinced that experts that are mostly concerned with their output and productivity, and not with learning, should be using it. The more your coding is a performance of your abilities, the more I think you should use it.
But, if you are still learning to program, then I am worried that Copilot would inhibit that. The main way it does this is by not letting you practice remembering.
According to Make it Stick, the key to learning something is to practice remembering it. One way to do this is to try to solve problems without help and learning code by writing code is a great way to do this. But, if Copilot is constantly helping you, then even coding novel programs becomes the kind of puppetting that tutorials do.
Now, it may turn out that composing code completely from scratch is a dying skill and won’t be the way we program in the (near) future. I use Copilot exclusively, and I certainly feel like I’m guiding/collaborating with the AI, and coding feels very different to me now. But, I also think that my skill at seeing code is helping me do that. That skill was developed by writing and reading lots of code.
So, right now, in April 2023, if you are learning to code, I’d limit usage of Copilot to the times when you are not learning. If you are building something that is well within your ability, then I would use it wholeheartedly. There are Copilot skills to develop on top of your coding skill.