4 ms·
I'm definitely gonna get hate for saying this but: the rise of coding with LLM assistants is going to worsen an issue our industry is already struggling with: w
by ToucanLoucan 2y ago
I'm definitely gonna get hate for saying this but: the rise of coding with LLM assistants is going to worsen an issue our industry is already struggling with: we have tons of developers out there who do not know their fundamentals in programming, who are utterly rudderless without heaps upon heaps of framework code doing lots of work for them, who are now being further enabled by machines that write even that code for them with some tweaking afterwards.
I have interacted with software developers at conferences who cannot do basic things with computers, like navigate file systems, or make changes to the Windows registry, where to get and how to use environment variables, how to diagnose and fix PC issues... Like in a perfect world your IT department sorts this stuff for you but I struggle to take seriously someone who claims to create software who seemingly lacks basic computer literacy in a number of areas.
And I'm sorry, "it compiles and runs" is the bare fucking minimum for software quality. We have machines these days that would run circles around my first PC in the late 90's, but despite that, everything is slower and runs worse. My desktop messaging apps are each currently sucking up over 600 MB of RAM apiece, which is nearly 3 times what my original PC had total. Everything is some bloated shite that requires internet access now at all times or it utterly crashes and dies, and I'm sorry but I cannot separate in my mind the fact that we have seemingly a large contingent of software developers out there that can't bloody use computers to thank for this. And cheap-ass management, to be clear, but I think these are nested problems.
- iwontberude 2y ago> It compiles and runs …and rapidly becomes deprecated not due to quality but because the requirements for operation or development changed substantially. This second order effects make the “compile and run” focus paradoxically efficient and correct use of resources. Engineers, especially academically experienced ones, prematurely optimize for correctness and arbitrary dimensions of quality because they are disconnected from and motivated by interests orthogonal to their users.
- ToucanLoucan 2y ago> …and rapidly becomes deprecated not due to quality but because the requirements for operation or development changed substantially. Did they? Like I have no data for this nor would I know how one would set about getting it, but like, from my personal experience and the experiences of folks I've spoken to for basically my entire career, the requirements we have for our software barely change at all. I do not expect Outlook to have chat and reaction functionality. I do not desire Windows to monitor my ongoing usage of my computer to make suggestions on how I might work more efficiently. These things were not requested by me or any user I have ever spoken to. In fact I would take that a step further and say that if your scope and requirements are shifting that wildly, that often, that you did a poor job of finding them in the first place, irrespective of where they've now landed. They are far more often the hysterical tinkerings demanded by product managers who must justify their salaries with some notion of what's "next" for Outlook, because for some reason someone at Microsoft decided that Outlook being a feature complete and good email client was suddenly, for no particular reason, not good enough anymore. And again speaking from my and friend's experiences, I would in fact love it very much thank you if Microsoft would just make their products good, function well, look nice and be nice to use, and then stop. Provide security updates of course, maybe an occasional UI refresh if you've got some really good ideas for it, but apart from that, just stop changing it. Let it be feature complete, quality software. > Engineers, especially academically experienced ones, prematurely optimize for correctness and arbitrary dimensions of quality because they are disconnected from and motivated by interests orthogonal to their users. I don't think we're disconnected at all from our users. I want, as a software developer, to turn out quality software that does the job we say it does on the box. My users, citation many conversations with many of them, want the software to do what it says on the box, and do it well. These motivations are not orthogonal at all. Now, certainly it's possible to get so lost in the minutia of design that one loses the plot, that's definitely where a good project manager will shine. However, to say these are different concerns entirely is IMO, a bridge too far. My users probably don't give a shit about the technical minutia of implementing a given feature: they care if it works. However, if I implement it correctly, with the standards I know to work well for that technology, then I will be happy, and they will be happy.
- exceptione 2y ago
- throeijfjfj 2y ago[flagged]
- qsort 2y agoI don't think it's necessarily worsening, it's just becoming more evident. The way I conceptualize this is that there are two kinds of knowledge. The first is fundamental knowledge. If you learn what is computational complexity and how to use it, or what is linear algebra and why do we care, then you're left with something. The second is what I call "transient" knowledge (I made up the word). If you learn by heart the DOM manipulation methods you have to invoke to make a webpage shiny (or, let's be real, the API of some framework), or what is the difference between datetime and datetime2 in SQL Server 2017, then it looks like you know how to do stuff, but none of those things are fundamental to the way the underlying technologies work: they are mostly pieces of trivia that are the way they are because of historical happenstance rather than actual technical reasons. To be effective at any given day job, one might need to learn a few pieces of knowledge of the second kind, but one should never confuse them for actual, real understanding. The problem is that the first kind can't be learned from youtube videos in increments of 15 minutes. That's what LLMs are exposing, IMO. If you don't know what is the syntax for lambdas in C# or how to structure components in React, any LLM will give you perfectly working code. If your code crumbles to pieces because you didn't design your database correctly or you're doing useless computations, you won't even know what you don't know. This transcends software development, by the way. We talk about how problem solving is a skill, but in my experience is more like physical form: if you don't keep yourself in shape, you won't be when you need it. I see this a lot in kids: the best ones are much smarter than I was at their age, the average struggles with long division.
- asdlkjlidj 2y agoA guy I work with calls transient knowledge "arcana," I've come to appreciate the concept. Now I'm aware of when I'm generating arcana for other people to learn :)