Title before edit: I hate programming, why did i choose this field

TL;DR: Stupid mistake, made by hours waste.

Basically, I was extracting date from the SQL db, and it was not displaying. I tried everything, heck I even went to chatgpt, and copilot. Two and half hours of trying every single thing under the sun, you know what was the issue?

SELECT task, status, id FROM mainWorkSpace WHERE user_id = @user_id

I FUCKING FORGOT TO ADD ‘date’ TO THE DAMN QUERY. TWO AND HALF HOURS. I was like, “Ain’t no way.” as I scrolled up to the query and there it was, a slap in the face, and you know what was the fix?

SELECT task, status, date, id FROM mainWorkSpace WHERE user_id = @user_id

Moral of the story, don’t become a programmer, become a professional cat herder instead.

  • Soviet Pigeon
    link
    fedilink
    111 months ago

    When I have problems like this, I start to question whether I can program at all and whether I should perhaps change my profession. This often happens when I’m tired or overworked. I make stupid mistakes and assume that the cause of the problem is something complex.

    • @MrOzwaldMan@lemmy.mlOP
      link
      fedilink
      111 months ago

      This often happens when I’m tired or overworked. Maybe it’s because of this and the frustration of the situation that had me (idk the word) go angry and write this post.

  • @ulkesh@beehaw.org
    link
    fedilink
    English
    811 months ago

    We’ve all done stupid stuff like this. The trick is to pad time into estimates to account for it :D

  • @Redacted@lemmy.world
    link
    fedilink
    English
    5411 months ago

    You didn’t add the date field to your query and couldn’t work out why it didn’t return the missing field for over 2 hours?

    Perhaps SQL isn’t for you as things get waaaaay more finicky than that.

    • @ArbiterXero@lemmy.world
      link
      fedilink
      8211 months ago

      You’ve never made a silly mistake where you “can’t see the forest for the trees”?

      It happens to the best of us

      • @Gutek8134@lemmy.world
        link
        fedilink
        511 months ago

        One time I’ve been trying to force UE5 to let me edit TArray<TPair>, an hour later I realized I could just use TMap

      • @Redacted@lemmy.world
        link
        fedilink
        English
        -4
        edit-2
        11 months ago

        Yes of course, but it’s not the sort of thing I’d make a rant post criticising the entirety of programming about.

        It’s like going to a mathematics forum and declaring “Guyz I forgot to carry a 1, screw Maths.”

        • It’s like going to a mathematics forum and declaring “Guyz I forgot to carry a 1, screw Maths.

          You may think you’re joking, but as a Maths teacher I can tell you I have seen a lot of posts where someone makes a mistake with their signs, then uses their wrong answer to declare “The rules of Maths are wrong! Look - different answer!”. Yeah umm, try working on getting your arithmetic right first before claiming to have “proved” something. 😂

        • @ArbiterXero@lemmy.world
          link
          fedilink
          1211 months ago

          Because developers are all logical and don’t EVER show anger at the systems they’re working on…. Hahahaha…

          I mean I personally wouldn’t post about it, but I’d probably rant over lunch at my stupidity…

          • @Redacted@lemmy.world
            link
            fedilink
            English
            -1011 months ago

            There’s a difference between ranting to your coworkers at lunch about a stupid mistake and typing out a full rage essay.

            Imagine the state of the sub if we all did that… Wait…

            • @BatmanAoD@programming.dev
              link
              fedilink
              711 months ago

              This “full on rage essay” is nine sentences, including the tl;dr and the sentence fragments. There’s really not a big difference between telling your coworkers a story like this and posting about it on social media.

              • @Redacted@lemmy.world
                link
                fedilink
                English
                1
                edit-2
                11 months ago

                Did you read it before the edits? If it’s written like that I think I’m entitled to exaggerate back slightly to make a point by calling it a rage essay.

                Anywho I wouldn’t choose to rant like this to my coworkers or online. A quick 🤦 in chat usually does the trick.

            • @ArbiterXero@lemmy.world
              link
              fedilink
              311 months ago

              Oh I’m not encouraging it, personally I just ignore the rants like that….

              But at the same time, I can identify the emotion that drew the person to do it.

              • @Redacted@lemmy.world
                link
                fedilink
                English
                -2
                edit-2
                11 months ago

                Ah yes here you are successfully ignoring it.

                Might not be encouraging it but you seem to be defending it.

                • @ArbiterXero@lemmy.world
                  link
                  fedilink
                  011 months ago

                  I ignored OP’s statements, not yours.

                  You’ll find I replied to you and not them, but I appreciate your condescension in the midst of being wrong.

                  Ranting about problem you had and being dramatic about it? No problem, I get it. I’m here to be supportive of your struggles. I’ll absolutely defend someone that is being dramatic over their own mistakes, we’re all our own biggest critics. Beyond that, I’ll ignore it and let them get through their own emotions.

                  Feeling the need to judge someone over it? Yeah, YTA here and you’ll find that coworkers don’t like you for it. It’s unpleasant, and unnecessary.

                  Do you enjoy it when people point out your faults and say “maybe the tech world isn’t for you?”

                  …… but you’re not going to see it that way at all. You’ll create some meaningless “but it’s different” argument because you feel the need to defend your actions rather than reflect on them.

                  Have a nice day, I’m done.

          • @corsicanguppy@lemmy.ca
            link
            fedilink
            111 months ago

            The best devs Ive worked with are all “barn cats”. They yell, they challenge, they curse, they gesticulate, but they never offend.

            (The f’n Workplace Sensitivity thing I just took outlawed so many behaviours that I know would exclude every superhero I know. What’s happened to the industry?)

    • Ephera
      link
      fedilink
      1011 months ago

      You don’t know the circumstances. They might have only seen the query results after several processing steps…

    • @MrOzwaldMan@lemmy.mlOP
      link
      fedilink
      811 months ago

      it’s indeed a new language for me and I haven’t developed that ability to know where the bug is happening but I am going to get there.

      • @4am@lemm.ee
        link
        fedilink
        111 months ago

        Yeah don’t beat yourself up - when you are new to SQL it fucking let’s you know.

        It’s easy to get distracted thinking about all the ways shit fits together., where you could have just gone wrong. And now, next time, you’ll know.

      • @justaderp@lemmy.world
        link
        fedilink
        511 months ago

        Assuming you’re coming from a linear programming and OOP background, then data (incl. SQL) kinda sucks because it’s not always clear how to apply existing concepts. But, doing so is absolutely critical to success, perhaps more so than in most OOP environments. Your post isn’t funny to me because I’d be laughing at you, not with you.

        If a variable is fucked, the first questions you should answer are, “Where’d it come from?” and “What’s its value along the way?”. That looks a lot different in Python than SQL. But, the troubleshooting concept is the same.

        If object definitions were replaced by table/query definitions in planning then you’d probably not have made the initial error. Again, it looks different. But, the concept is the same.

        • @MrOzwaldMan@lemmy.mlOP
          link
          fedilink
          311 months ago

          Assuming you’re coming from a linear programming and OOP background, then data (incl. SQL) kinda sucks because it’s not always clear how to apply existing concepts. But, doing so is absolutely critical to success, perhaps more so than in most OOP environments. Your post isn’t funny to me because I’d be laughing at you, not with you.

          That’s correct, I have done a lot of OOP in Java and C#, and the internship I’m doing is with C# and ASP.Net.

          If a variable is fucked, the first questions you should answer are, “Where’d it come from?” and “What’s its value along the way?”. That looks a lot different in Python than SQL. But, the troubleshooting concept is the same.

          You see, I wasn’t thinking clearly at the time, wasn’t looking at the right place, and like the post says, I’ve finally looked at the right place and made me feel frustrated. The frustration was at myself not at programming.

    • @theredknight@lemmy.world
      link
      fedilink
      1911 months ago

      Seriously. If this broke him it gets so much worse… but honestly op, this is how you learn what to do and what not to.

        • @Redacted@lemmy.world
          link
          fedilink
          English
          111 months ago

          Fair play. SQL is pretty different from traditional programming and errors often aren’t very descriptive.

          You’ll need to get very familiar with fields you have included or not in your queries when using more advanced stuff like group functions as including or excluding them can alter the number of rows returned.

        • @corsicanguppy@lemmy.ca
          link
          fedilink
          211 months ago

          I think anyone who’s been in the field for long enough knows you weren’t really slamming all of it. Beaking off is totally okay.

  • The difference between experienced devs and non experienced devs is that we have hundreds of stories like that under our belt. Hundreds of “Ah I wasted all this time because of a typo”, and now we know to check for it.

    It never stops. And after a while, a dev will share this exact scenario and you’ll look back and share the same bit to them.

    • @vrek@programming.dev
      link
      fedilink
      English
      411 months ago

      I had that experience last week. I half blame the language though cause the way it works is you don’t initialize a variable, first time you use it the language automatically makes the variable and default value is 0.

      I had a variable countoot that I had a formula calculate. Then a simple if countoot > 0 do this else do that. The program kept doing that. I knew countoot should be 2. I manually did the formula … The answer was two.

      I did the same formula in 3 other programs and it worked correctly. I spent between 1.5 to 2 hours a day for like 3 days banging my head on the desk trying to figure out why it would work. Fourth day me and 2 other guys were trying to figure it out when I finally really looked closely. I realized the formula result was stored in ccountoot(notice 2 c) and the if statement was based on countoot(notice 1 c)…yeah I felt so stupid when correcting the typo fixed the problem.

      • @leftzero@lemmynsfw.com
        link
        fedilink
        111 months ago

        first time you use it the language automatically makes the variable and default value

        Now, that’s just evil. 😨

    • @leftzero@lemmynsfw.com
      link
      fedilink
      111 months ago

      The difference between experienced devs and non experienced devs is that when seeing “the experience that made me hate programming” and “date” in the same post experienced devs just stop reading (mostly due to the PTSD hit) and assume it must have been some date format issue or shudder timezone shenanigans between the database and the programming language…

    • @MrOzwaldMan@lemmy.mlOP
      link
      fedilink
      411 months ago

      Thanks for sharing your experience, who knew a frustrating post written by me would give me lessons which i am going to take to heart.

      • @leftzero@lemmynsfw.com
        link
        fedilink
        6
        edit-2
        11 months ago

        Thinking about C# and Dapper here 'cause they’re what I’m used to, but, for example…

        result = await connection.QueryAsync<ResultType>(QUERY); (where ResultType is a statically typed record, class, or struct shaped like the data you want returned.)

        Given a query that doesn’t return something that matches any of ResultType’s constructors, the code’ll throw an exception at runtime complaining it needs a constructor that matches whatever it’s returning, whereupon you’ll notice it isn’t asking for it to have a date parameter, so the query must not be returning it.

  • @atzanteol@sh.itjust.works
    link
    fedilink
    English
    5611 months ago

    The best advice I can give to new developers is “question your assumptions”.

    “But I set that variable” - did you?

    “It should default to 0” - is it?

    Remember - if things were working as you think they are then your code would be working.

    • @0ops@lemm.ee
      link
      fedilink
      311 months ago

      Basically how I do rubber duckie debugging

      See? It should work because I initialize it as this and iterate doing this and this which gives me a data structure like this and … wait … oh hell that clearly doesn’t produce the data structure I want. 🤦

      We tend to see what we want to see, not what actually is.

    • @corsicanguppy@lemmy.ca
      link
      fedilink
      411 months ago

      I have great colleagues who still bust out this kind of cross-examination when we’re trying to figure out why my code is a bag of poo. I have some friends I’ve known 25 years who will do this, and it’s every bit as annoying and infuriating as it’s invaluable help.

  • 𝒍𝒆𝒎𝒂𝒏𝒏
    link
    fedilink
    1211 months ago

    This kind of stuff happens all the time IMO, we’re human and not perfect 🤷‍♂️

    I don’t know how much of a help ChatGPT would be in this situation without access to your schema, at least with Copilot you can write a comment in the code explaining what you’re trying to do and get some usable pointers in the generated suggestion (which takes your codebase into account).

    I usually try to get a second pair of eyes on my code if something that seems relatively simple isn’t working as expected… As you gain more experience these mistakes will become less common, and easier to spot

    • @tastysnacks@programming.dev
      link
      fedilink
      411 months ago

      Honestly I worry about the use of ChatGPT on programmers. Training your eyes and brain to see things takes time. I know the suits just want production but I’d rather have better programmers.

      Of course, I could just be old.

    • @MrOzwaldMan@lemmy.mlOP
      link
      fedilink
      211 months ago

      I posted the entire function where the issue was occuring and it was trying to solve the function and not the query.

    • @corsicanguppy@lemmy.ca
      link
      fedilink
      111 months ago

      Watching this YouTube clip, I couldn’t help but remember the other YouTube clip that shows a red panda leaping against a door and trying to reach the doorknob.

      I worry you’re artificially limiting yourself, and I hope you have the comfort to overcome this phobia one day.

      • @EatATaco@lemm.ee
        link
        fedilink
        English
        111 months ago

        I don’t consider myself a never nester, but looking at my code now, I extract all the time and rarely go 4 tabs in. It just makes it more easily maintainable. I also like the idea of putting the failure conditions first. I haven’t looked at this yet but I’m sure there are some times I can use it.

        Sure, sometimes you might not have a choice, but I do think there is a lot of value to what they are saying. I think it kind of goes in line with standard “functions should do one thing” paradigm.

        • 🐍🩶🐢
          link
          fedilink
          English
          111 months ago

          See, when I was in school, they didn’t teach fail fast and if anything they told you not to. Nowadays, we have moved past that nonsense. I gave it a shot about a year ago, and it has made me a better programmer. I am not going to sit there and count braces, but things are a lot easier when you get the error cases over with and out of the way.

          There are always going to be exceptions, but I have personally found a lot of value in using ‘fail fast’, and making more smaller methods that say what they do. I am not always great at that second part, but it is a process. As someone with severe ADHD, it has made it a lot easier to work through problems. Sure, you can end up with more lines of code, but who cares. Compiler should be optimizing most of that shit out anyway.

      • 🐍🩶🐢
        link
        fedilink
        English
        211 months ago

        🤣 no need. I certainly am not Linus levels of stickler on it and don’t sit there and worry about it. I just found the concepts he is trying to teach very helpful. Fail fast and breaking things up into smaller methods that do “a thing”.

  • Quicky
    link
    fedilink
    2411 months ago

    I’ve been a SQL dev for years. Last week I spent half an hour reading up on why wrapping a bunch of queries in a transaction was giving me incorrect results compared to when they were separate committed statements. I was investigating locking or what might be happening in the execution plan that was throwing it off.

    Turns out I just fucked up the where clause. I didn’t even consider the schoolboy stuff. This kind of shit happens all the time.