I’m a product engineer at heart. I love getting products off the ground and love tackling the “hard science” kernels of value which GPT can’t help with. Everything else is just implementation and while I agree it’s necessary to know programming and databases and networking or else you’re doomed following the pied piper of LLMs, I don’t find the rote implementation to be the fun parts of what I do - I’m happy to use GPT to ease the burden.
If you let it guide your code structure or your architecture, you will end up with a mess very quickly.
But if you use it as autocomplete on Steroids, it can really speed you up.
Most of the benefits come from taking the time to write out a design or description for the function I'm writing, but sometimes ChatGPT makes useful contributions.
What an age we live in. I figure I'll be just about adapted to these tools by the time GPT-5 comes out.
https://docs.sourcegraph.com/cody/overview
I've not used the copilot like features, but asking questions has been very useful.
This is especially beneficial for harder languages like Rust. Although I will admit that Copilot did not work very well with rust a few months ago but seems to be better now.
My pet theory is that there are two kinds of (hobby) coders: those who like making things, and those who like making things. One like myself is more excited about the mental task of wrestling out the minutiae of coding. Like making types agree or implementing an algorithm. The other is more excited about the product of the labor rather than the labor itself.
For me as a person who likes writing code as a mental relaxing excercise where sketching out a set of domain types or implementing an algorithm from a textbook is the fun part, and actually seeing the result and "banging out the remainnig issues" is the part that reminds me of my day job, I think AI helpers just help me with the wrong bit. It makes me do code reviews, bug hunting and nagging. But that's already my day job...
I should add that I never do anything with lots of boilerplate (e.g. no web dev). If I ever needed to touch anything with js/html/css/containers/yaml/sql/ then the AI would probably not just be helpful but completely necessary.
ChatGPT and Copilot makes the programming experience feel like the latter. Despite me having never used any of these libraries or tools before. The code just flows out smoothly.
Copilot seems to have vacuumed up all the “quick hack to make this work” code from blogspam and bootcamp-final-project type open source repos, but I’m in an area absolutely flooded with that kind of code (typescript/react) so maybe it’s better with other kinds of code. Typescript/react is so bad now that google searches often return blog posts full of confidence and issues.
A few times it’s generated bugs that I couldn’t even catch by reading but it blows up spectacularly when scaled up even a little bit.
If I code-as-meditation or code-as-a-concept-thinking it's more like "could I make a synthesizer?" or "how do B-trees work? Could I make a simple database?". And the coding is part of figuring out how something works or if I'm capable of doing it, rather than actually getting a working synth out of it.
I just want to make, not have a thing. Given the choice of completing the first project or starting a new one, I'd rather just work to the stage that I understand that it could be done in theory, or that I could do it personally (if I invested way too much time), than actually do it.
I have been a paid AI practitioner since 1982, and everything feels different now.
I have CoPilot always on in Emacs. I use Bing/ChatGPT, ChatGPT, and Bard to bounce ideas off of and research. I used MidJourney t9 create the cover for my last book Safe For Humans AI.
I can’t imagine not having these tools handy.
Bring on the version that can support my coworker's 7 year sideproject 80k line rathole of python metaprogramming and tell me how to make a small change there, bring on the version that can understand version conflicts between react, react native, and expo libraries - or even fix their shit documentation in real time.
Even if the core product of these LLMs doesn't get any better, I'm stoked to see the wrappers and fine-tunes that they produce over the next few years. Maybe I'll get to be a super TPM with a legion of little AI agents to do the things I want and I'll only have to write code when I feel like it.