4 ms·
IMO most proposed changes to teaching using AI are misguided. My philosophy regarding AI copilots and teaching is: as calculators are for those who already know
by sjrd 2y ago
IMO most proposed changes to teaching using AI are misguided. My philosophy regarding AI copilots and teaching is: as calculators are for those who already know how to compute, so are AI copilots for those who can already develop software. They are tools to leverage when you know the craft, to accelerate. They are not there to do what you don't understand.
- theshrike79 2y agoAI tools are multipliers, if your skill level is zero the result will still be zero.
- Avamander 2y agoWhat does it multiply? I'm genuinely curious because besides insecure examples of a new framework I (might) want to use, I haven't seen a great use-case. My reaction has at best been "oh look how cute it is", like watching a kitten try to walk, when I have tried various LLMs out there.
- deleted 2y ago[deleted]
- theshrike79 2y agoI made a comment about this above, but here's an example: I'm doing a complete rewrite of a C# project with Rider and Copilot integrates to it directly. This allows me to: - Have the previous project open and ask questions about it from the LLM, like "Where is the DbContext initialised" or "How does FooModel connect to the database" and it'll give me the direct answer and links to the .cs files where it found the information. - In the new version I can paste a bunch of SQL CREATE statements to Copilot and it can create the models for them automatically. It knows how to do foreign keys both in [annotations] and using the fluent model based on the statements I gave it. - I can ask questions like "how can this be done more efficiently" and it gives decent suggestions. Like I learned about the C#11 'required' keyword[0] by having it be suggested to me :) - I can make it do the tedious code changes for me like "write me the primary key generators for entity framework for classes FooModel, BarModel and BazModel" and I can just click "insert at cursor". - It's also pretty well integrated to projects, so the code suggestions it gives are usually pretty well on point. Like I can just start typing DbSet and it'll automatically give me each of the models in the project (linked via a shared project) one by one as completions 100% correctly. Takes me 5 seconds to add 5 DbSets. Working with an LMM takes some getting used to, just like with pair coding in general. Your "partner" doesn't know what you think, so you need to communicate what you're doing efficiently and in a way they can understand. "Prompt engineering" is a stupid term, but it's still valid. There is a certain way you need to communicate with LLMs so that they understand what you want and give you a concise answer. I use it like I would a Junior coder, give it the simple tasks I know 100% how to do myself, but can't be bothered because of the tedium. [0] https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/required https://learn.microsoft.com/en-us/dotnet/csharp/language-ref...