163
submitted 5 months ago* (last edited 5 months ago) by MrOzwaldMan@lemmy.ml to c/programming@programming.dev

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.

top 50 comments
sorted by: hot top controversial new old
[-] Redacted@lemmy.world 75 points 5 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 83 points 5 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

[-] Redacted@lemmy.world 15 points 5 months ago* (last edited 5 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."

[-] MrOzwaldMan@lemmy.ml 17 points 5 months ago

The title was an over exaggeration on my part

[-] ArbiterXero@lemmy.world 13 points 5 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…

load more comments (15 replies)
[-] SmartmanApps@programming.dev 5 points 5 months ago

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. 😂

load more comments (1 replies)
[-] Gutek8134@lemmy.world 5 points 5 months ago

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

[-] theredknight@lemmy.world 18 points 5 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.

[-] MrOzwaldMan@lemmy.ml 10 points 5 months ago

I know that, my anger has manifested this post, and I shouldn't have criticized the entire field

load more comments (1 replies)
[-] Ephera@lemmy.ml 11 points 5 months ago

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

[-] Redacted@lemmy.world 4 points 5 months ago

You are correct I don't know the circumstances so all we can go on is what OP wrote...

[-] MrOzwaldMan@lemmy.ml 8 points 5 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.

[-] justaderp@lemmy.world 5 points 5 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.

load more comments (1 replies)
load more comments (1 replies)
[-] atzanteol@sh.itjust.works 54 points 5 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.

[-] MrOzwaldMan@lemmy.ml 6 points 5 months ago

Thanks will keep in mind next time it happens

load more comments (1 replies)
[-] ShaunaTheDead@fedia.io 40 points 5 months ago

In those kinds of situations you need to remember to try to break the problem down into simpler sections to identify where the problem lies. One of the first steps would be to run SELECT * FROM mainWorkSpace WHERE user_id = @user_id and see if that returns anything.

[-] Enoril@jlai.lu 15 points 5 months ago

Was going to say that.

@OP:

One of the main skill a developer must have is being able to troubleshoot properly how their code behave.

Break your code in small pieces, check all of them with unitary test (formal or not) to validate their behavior then move to the next step. Never test everything in one shot or you will be overwhelmed by side effect bugs whom will distract you from the real root cause.

Being a programmer is not just coding but also testing and deploying (even locally).

That won’t avoid you being blocked by a silly mistake for hours, everybody did that at some point in their career, but that will reduce your frustration against yourself when you discover why the bug existed.

Do a pause, go walk, change the topic and the next time you look at your code, you will spot the obvious bug :-)

[-] morbidcactus@lemmy.ca 10 points 5 months ago

If you're not familiar with the table, use a select top 10 * from table if you're on sqlserver, postgresql uses limit and oracle has fetch.

Don't recommend select * without limits or conditions unless you absolutely know the table, you can very quickly make a DBA unhappy

[-] MrOzwaldMan@lemmy.ml 9 points 5 months ago

In those kinds of situations you need to remember to try to break the problem down into simpler sections to identify where the problem lies.

Learned that the hard way.

One of the first steps would be to run SELECT * FROM mainWorkSpace WHERE user_id = @user_id and see if that returns anything.

It's one of those situations where if i write something, i forget it because it is doing its thing and about selecting everything, i should've done that and it's my mistake.

[-] ShaunaTheDead@fedia.io 5 points 5 months ago

You should read up on what's called "rubber ducky" debugging

Here's a link to a comic that summarizes the idea succinctly: https://www.smbc-comics.com/comic/the-rubber-duck-method Wikipedia article here: https://en.wikipedia.org/wiki/Rubber_duck_debugging

[-] Potatos_are_not_friends@lemmy.world 25 points 5 months ago

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.

load more comments (2 replies)
[-] Quicky@lemmy.world 22 points 5 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.

[-] lemann@lemmy.dbzer0.com 13 points 5 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

load more comments (1 replies)
[-] FizzyOrange@programming.dev 12 points 5 months ago

Real moral of the story: STATIC TYPING!

Seriously so many people think it's a waste of time, and then stuff like this happens.

[-] BatmanAoD@programming.dev 5 points 5 months ago

If only there were a good statically typed database, as opposed to thin wrappers over SQL.

[-] QuazarOmega@lemy.lol 4 points 5 months ago

