10 ms·
On Learning to Program with LLMs
- euroderf 3y agoI still wonder why there is not more emphasis in these new times on writing requirements.
- dr_dshiv 3y agoLooking forward to the controlled experiments comparing groups learning with and without.
- soultrees 3y agoThe thing about LLMs as a teacher is that the feedback loop is so short that progress can be made quite fast. Being able to ask a question, regardless of how stupid or trivial it may seem, without fear of judgement is a huge learning hurdle that is overcome. Not only that but reverse engineering other code “if I have this code and wanted it to do this instead - what and how would we change? Etc”, and a short feedback loop for errors where you might have to copy and paste something a lot before it works, makes LLMs the ultimate teachers.
- smcleod 3y agoAbsolutely. Fail fast, fail often. It makes it very easy to quickly try out ideas before you go down a rabbit hole. However I think for people that are completely new to programming it could quickly become a crutch.
- jskherman 3y agoSeconded. And it's not just programming. Any subject that is easy to moderately verifiable like most Math and Science in school can also benefit from this. We're one step closer to personal tutors and autodidactism for everyone. The other half of the learning journey would be arranging the curriculum for yourself. If only more people would focus on cultivating learning instead of locking down tech like this because they're afraid (and perhaps lazy to create new teaching methods).
- sfn42 3y agoI don't know about this take. A lot of what you say makes sense but your conclusion seems like a bit of a stretch. LLMs could be very useful for learning and probably are, but they also allow you to ask the wrong questions and circumvent the learning you were supposed to be doing. I wouldn't be surprised to see people using it to simply solve exercises for them, and those people will have a hard time trying to do things on their own.
- aconsult1 3y agoIt's actually worse than that because although LLMs are capable of a lot, they still hallucinate quite frequently and sometimes are just plain stupid. Recently I was trying to manipulate data in Google Sheets and was using ChatGPT to help. In the beginning is was fantastic, I was very productive because I didn't have to stop and think about formulas, read crappy documentation, or analyze data transformation. ChatGPT just gave me the right answer in a split second, as long as I kept asking the right questions. Then I stumbled upon a particular issue that wasn't really too complicated but ChatGPT could not give me a correct answer. Unknowingly I spent 3 days trying to fix problems with the solution and every time I got an answer that was slightly wrong, not in subtle ways. I have 20 years experience as a software engineer and still, I continued to waste time in this loop. After 3 days I decided to apply my engineering skills and solved the matter in 30 min. Now I know the solution and it was way simpler than I thought. What surprised me was how dumb the whole process was. My questions certainly weren't the problem - as bad as they possibly were, the solution wasn't too far off. Not only ChatGPT had become a crutch but it put me in a situation that no human-tutor would ever put me. So removing the pain of quick interactions with a tutor has benefits but the technology is not quite ready to be considered as true guidance in forming (or even helping) someone's understanding of a subject. I've been using ChatGPT a lot for general language but when it requires logical thinking it falls pretty flat.
- PoignardAzur 3y agoI'm skeptical of this takeaway. "I spent days trying to solve X by doing Y, then it turned out I could have solved it by doing Z instead" is an experience I've had countless times before LLMs were a thing. Sometimes you really do need these three days of stumbling before you can build up the confidence to do the easy solution. (Then again, I don't know the specifics of your case.)
- ramblerman 3y agoI agree about short feedback loops, but this was there long before LLMs, and got me into programming initially. I love that I could compile my program and try it without needing to check it with a teacher or superior. It cost literally nothing to try, and if it failed the computer would tell you it was wrong. In a sense you are constantly bouncing off of reality (or the limits of the compiler) and that allows you to learn really quickly by experiment. LLMs with their tendency to hallucinate or just provide you with the solution seem like they could be both a blessing and a curse (for learning).
- danielbln 3y agoProviding the solution is one thing, but being able to tell you more about the solution, why it is a certain way, what other examples are, what to look out for, etc. having an infinite dialog about the problem space, that's where it really shines. Banging my head against compiler output and combing through Google to figure out _why_ it failed isn't nearly as productive, imo. Otherwise yes, hallucinations are an issue, though I find them not nearly as detrimental as I thought I would, then again I'm not learning to program, I'm merely learning new frameworks or techniques, I already have the underlying foundation and can sniff out hallucinations probably better than a total novice.
- famahar 3y agoNext generation of programmers will be incredible. I don't know if it will make better programmers but there definitely will be more now that there is even less friction to learn. Similar to the big boom in interactive coding tutorials allowing more self learning devs.
- Salgat 3y agoMy biggest fear is what has happened with Gen Z. The UX becomes so user friendly that you end up never needing to learn how it actually works. Great for happy paths, but terrible if you need to dig into edge cases and work under the hood. We all know the classic case of the junior dev who just brute forces stack overflow into their code and prays it works; this is the next iteration of that.
- cm2187 3y agoWill it? I mean there is stack overflow already. All it is is a better UI for stack overflow.
- famahar 3y agoExactly. Stackoverflow can be kind of a mess though. You'll often be sifting through tons of answers or might still be confused and asking follow up questions can take time to get an answer. Now that is all immediate.
- hannofcart 3y agoWell, that may be true but because it's a 'better UI' while also being completely independent of Stack Overflow, it has been hammering SO's traffic recently.
- n4r9 3y agoThe reason stack overflow is such a useful resource is that people actually ask questions on it and receive high quality answers. I wonder, how long until the website becomes obsolete because people are asking LLMs instead, and how long after that do LLMs themselves consequently become less useful?
- hnben 3y agoI believe, that when people learn programming mainly from LLMs, they will navigate themselves into a corner faster than with regular learning. i.e. they learn anti-patters and won't be able to get out of they local optimum. On the other hand: that's happening today already en masse, so I am not sure if it can actually get worse. I agree, that LLMs as an addition to the established resources (teachers, books, youtubers, etc.) will have lots of value.
- Closi 3y agoInterestingly this assumes that the goal is learning how to manually write code, rather than learning how to get a LLM to generate code for you, or learning how to build a product. If you believe the future of coding sits in AI/LLMs/ML, this next generation of learners might just be using the 'beta' tools-of-tomorrow, rather than just being people that need to learn to manually code. (My personal view is that manual coding will be changed almost unrecognisably within 5-10 years, but lets see! So much of learning to program is about learning syntax, and I can see a world of AI-powered-future-programming-languages where syntax is less important than clarity)
- TrackerFF 3y agoHow many years until manual programming, as we know it, will be obsolete? Meaning that there won't be coders that sit around punching code all day, but rather just generate diagrams and/or feed models with descriptions of systems, and in return get fully functional systems. 5 years? 10 years? 15 years? 20?
- deleted 3y ago[deleted]
- Jensson 3y agoBug fixing via gpt interface is going to be fun! It needs to be far better than humans to avoid the following situation, and at that point these models have taken over basically every office job, so at that point you wont have to go through this process anyway. You: Here is a bug: [explanation] GPT: Ok, fixed it! You: It is still there. Gpt: Ok, now fixed for real! You: It is still there...
- PaulRobinson 3y agoYou're right, and I like the joke, but we should be clar that LLM != GPT != ChatGPT. There's a whole field emerging of prompt engineers, but I think what's desperately missing is good quality integrated UX engineering. Being able to write a comment and/or a method signature and having an LLM spit out a generated piece of code is kinda cool, but the interface for showing that the code is buggy needs refining. I think that's likely to be quickly showing a test case: given these inputs I'm expecting this output. LLM refactors against all tests, and you iterate together towards the correct solution. That's one small example of how we can start to think about the future UX that isn't about having a "chat" about your code. Similar UX thought is needed in other disciplines, it'll be interesting to see how this domain evolves.
- yunwal 3y agoWe should probably also be clear that LLMs aren’t the only ML models that can learn to code. If hands-on programming is automated away, it’s not obvious that it’ll be an LLM that does it.
- gatestone 3y agoThey are also pretty good in teaching you human languages. There is a saying that the best way to learn a new language is to fall in love with someone who speaks it. ChatGPT speaks them all. Start with "Show me some simple phrases in Chinese and in English..."
- _pdp_ 3y agoWhat is programming if not a structured language for describing tasks to a machine. We are not there yet, but outside of the world of core technology, most of the programming we will see in the near future will be essentially telling the machine what to do in natural language. So if you want to have some form of job security my recommendation is to go lower level and work on the fundamental pieces of tech because the higher level stuff will be automated away.
- krebby 3y agoWhat's "lower level" in this context? And why shouldn't we assume that assembly language or even circuit design will also be affected by describing in natural language? We've heard variations on this argument for decades and I see no difference why LLMs, despite their immense capabilities, will be massively different. They still take guidance and produce garbage output which requires knowledge and expertise to turn into a cohesive product. Will they replace some script writing, or some business logic translation? Of course. But so did SQL, no-code, and plain-English testing frameworks. LLMs are an incredibly powerful tool but they're not a silver bullet.
- ps256 3y agoThere's nothing stopping LLMs from being good at low-level stuff.
- ilaksh 3y agoRight. It seems like LLMs can be both a huge advantage for one-on-one instruction, but at the same time could just do many tasks for you. Code generation AI systems will continue to get better rapidly. They are not just language models anymore but now can include image input and output. There will be systems trained (or context "trained") for software platforms that put a wide variety of task configurations within easy reach by translating to relatively small amounts of DSL code. The next revolution may come from applying things like Monte Carlo search to concrete domains defined on the fly by LLMs. Or just a tight integration between implementation and testing within the platform and AI loop. Also consider the programming ability increases when models are trained to be able to unroll state very accurately within their platform domains as part of the software design process. Looking anywhere from a few months out to say five years, we should anticipate increasingly capable and more general AI programming systems. Who knows how long it will take for these systems to be fully deployed in all areas. But beyond five years or so, it is kind of hard to imagine what the leading-edge capabilities of these types of systems might be. Maybe no one will want to buy a particular computer game or application anymore. Instead, you buy an AI programmer that comes with a kit for configuring and even coding some custom parts of software specifically tailored for you. Maybe the only thing that really sells at some point are AI asset streaming services which allow your existing AI swarms to on demand pull in new neural radiance models, behavior models, neural world state models, neural avatar models, domain experts, document drafters, etc. These will be integrated with mixed reality. So you are looking at basically portable Holodeck providers. The commodification of all types of skills and knowledge, manifested in person on demand.
- izoow 3y agoI still have very mixed feelings about using LLMs to learn about things. When it works and produces valid information, it's absolutely amazing, and I find it much easier to find and grasp things than simply googling and reading through various pages hoping to piece together what I'm looking for. The problem is that a lot of the time it doesn't, and it's such a convincing liar that it's hard to tell, especially when you don't already have comprehensive knowledge about the subject at hand.
- Salgat 3y agoI'm having this issue currently with Elasticsearch and Opensearch. I use libraries for both (since we're in the middle of migration) and not only does it conflate the two, but it even confuses versions of Elasticsearch that have breaking changes, so it ends up recommending all this convincing code that is based on non-existent or wrong-version library APIs. Drives me nuts.
- jstarfish 3y agoAnything to do with Powershell/Azure is this x1000. It constantly recommends libraries that do not exist, to call API endpoints that were deprecated or never existed. It's maddening. I wish more interfaces supported intake of PDFs/URLs/HTML content as domain material. Then at least we'd be able to point the bot at the most current docs and have it most-heavily weight that information.
- happycube 3y agoI'm finding that the stronger the LLM, the farther the 'frontier' of obscurity before it hallucinates gets. Mistral-7B-instruct is nice to talk to, but it's pretty easy to come up with a topic that it knows nothing about. ChatGPT4 is a lot better, but past a certain point it'll start going wonky too. For learning to code I suspect that with a strong enough version of GPT a new user won't hit the limits, and if it goes wrong having to debug isn't a bad thing ;)
- jawerty 3y agoI find LLMs to be pretty incredible for knowledge but any tool for learning is never going to replace a solid apprenticeship. Leadership will always come from people and early students need good leaders
- lamroger 3y agoit's sad how many places are only staffing with senior+ engineers.
- nyadesu 3y agoI feel LLMs are not at the point to tell me I'm wrong yet, it feels like it avoids to do it because it doesn't want to be rude. And that sucks, big part of the teaching process is the feedback loop between students and teachers doing exactly that.