5 ms·
In my opinion, using these tools daily and extensively, AI and AI copilots are an extreme force multiplier for in writing boilerplate code, debugging simple (bu
by throwaway74432 3y ago
In my opinion, using these tools daily and extensively, AI and AI copilots are an extreme force multiplier for in writing boilerplate code, debugging simple (but non-obvious) mistakes in existing code, and context immersion ("How do I X in framework Y"). It truly helps elevate the craft of SWE above writing code to complexity management and system evolution.
I also feel like this generation of senior/staff SWEs (the senior pre-AI engineer) is in a very unique position for the following reason: we know what the correct code should look like, because we've written it ourselves many times, and we know how to review and modify it quickly. I don't think new SWEs will have that same ability. At the same time, that ability may not be required in the future as AI gets better and better at following instructions correctly.
AI's future in coding is uncertain. I think there is a new unrealized engineering platform on the horizon that can only be realized through a very small and focused group of architects using AI (maybe even 1 person), and that this new platform, which is focused on complexity management and system evolution, will change how we "code" completely, at the same time resetting AI's copilot utility in this new world.
- CityOfThrowaway 3y agoMy interest is massively piqued by the last bit... any rough ideas of what that looks like?
- panagathon 3y agoI'm not sure, but I think of a gesture and voice commanded coding, that is AI guided, and beautifully immersive VR presented and edited, where AI guided is a variable of unknown limit describing how intelligent it could get. I reckon Mcluhan would call it a different medium, in the way he does reading press printing vs a medieval manuscript. Whatever it is, it'll be significant.
- raverbashing 3y agoTotally second this Also for refactoring/creating tests and writing/fixing docs About the second point, yes. Sometimes the LLM will create "almost correct" code but you definitely need to understand it and know why it is wrong.
- cmehdy 3y agoThis is exactly how I'm seeing it right now. Those bots are generally still wrong in some ways, but I can generally spot it in seconds and rephrase those parts after a bit of back and forth. That is still a bit annoying currently, because they end up re-printing the entirety of long messages for singular changes, and they're not so good at changing subtle elements reliably despite talking with absolute certainty. I'm currently dealing with immense legacy tooling (90s to 2010s) and codebases (C, Cpp, C#, Python, JS) in a central team that fell apart a year before I joined. They had 15+ people with diverse profiles who made snippets and undocumented solutions everywhere, and pretty much all quit at the same time due to working conditions at that time. Needless to say it's a daunting task to try and understand everything, even more so when you discover it all as it breaks down and prevents 500 employees from using a functionality you didn't even know existed. While I can survive and navigate just fine the situation, it's been very helpful to use LLMs to run a parallel effort that helps me understand just why the hell somebody wrote a self-altering stored procedure in a 800GB MsSQL DB which fails due to poor design and high recursion. Sometimes it is just about fixing some syntax, but often enough it is about managing expectations and offering replacement solutions which create less technical debt - with minimal interruption to the entire company's workflow. It isn't abnormal for my day to require reverse engineering and fixing a 500-line stored procedure, a Go CLI, multi-CI imbricated pipelines, IIS websites, cronjobs, and even c-shell scripts (!). That's when I'll occasionally throw a big pile into chatgpt as a bit of a glorified rubber ducky. Also tried local LLMs but my 3070ti can't sustain any worthwhile model. Many of us here are in a very unique position of having seen the entire stack - from quantum tunneling all the way up to your CI badly parsing a groovy script or why an endlessly long JS program is stumbling over itself because its writer didn't factor in any estimate of runtime complexity. For me this is a beautiful and lucky thing to see through all those orders of magnitude with a certain equanimity, and I kinda wish I could find it in my own colleagues as much as I'm already seeing it in the illusion of competency created by LLMs.
- az09mugen 3y agoYou helped me find a good analogy of what a LLM really is, basically an improved rubber-duck that can guide you.
- HarHarVeryFunny 3y ago> I also feel like this generation of senior/staff SWEs (the senior pre-AI engineer) is in a very unique position for the following reason Yeah, it'll be interesting to see how that changes things. I think even pre-AI there's already a big difference in old-school programmers and the current generations of graduates. People like myself who grew up programming in the 8-bit era are used to having to design things from scratch, out of necessity, whether that's custom algorithms or data structures, or something like a parser or editor, or whatever. It seems that current generations are more used to assembling things out of lego blocks - more system integration than what I would consider as programming. I guess this is fine when it works - when you can find the pieces you need, but if that's the only skill you have then there is nothing to fall back on if you need to create something complex truly from scratch.
- TheAlchemist 3y ago100% agree here ! On one hand, it makes me really think about my first job - when we automated a lot of things, but the people who did it knew how things really worked. After 2 years, all the newcomers only knew if the indicator is red or green without any understanding of what's really going in - it went downhill from here. On the other hand, if I understand your last paragraph correctly, the real question is do we really need to know all those details ? Would it just be better to have it automated, and the AI agent just ask you questions relating to the desired outcome and outlines the limitations and impacts of your choices, as well as the options available.