And better error messages than "bro, you got a syntax error on this line"

load more comments (1 replies)
[-] SatouKazuma@programming.dev 11 points 5 months ago

You want to hate programming? Try using JS. It's anarchy.

"Why is this the way to do things?"

"Because it just is."

[-] treadful@lemmy.zip 4 points 5 months ago

Oh, and there's at last 2 other ways to do it too.

load more comments (5 replies)
[-] hperrin@lemmy.world 10 points 5 months ago

No worries. I’ve wasted more time on lesser mistakes than this. I also once made everyone an admin by forgetting a single ampersand. That was a fun eight hours.

load more comments (1 replies)
[-] Deckweiss@lemmy.world 10 points 5 months ago

I'm pretty sure chatgpt caught mistakes like these for me recently and in the past. Just always slap in all your code into the prompt and tell it what you want the code to do step by step. Like with rubber ducky debugging.

[-] ulkesh@beehaw.org 8 points 5 months ago

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

load more comments (2 replies)
[-] slazer2au@lemmy.world 8 points 5 months ago

Get yourself a debug rubber ducky mate, talk to it when you are troubleshooting might fire off a coupe more pathways to identify the problem sooner.

[-] MrOzwaldMan@lemmy.ml 5 points 5 months ago

I would like mine blue with an army's helmet.

[-] slazer2au@lemmy.world 6 points 5 months ago

You can dress it up however you like.

Holiday duck

Professor Duck

Tech support duck

load more comments (1 replies)
load more comments (2 replies)
[-] RandomVideos@programming.dev 7 points 5 months ago

At least its 2.5 hours and not 2 years because of writing h instead of H

I do this, too. The only remedies I know are a walk or a colleague's fresh perspective.

[-] barsquid@lemmy.world 5 points 5 months ago

For me rubber ducking a coworker solves a lot of these things instantly, but walking just gets me further entrenched in my own stupid ideas.

[-] RagnarokOnline@programming.dev 6 points 5 months ago

Sucks bro. You’re in good company tho

[-] Strider@lemmy.world 6 points 5 months ago* (last edited 5 months ago)

The reason the date is not in the output is because you didn't include a date column in your SELECT statement.

If you want to include the date in the output, you'll need to add a column that contains the date to your SELECT statement. For example, if you have a column named "created_at" or "date" in your mainWorkSpace table, you can add it to your SELECT statement like this:

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

This will include the created_at column in the output of your query.

🤷 Gpt, first try. I don't know what you asked.

[-] Redacted@lemmy.world 7 points 5 months ago* (last edited 5 months ago)

Ah I see ChatGPT is being as accurate as ever making up a created_at field completely unprompted. They've already found the correct SQL:

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

Although I would question the sense in calling a date field "date".

[-] Strider@lemmy.world 5 points 5 months ago

Well I have to defend it here, it explicitly stated

if you have a column named "created_at" or "date"

But yeah anyhow anyone should be able to figure the own solution out with this. Nonwithstanding that if you need gpt for this, you might not have a good time in general.

load more comments (8 replies)
load more comments (3 replies)
[-] jadedwench@lemmy.world 5 points 5 months ago

https://m.youtube.com/watch?v=CFRhGnuXG-4

Watch this. I have found that this makes it way easier to debug shit, is more readable, and cuts down on mistakes.

[-] driving_crooner@lemmy.eco.br 5 points 5 months ago

What did you asked ChatGPT? I tried it and straightforward said that the date field wasn't included on the select statement

https://chatgpt.com/share/80918db9-5284-4a9b-b971-dde78b00497a

[-] spartanatreyu@programming.dev 9 points 5 months ago

Better to ask a rubber duck than an LLM.

It has better results, is cheaper, and makes has a positive compounding effect on your own abilities.

[-] tastysnacks@programming.dev 4 points 5 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.

load more comments (1 replies)
[-] BrianTheeBiscuiteer@lemmy.world 4 points 5 months ago

One of the hardest issues to troubleshoot is a bad assumption. Be glad you only spent 2 hours on this.

[-] lolcatnip@reddthat.com 4 points 5 months ago

Programming: not even once!

load more comments
view more: next ›
this post was submitted on 11 Jun 2024
163 points (100.0% liked)

Programming

17364 readers
181 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS