4 ms·
I'm left a bit confused still about using ChatGPT and Claude as someone who's still learning (2nd year CS student) and nowhere near being a professional dev. I
by Mememaker197 2y ago
I'm left a bit confused still about using ChatGPT and Claude as someone who's still learning (2nd year CS student) and nowhere near being a professional dev.
I'm sure if I was was dev who had learnt and worked in the pre-GPT era I'd have no problem using these tools as much as possible, but having started learning in the GPT era I feel conflicted. I make sure I understand each line of code generated whenever I use AI. Despite that I have a feeling I'm handicapping myself using these tools? Will it just make me a code reviewer/copy-paster rather than someone who can write something from scratch?
If it is reasonable to use these tools, at what point does it become so? like at what point can I consider myself well enough at programming to be able to use it like in the post.
Right now I'm purposely restraining myself from using these tools too much because what I can make using them is much better than what I can make myself, so as to get upto a certain level myself before I start making use of these capabilities
Am I thinking about this the right way? At what point does it make sense to start using these tools more freely without worrying about handicapping my learning?
- kmoser 2y agoThink of ChatGPT (and its ilk) as just another tool, no different from a Google search in which you look for code to solve your problem. If you prioritize learning to code on your own, you'll avoid these tools. If you prioritize getting working code, you'll use these tools. It's a sliding spectrum, and there is no right or wrong answer. Even if you rely on these tools heavily, you can't help but learn from them because you must still examine the their code, even if briefly. It will be a different type of learning than what you'd learn from, say, cracking open a language manual (yes, we used to do this back in the pre-Web days), but you will learn nonetheless. I suggest you try all the tools available to you and the decide when it's appropriate for you to use each.
- danielovichdk 2y agoListen my fellow programmer. You can never learn it all. You remember a fraction of things you merely touch. More if you narrow your focus. If you have the passion for programming it will manifest itself by itself over time and with training. Use all the tools available for learning and doing. Question it just as much. Explore the mind and the different axis of the field. Read the books but think for yourself. Programming without money involved is creative and fun. Make sure you remember this. It's not a science or backed by natural laws. Don't worry about being wrong, we all are without guidance, but seek the truth within yourself for what you believe is the best path for becoming a good programmer.
- throwup238 2y ago> Am I thinking about this the right way? At what point does it make sense to start using these tools more freely without worrying about handicapping my learning? None of us can see the future so it's all just bloviating, but let me give you my two cents as someone who's been programming since I was a kid and went the long way around starting with assembler: it probably mostly depends on what kind of programmer you want to be. If you're in CS for the career and you have other things you want to do that have nothing to do with technology after the 9-5, then it's probably not going to be a problem. There's a lot more to software engineering than the code and getting good at those areas - like solving non technical coworkers problems with software - is just as important as writing the code. Most code is also not high-risk and doesn't need to be perfect, just maintainable. Learning the skill of translating requirements to LLM conversations now may well pay dividends in the coming decades because it's pretty obvious that LLMs are here to stay. If you really like programming, want to be an architect later in your career, or want to be the technical cofounder in a successful tech heavy startup or something, then you'll want to minimize your use of those tools to rubber ducking and minor questions. There's a lot of value in developing "grit", that may very well be hampered by use of LLMs. You need to absorb a lot of foundational knowledge so that you can make intuitive decisions about what the LLM is writing. You might be able to use an LLM as the primary guide to developing that knowledge, but it's risky. To be honest, when I was younger I figured all the people who started learning in college and didn't know how the low level basics of CPUs or memory worked would be at a disadvantage, but that has proven to be dead wrong. The majority of people did just fine using Python or Javascript without any of that knowledge or experience and I figure it will play out the same with LLMs.
- redleggedfrog 2y agoI thought your reply was reasoned, good advice, and also taught me a new word - bloviating. And I'm an English major!
- simonw 2y agoI think this is a big open question right now. LLMs can accelerate your learning. I've been programming for 25+ years and the rate at which I'm learning new skills and tools has gone up a very material amount now that I can bounce things through ChatGPT and Claude. Should you worry that if you don't struggle against a weird compiler message for 3 hours (which ChatGPT would have told you how to fix in 30 seconds) you won't be gaining essential crank-on-a-frustrating-problem-for-three-hours experience? I'm personally not convinced that the frustration is worth it. I'd rather have spent those three hours learning a bunch of other stuff. But maybe the only reason I'm a competent programmer today is that I worked through that pain earlier in my career? Since you're clearly thoughtful and conscientious, I suggest trying both. Some days, go all-in on LLMs. Other days limit yourself and work through challenges without them. Experiment like that for a month or so to see which learning style appears to be working best for you.