"GitHub Copilot blocks your ability to learn." Is a common refrain.
I don't see ANY industry-wide consensus on whether GitHub Copilot truly helps developers right now.
The only scenario I can get anyone to agree on is generating templates. Aka, JSON or CSS files that you then edit.
Every time I don't have to context switch to look up some technical errata in my browser is a complete win for me.
- learning a new code base
- learning a new (popular) library
- learning a new language
You could compare it to, say, eslint but for other languages .
What is an idiomatic way of X with Y?
Well, copilot will give you the answer in 10-30 seconds less time than opening a browser and searching.
Im not going to argue it’s legal merits, but as a learning tool, it’s very much like having a smart linter.
The larger scale code generation is less obviously useful and usually wrong, I agree.
On the contrary, it frequently suggests code that adhere to better practices.
I haven't wanted to use it personally. I'm also not a senior dev or anything so my opinion is not worth much.
I've never heard anyone claim it blocks the ability to learn - if anything it's the opposite. Many people like how it shows you APIs you weren't aware of.
But I did find that I need to turn it off at certain stages when learning (or re-learning) a programming language. It's seemed counterproductive until you have a good grasp on the basic syntax of the language. But the "showing you new APIs" does seem to be a thing that actually helps.
In general, you should not be accepting code completions that you don't understand. I'm usually stricter, in that I only typically accept completions that line up with what I was planning to type anyway.
It's good for learning new packages in Python.
It's quite poor for learning a totally new set of programming language grammar.
If you're a Javascript developer of 5+ years of experience, it's probably absolutely fantastic. Not so great if you're learning a new programming language.