• MagicShel@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    1 day ago

    I agree, but I acknowledge we could be at a “cursive writing” moment where something that was once a critical skill becomes irrelevant. That’s sort of a pending question at this point.

    I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.

    With AI you can literally just say “replace all direct field access (e.g. thing.foo) with getters and setters” and the AI will do it in under a second. It will still be a very useful skill to be able to do things like that with regex because not everything is so easy to communicate to the AI, but it will become less frequently needed and a lot of developers who never learned that skill will get by using AI and just doing the rare things AI can’t do with repetitive keyboarding.

    • groucho@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 day ago

      I see cursive writing brought up a lot in these conversations and I don’t think it applies. Firstly, the cognitive load of writing code is higher than writing your letters so they join up. You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head. Yes, initially it’s hard and boring.

      And yeah, sometimes you get it wrong or forget to capitalize. That is a feature, not a bug. The more you do it, the easier it gets. I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using. It was like spending a sprint trying to get a subpar intern up to speed. At the end of those two weeks, my manual coding accuracy took a noticeable hit.

      I complained to higher-ups and they told me “oh it’s definitely a skill getting the prompt written correctly”, which was patronizing and irritating. Would I rather spend time getting good at asking the proprietary magic thinky box to maybe write good code this time, or would I rather get better at coding?

      I mean I’ve spent a lot of time writing regex to automate large sets of changes. Sometimes it can be a bit fiddly to get the regex just so. Like replacing direct field access with > getters where you have to find the field access and change .foo to .getFoo() and the capitalization can take a couple of tries to get just right.

      At least you’re learning more about regexes when you do this. Yes, there’s menial bullshit in coding. There’s menial bullshit in every field. Some of it gets abstracted away (syntax highlighting to help with comprehension), some of it gets kicked around and ultimately does not impress (VB’s drag-and-drop coding), and some of it stays because it’s necessary. Nobody likes doing manual stuff, but sometimes it’s preferable to trying to automate it.

      Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.

      • MagicShel@lemmy.zip
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 day ago

        You’re not just making sure you write the letters correctly, you’re also following the syntax rules of the language you’re writing. And while you’re writing, you’re reinforcing those rules in your head.

        I get where you’re coming from, but I’ve worked with a lot of bad developers who never got the hang of this even as mid-level developers. On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.

        It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.

        I spent a couple weeks trying to use CoPilot and at the end I still had to correct its shitty code, which either hallucinated features I wasn’t implementing, or hallucinated syntax rules I wasn’t using.

        We are using CoPilot. As a code-completion engine it is handy. I’m much more skeptical about the new code it writes. Like you, I have not had good experiences with that.

        Also, I’ve never heard of anyone paying $20 a month for the privilege of not writing in cursive, or being unable to write because they don’t have internet. Something to think about.

        You’re right. Tool access is certainly something to think about. I have more nuanced thoughts, but I don’t want to disagree just to disagree, you know?

        • groucho@lemmy.sdf.org
          link
          fedilink
          English
          arrow-up
          5
          ·
          1 day ago

          On the other hand, I understand the utility of knowing how to do these things for ourselves. There are a number of “black-box” libraries that were just an absolute mystery to me until I tried implementing them myself and began to see these libraries are usually not complex so much as they are thorough in covering edge cases that 90% of users will never care about.

          Yeah, that’s one of my big fears. Not necessarily losing my job to an AI, but AI exacerbating existing bad practices.

          When I started my current job, we had one rock star coder responsible for a fairly fiddly piece of our product. He went heads-down for two weeks and churned out pages of densely-written python without comments. It did what it was supposed to do, flawlessly. He left the team shortly afterward to work on a bigger project, and we got word from the higher-ups that we had to support a new feature upstream in that code. And then another. And so on. Nothing’s commented. Everything’s over-optimized. We eventually ended up just cross-compiling the upstream logic and using that in our stack because it was easier than using his impenetrable stuff.

          In the end, we had to fix it with menial, boring, aggravating manual work anyway. We got ourselves into that situation without AI, but I could see something like that becoming more prevalent. And that was working code. Imagine getting a SEV, and everyone on the blame list shrugs and says “idk, I had CoPilot do it.”

          It would definitely be a shame if these tools caused new developers to bypass fundamental skill development. My only hesitation is the number of developers who should’ve developed those skills and never did before AI. There’s something wrong either with how developers are learning or who is getting into development.

          Yeah, this is part of it. There’s maybe the science of programming and also, for lack of a better term, the craft: writing maintainable code, handling a SEV, thinking in terms of uptime, setting things up to be reverted easily, shutting down neurotic code reviewers, testing your code… stuff like that. Universities are good at the science part. Internships, theoretically, handle the rest. This isn’t an AI issue, but I could see AI making this problem a lot worse.