3 ms·
> Taking GPT out of the equations reduces my velocity by magnitudes. But you should still know how to do it regardless. Because of situations like this. That i
by danjoredd 3y ago
> Taking GPT out of the equations reduces my velocity by magnitudes.
But you should still know how to do it regardless. Because of situations like this. That is the point of my comment. If you can't do your job without ChatGPT, you don't have any business working in your field to begin with. Even if it's at a reduced speed, you still need to know how to do your job.
>It's a nice thought, but I can apply this chain of reasoning to no end of technologies without which scientific progress in a given domain would entirely halt.
Not really. To do advanced stuff you have to understand the basics. This goes for almost every field. You can't build the next-level Javascript app without knowing what an if-else does. You can't be a doctor without knowing a little chemistry and biology. Even in a job like construction, you need to be able to do simple math to make sure your measurements are correct.
Saying that advanced tools should be used for things like programming without understanding the basics is a logical fallacy. It's the same argument that managers sometimes use. You know, the "programmers only copy and paste from stack overflow. Why do we pay you so much?" Asking chatGPT for code means nothing if you don't know how to apply it and search for bugs. And to use code from ChatGPT, you need to know how to do your job without it. Otherwise, you will only produce code that, at best, sucks and, at worst, doesn't work.
- capableweb 3y ago> But you should still know how to do it regardless. Because of situations like this. That is the point of my comment. If you can't do your job without ChatGPT, you don't have any business working in your field to begin with. Even if it's at a reduced speed, you still need to know how to do your job. I'm currently using ChatGPT for a bunch of AI/ML that I don't know how the insides are working. But I'm able to build models from scratch that does exactly what I want, with 99% accuracy in my test cases, without actually knowing what the model does, but together with GPT4 + automatic hyperparameter tuning, I'm able to build models I can use in production. Does it matter if I know exactly how everything inside in the model works, if I can get it to work exactly to my specification without it? This is essentially how I started programming as well way back in time. I didn't know exactly what the Perl code I copy-pasted did, but if it solved the problem, it solved the problem. It brought me and my family out of poverty, and at that point I couldn't care less about how the magic actually was done, just that it did work. Obviously now I have more knowledge about web field in general and 10+ languages that I no longer have to use any docs to be productive with, and maybe that'll happen with AI/ML eventually as well, but for a person who is starting with something new and wanna be productive quickly, GPT4 is a godsend.
- danjoredd 3y ago>Does it matter if I know exactly how everything inside in the model works, if I can get it to work exactly to my specification without it? Maybe not every single thing, but you should know what your lines of code that implement it do. You can't debug if you don't know why you wrote what you wrote. >This is essentially how I started programming as well way back in time. I didn't know exactly what the Perl code I copy-pasted did, but if it solved the problem, it solved the problem. It brought me and my family out of poverty, and at that point, I couldn't care less about how the magic actually was done, just that it did work. Ok. Great that it pulled you out of poverty. That's irrelevant to your argument, but Im glad for you. I guarantee you that the code sucked regardless. You might not care that you produced software that sucked, but it still guaranteed sucked. If you copy and paste code without knowing what it does, you are a bad programmer. Someone, somewhere, is going to have to clean up your mess. And they are cursing your name right now.
- capableweb 3y ago> Maybe not every single thing, but you should know what your lines of code that implement it do. You can't debug if you don't know why you wrote what you wrote. That's the thing though, the point of code is not to be perfect in isolation, it's to solve a problem. And if you eventually can solve a problem by treating it as a blackbox, who cares? > That's irrelevant to your argument It's not though, it's to illustrate that you can have a real-life impact using code that you don't understand at the time. > I guarantee you that the code sucked regardless That is irrelevant though, because no matter if it sucked or not, it worked and solved a real problem, which is the reason we (I at least) write code in the first place. > Someone, somewhere, is going to have to clean up your mess. And they are cursing your name right now. Well, and here I am cleaning up someone else's mess, so what? Life goes on. You seem to fall into the classical programmers trap of thinking that code has to be beautiful just to look at in order to be valuable, and anyone who disagrees is a shitty programmer and it's their fault you have to refactor some shitty code right now. It's not, they're not, and it's not their fault.
- danjoredd 3y ago
- fellInchoate 3y ago> Not really. To do advanced stuff you have to understand the basics. Doesn't that defeat the whole purpose of these abstractions? Can you read the machine code that your C compiler produces? How much of electrical engineering do you need to know to write a bash script? The physics of how a NAND gate is implemented? It's obviously in the early stages, and I don't disagree with you completely today -- but this will just be one more layer on top of an already deep stack of abstractions that underlie all of computing.
- danjoredd 3y ago>Can you read the machine code that your C compiler produces? How much of electrical engineering do you need to know to write a bash script? The physics of how a NAND gate is implemented? Unironically, I can and do. I took classes in college for things like ASM and logic gates. That's not the point I was making, though. The point is that you need to know how to read your code so that you can fix it if you have to maintain it. Or, if ChatGPT is down(like today) or not giving you the right answer, you can still do your work, albeit a little more slowly. My worry is that people will just plop whatever into a compiler, and leave buggy code that introduces bugs and security vulnerabilities. An LLM is only as good as its data source, and with things like ChatGPT and Github copilot, that data source is programmers both experienced and inexperienced. Use it, love it, but don't rely on it. Implement best practices, and use your head.