• jbrains@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    4
    ·
    3 months ago

    Since so much enterprise software development is brain dead, this seems like no great loss. I feel no obligation to be present for employers that mindlessly demand productivity. If they want lines of code, then lines of code they shall have.

    I hope this leads to a renaissance of writing computer programs as a hobby and a craft. I also hope that it helps some entrepreneurs get started and actually build a software company they want to work in.

  • Novamdomum@fedia.io
    link
    fedilink
    arrow-up
    4
    arrow-down
    16
    ·
    3 months ago

    Isn’t this “no calculators in classrooms” all over again? I remember when math purists said that calculators should never be allowed in classrooms or exams because it would lead to brain dead math students.

    What if I told you that coding with the help of AI has opened a door to coding that many never thought they’d get the chance to try…

    There will, of course, always be lazy people but to some of us this is a way to understand coding for the first time. These are exciting times indeed.

      • Ephera@lemmy.ml
        link
        fedilink
        English
        arrow-up
        3
        ·
        3 months ago

        I guess, one might argue that you don’t need to understand neither solution nor problem anymore, if the problem solving is done for you.

        But yeah, I’m not convinced of that. Most of the time, the actual difficulty in problem solving is working out the requirements. The AI won’t magically know your requirements either. It’ll just pick a random guess and produce a result that’s subtly wrong.


        I guess, I can also provide an anecdote for that. A few weeks ago, we were working on a time tracking software, so where the user would enter start and end time and we get to calculate how long that took.

        That’s probably gonna sound easy to someone without programming experience, but it is absolutely not. We don’t know what timezone the times provided by the user are in, so if it’s on the switchover from winter time to summer time, or vice versa, you actually cannot implement this correctly.

        So, I wanted to discuss with a colleague how we should handle that and their first reaction was to ask the AI. Which is fine, I did also do a web search to start out, to see if there’s a library that does this handling best-effort. The AI did reproduce the same non-applicable StackOverflow answer that I had found just before that.

        But this would not have been fine, without understanding the problem. If the AI would have just copy-pastad that StackOverflow code, that would have resulted in a bug.
        And I myself would not have realized that this is a problem, would not have realized the need to work out the requirements and decide how to implement it, if I would not have taken a crack at solving the larger problem myself.

    • Thorry@feddit.org
      link
      fedilink
      English
      arrow-up
      13
      arrow-down
      1
      ·
      edit-2
      3 months ago

      No the big difference is the use of critical thinking. When using a calculator, it doesn’t tell you what to do. You have to know what you are doing and tell it what you want it to do. Then it does the thing and you get the answer.

      That’s why we still teach children to do calculations without the use of a calculator. That way they can understand exactly how it all works and can in principle do all of the work themselves. Later we get to more complicated math, and whilst it would be possible to do all of the calculations ourselves, this would take precious time away from learning the new stuff. So we use calculators and tell the students to show their work. It doesn’t matter what the answer is that pops out in the end, it matters the student understood the underlying principle and applied it correctly.

      I once had full marks on a question in middle school where halfway through the calculation I did 7+3=11 and went on with that. So my end result was completely different from what it should be. But because all of my steps were correct, I used the correct formulas in the right way and showed I understood the fundamentals, I still got full marks (and a red marking saying 7+3 is in fact 10 with a smiley when I got the paper back). The numbers and calculation doesn’t matter, what matters is the understanding.

      With these modern “AI” systems, the understanding is completely skipped. You ask it the question, it pops out the answer. And it will show the work (sometimes unprompted, sometimes prompted), but the user probably doesn’t understand that work. Even when shown repeated examples of a working out and the user would take their time to read them and understand them, I would wager they can’t reproduce it themselves. Actually doing the work is very important for creating an understanding of the underlying principles.

      And these systems don’t have any real limitations to what questions can be asked. So if the magic box has all the answers, what is the motivation to learn anything for yourself. It’s not like they are suddenly going to do the work themselves, that’s what the magic box is for. Until the box messes up and there is nobody who understood what it did what it did or how to fix it.

      With coding there is a secondary issue. Reading code, understanding code and writing code are fully separate things. Reading code is one of the hardest things there is. Not only do you need to have a good grasp of the language/system used, a good understanding of the architecture and specifics of the application is also required. To then understand the written code, one needs to work out intent. A mental model needs to be created of what the author intended to do, why certain decisions were made. And what strengths and weaknesses are. Something very subtle, even a single character difference can be very important in the code. It could mean the difference between code with a security vulnerability and one without. Writing code is whole other ballgame, then you need to know all those things, but also have a mental model of how the code you want to write should work. I’ve had a career in software for 30 years and we still struggle with writing good code and teaching new developers just as much as when I first started. The tools have changed, the world has changed, but it’s still very hard.

      When one is actively developing software (which involves a hell of a lot more than writing code), we tend to switch a lot between reading code, understanding code and writing code. Nobody works in a vacuum and even if we are the only ones writing code, we all have experienced that moment where we had no idea what we wrote on Friday when reading it back on Monday. Or that roller coaster of how does this work, does this even work, this won’t ever work, how has this worked, I’ve seen it working just now. By practicing these skills, we keep our brains engaged, we keep the critical thinking up and keep improving. By skipping steps, we turn our brains into mush and actually lose the skills.

      One might say, well it’s just the writing of the code we skip, we still need to think what the code should do. But that’s not really how these new tools work, you give it a high level task and all the low level stuff gets skipped. Sure it might save you from typing (although the prompt still needs to be typed up, plus all the follow ups), but the actual typing of the code is a very small part in my experience. People who think being a coder is just typing code all day, don’t really know what they are talking about. Sure a lot of typing needs to be done, but often it isn’t all code and a lot of non-typing work needs to be done as well.

      And I feel even the typing of the code is an important part of the process. Think about writing a shopping list for yourself, often one only thinks about what to put on it, as we are writing it. Writing helps the brain to articulate concepts in concrete stuff.

      Not even touching all the other issues with using AI or using AI to code, it will turn developers into mush brain zombies. Coding is more like running than it is like riding a bicycle, humans get very bad at it unless practiced constantly.

      • Novamdomum@fedia.io
        link
        fedilink
        arrow-up
        3
        arrow-down
        6
        ·
        3 months ago

        Well, first of all wow. Kinda blown away that you took the time to write such a full and carefully thought out response. I can’t help but feel a little disappointed though because you really didn’t engage with my main point. Using AI to help write code is actually opening a door for scores of people who would otherwise have been too overwhelmed to even try.

        I’ll give you an example of the enhanced accessibility I’m describing from my own recent experience. I have no idea how to code anything and needed a bit of visual basic written for Word that would take a piece of text and strip out all but the first letter of every word while preserving punctuation. The result would be just a large block of capitalised first letters. It’s part of a system I use that helps me learn large pieces of text.

        ChatGPT not only wrote it perfectly, but also taught me how it did it and offered enhancements such as preserving the original text and producing a toolbar button I could push to trigger the function. I learnt so much that I would have found so much harder any other way.

        I get the risks of over-reliance on automation that isn’t required to undergo detailed peer review but it’s also an amazing gift to amateurs like me.