I have about ~4 years of experience in the world of software development; web apps (mostly fullstack), LPs, and some mobile apps. Still mostly 'young' experience compared to most of you.
After having seen the recent Github Universe, I began to quiver at the thought of my near-future career advances if I didn't submit to using the newest AI-tools like co-pilot. (Perhaps submit is the wrong word here as it could have negative connotations for some that do use it often).
What are you opinions on these new AI tools like chatgpt / co-pilot that, from the conferences and talks, seem to be able to be pretty much a pair programmer? Am I fool not using it? Why do I feel like if I do use it I won't learn as much as I do (or feel like I do) when I am having to shuffle through docs/forums for answers and questions?
Do you guys use it? How often? Any and all responses appreciated!
I took some pride in having almost 20 years of (on-and-off) programming experience, I felt that it was one of my strengths as an older CS graduate student, and I didn't look forward to trading my traditional programming workflow for "prompt engineering." I also generally avoid adopting more complex tools because I think it can lead to spending more time figuring out the tools than using them to accomplish things (i.e. "yak shaving").
But a few months ago my advisor showed me how other people are using ChatGPT to accelerate their work, like having a research assistant, and he basically said that we're falling behind if we're not using it too. Within a month of starting to use it this summer, I knew he was right. Tasks that would previously take me a week to do now take a day or even just an hour. I do worry that it's making me lazier in some cases, but I haven't stopped learning either. I mostly use the output of ChatGPT like I'd use example code from tutorials or StackOverflow; it's less copying-and-pasting exact code and more taking the examples and rewriting or modifying them to do exactly what I want.
The ability to get instant answers to my questions when I don't understand how something works, or when I'm debugging / troubleshooting, has absolutely increased my learning rather than stunting it.
It’s quite good at boilerplate, simple functions and repetitive things (let’s say you need to write all fields of a struct).
Another scenario where I’ve found it useful is writing in a language I don’t know well. It will write a lot of the basic stuff for you, which can really speed things up. Even in languages I know well it has occasionally shown me things I wasn’t aware of. So in my experience I’ve learned more, quicker, using using copilot.
It’s not going to write anything complex and it will hallucinate and write bs code somewhat frequently, other times it writes inefficient code, so I still have to read docs. It also lacks the full context of the project limiting its utility. It’s not going to build your project for you.
That said it’s an amazing tool, like a really powerful autocomplete.
I would recommend to try it, that’s the best way to see for yourself if it brings you anything. I was skeptical as well, tried it, and have been using it for months.