[OPINION] copilot in VS Code is such a bad idea for beginners
Posted by Ok-Sign-7380@reddit | learnprogramming | View on Reddit | 20 comments
Hear me out I just finished my first year in Computer Science, which covered the fundamentals of programming the very things you'll be needing on throughout your four years in the program.
While I was coding a student management system, I noticed that Copilot kept suggesting code constantly. For every function I started, Copilot would try to write the entire function for me even when I didn’t want it to.
It honestly feels like the AI is coding the whole program for me. If you're already good at programming, you might find this tool helpful. But if you're just starting out, I think it's actually a bad idea. It takes away the learning-by-doing aspect of coding. If the AI just writes everything, you're not really practicing or understanding how things work.
Sure, it’s subjective some people might take the time to understand the code Copilot generates. But generally speaking, I believe relying too much on it early on can really hurt your learning process.
Capable-Package6835@reddit
Taking the time to understand what Copilot generates won't help you much. There is a reason people practice instead of just watching expert solve problems.
ducksflytogether_@reddit
AI in general is bad for beginners. My opinion, it’s bad for programmers overall, but definitely for beginners.
CodeTinkerer@reddit
The problem is the expectation that code can be written quickly. When you have a deadline, there will be pressure to use an LLM even if it produces code you don't understand. Of course, you can ask it to add comments in the code or explain it to you.
At least, that's the trend I see happening.
ducksflytogether_@reddit
That’s a much larger and more complex discussion. I’m of the opinion that if you’re on a deadline, using an LLM to generate code isn’t going to save you time in the long run when you have to go back and bug fix the code it generates.
CodeTinkerer@reddit
Since the code can be generated faster, you can spend more time testing the generated code. Where it becomes problematic is when it gives you bad code that doesn't do what you want. You have to steer it in the right direction, but sometimes it delightfully stays wrong.
When it works well, it lets you code quickly.
I do find I have to give it a lot of precise prompts. Surprisingly, it's able to understand fairly complex prompts.
ducksflytogether_@reddit
None of which a beginner is going to know.
Or if you’re going to write tests, why not just write the code yourself? Or are you going to have an LLM, which already generates bad code, also generate the tests?
kevin7254@reddit
LLM is totally fine to write tests and boilerplate. You don’t have to assume everything it does is bad. I have even have success with difficult problems/designs when I prompt it well. Just need to know the limitations and you are totally fine
queerkidxx@reddit
Honestly unless you are still learning the basic syntax or doing problems I don’t think it’s the worst thing in the world so long as you actually understand what it’s writing, always.
Sometimes it can expose you to patterns you wouldn’t have encountered before. Use cation and be sure to disable it often when practicing. But using something like copilot or better yet just paste in your code into ur LLM of choice and ask it for feedback.
Just don’t use something more complex than vscode + normal chats. And read over anything it’s written. If you can’t understand it it’s unusable in any context
ducksflytogether_@reddit
How could a beginner discern that that syntax is correct? They wouldn’t know. Documentation would be far better.
LogTiny@reddit
Yeah I completely disabled that ai auto complete stuff in my IDE. So annoying having to tap escape everytime as the AI is tripping on itself to tell me what to do. Plus the fact that its just plain wrong in a lot of stuff that isn't web dev(in my experience)
One implementation I do find sometimes useful is the jetbrain ide auto complete. It doesn't try to write my whole ass function and just focuses on line by line(at least last I used it)
Royal-Calligrapher59@reddit
I appreciate how proactive you are. Personally, I believe it's not ideal for students or fresh graduates to rely on AI for coding. It's important to build a strong foundation, and that only comes from going through the challenges and learning the hard way.
davedontmind@reddit
I agree completely.
As a developer with 40+ years of coding experience I was recently learning go, and CoPilot made that difficult by auto-completing everything.
Sure, it got the code written, but because I didn't write it myself, I wasn't really learning. So I turned it off.
It can be useful when you already know the language and just want to save time, but it definitely gets in the way of learning.
AdnanM_@reddit
How do you like Go after so many years of experience in other languages? Does some of the syntax perhaps remind you of Pascal?
davedontmind@reddit
I never really did any Pascal, but I do recall the
:=
operator from it.I'm a big C# fan, so go is a bit of a change, but I'm quite liking it so far (although I've only learned the basics so far). I just have to get used to the type being after the variable name in declarations!
adflev@reddit
Well just disable the autocomplete
jorge_saramago@reddit
I had to turn it off. It kept suggesting a bunch of stuff I had no idea about and didn’t even understand. But I still ask questions in the chat, and find it super helpful because it’s not simply copy paste, it explains what’s happening and why.
JuicyJBear94@reddit
Fully agree, I am an angular dev and know JavaScript/typescript pretty well so autocomplete saves me a lot of time because I’ll just let it autocomplete a function or model then make the necessary changes I know are needed. Pretty much have to type half or less than half than if I wasn’t using it. But if I was using cursor when I first started out I would barely know what was going on.
rizzo891@reddit
It feels like it’s gotten more aggressive as of late. I remember before it used to somewhat suggest stuff, but now it’s obnoxious about it and sometimes just tabbing to insert a new line suddenly inserts 25 lines of code I didn’t want
aqua_regis@reddit
100% agree.
For a learner, it is absolutely detrimental. For a professional, it can be a great aid.
I tend to go a step further: for a beginner it is detrimental for learning to use AI for anything other than explanations (as a glorified search engine) or for giving project ideas.
data-crusader@reddit
Yeah I’d turn that setting off in settings