People often talk about the productivity gains that comes from LLMs, and it would be disingenuous of me to dismiss these. It’s true. You can be productive with an LLM-assisted workflow, but that same workflow could also be making you dumber.
There’s a reason behind why I say this. Over time, you develop a reliance on LLM tools. This is to the point where is starts to become hard for you to work without one.I got into software engineering because I love building things and figuring out how stuff works. That means that I enjoy partaking in the laborious process of pressing buttons on my keyboard to form blocks of code.
LLM-assisted workflows take this away. Instead of the satisfaction of figuring out a problem by hand, one simply asks the LLM to take a guess.
This is a perspective that I’ve been seeing increasingly. And despite its black and white thinking, strong rhetorical position, unhelpful invective and strawmanning, there is something here worth considering.
Programmers used to punch holes in cards. They moved bits around in memory with machine and assembly code. They, heaven forbid, allocated and deallocated their own memory! It still helps somewhat to understand what is happening at lower levels of abstraction, but the history of software engineering has been a steady increase in the level of abstraction.
Now this is not entirely predictable or perhaps even inevitable. When I was studying computer science in the second half of the 1980s 4GLs (4th Generation Languages) were widely considered the future of programming. So much so that the final year major software engineering project changed from using COBOL to a 4GL (Omnis from memory) in my final year of the course.
We still steadfastly use 3GLs in most programming tasks 40 years later.
Software developers mostly no longer allocate and deallocate memory, garbage collection now being part of almost all languages.
Some skills and capabilities remain foundational, some over time, once seemingly vital to the practice of developing software, become increasingly less important.
But it’s worth pondering right now as LLMs emerge as powerful aids o developer productivity, which capabilities will remain foundational and whichever time will atrophy.