Reply to: Rant about claims that LLMs will make you lose your programming skills

This is a reply to a post published elsewhere. Its content might be duplicated as a traditional comment at the original source.

Sérgio Isidoro said:

Ok, I’m NOT an immediate fan of “vibe coding” and overusing LLMs in programming. I have a healthy amount of skepticism about the use of these tools, mostly related to the maintainability of the code, security, privacy, and a dozen other more factors.

But some arguments I’ve seen from developers about not using the tools because it means they “will lose their coding skills” its just bonkers. Especially in a professional context.

Imagine you go to a carpenter, and they say “this will take 2x the time because I don’t use power tools, they make me feel like I’m losing my competence in manual skills”. It’s your job to deliver software using the most efficient and accurate methods possible.

Sure, it is essential that you keep your skills sharp, but being purposfully less effective in your job to keep them sharp is a red flag. And in an industry made of abstractions to increase productivity (we’re no longer coding in Assembly last time I checked), this makes even less sense.

/rant

I’m in two minds on this (as I’ve hinted before). The carpenter analogy doesn’t really hold, because the underlying skill of carpentry is agnostic to whether or not you use power tools: it’s about understanding the material properties of woods, the shapes of joins, the ways structures are strong and where they are weak, the mathematics and geometry that make design possible… none of which are taken over by power tools.

25+ years ago I wrote most of my Perl/PHP code without an Internet connection. When you wanted to deploy you’d “dial up”, FTP some files around, then check it had worked. In that environment, I memorised a lot more. Take PHP’s date formatting strings, for example: I used to have them down by heart! And even when I didn’t, I knew approximately the right spot to flip the right book open to that I’d be able to look it up quickly.

“Always-on” broadband Internet gradually stole that skill from me. It’s so easy for me to just go to the right page on php.net and have the answer I need right in front of me! Nowadays, I depend on that Internet connection (I don’t even have the book any more!).

A power tool targets a carpenter’s production speed, not their knowledge-recovery speed.

Will I experience the same thing from my LLM usage, someday?

4 comments

  1. “The carpenter analogy doesn’t really hold, because the underlying skill of carpentry is agnostic to whether or not you use power tools: it’s about understanding the material properties of woods, the shapes of joins, the ways structures are strong and where they are weak, the mathematics and geometry that make design possible… none of which are taken over by power tools.”

    I fully disagree. The carpenter analogy holds even better – A software engineer skill is not memorizing syntax. It is designing a system architecture, plan its structure, account for its maintainability, consider readability and complexity for colaboration, know how to structure the program flow and consider the big picture when it comes to performance and cost and reliability. Writing the actual code (ie typing it) is just like manually sawing a plank, after considering everything else.

    I’m sure you can memorize syntax in a few weeks or months. You can even download the entire docs of a programming language and grep them as you need. But learning all the meta skills I mentioned above? It takes decades, and memorizing date format strings won’t be much of an edge there.

    1. Dan Q Dan Q says:

      I agree, but I think we’re talking about different things. Curiously, I suspect that it means we use LLMs in similar ways!

      I use LLMs to boilerplate, to autocomplete, to remember syntax that I’ve forgotten, etc. But this infamous “vibe coding” pattern that gets talked about goes further, asking the model to generate entire classes or programs, potentially beyond the “programmer”‘s comprehension.

      (Personally, I wouldn’t dare trust an LLM to write code that I couldn’t write for myself. In this way, I’m using it like a carpenter uses a power tool: to accelerate what they could do by hand.)

      But some folks, by way of the same analogy, try to replace the need to hire a carpenter in the first place.

      I’ve experimented with this, and sometimes it’s pretty impressive: sometimes the code works! But I’m sure you can see how a less-experienced developer (or neophyte carpenter) might try to have the tool do everything for them, only to have the result fail under some situation that they couldn’t conceive (injection attack against the programmer’s code… somebody sits on the carpenter’s table).

      tl;dr: your analogy has helped me to narrow-down my concern, and – perhaps unsurprisingly – it’s about “vibe coders”. Thanks!

  2. Tim Johnston Tim Johnston says:

    “A software engineer skill is not memorizing syntax. It is designing a system architecture, plan its structure, account for its maintainability, consider readability and complexity for colaboration, know how to structure the program flow and consider the big picture when it comes to performance and cost and reliability”

    Is anyone doing that with LLMs?

    Do you think it’s the norm? I don’t see any indication that it’s the norm, or that most of the people promoting this stuff can design software to begin with.

  3. @Tim Johnston I don’t think so. Or if they are, with my experience with current LLMs, they are having a bad time. But that’s a bit my point here.

Reply here

Your email address will not be published. Required fields are marked *

Reply on your own site

Reply elsewhere

You can reply to this post on LinkedIn, Mastodon (@blog@danq.me).

Reply by email

I'd love to hear what you think. Send an email to b26333@danq.me; be sure to let me know if you're happy for your comment to appear on the Web!