I hate programming, why did I choose this field.

https://lemmy.ml/post/16742521

I hate programming, why did I choose this field. - Lemmy

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.

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.

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.

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.
I know that, my anger has manifested this post, and I shouldn’t have criticized the entire field

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.

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.
You don’t know the circumstances. They might have only seen the query results after several processing steps…
You are correct I don’t know the circumstances so all we can go on is what OP wrote…

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

It happens to the best of us

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

I think this may be a symptom of overreliance on AI for learning to code. AI won’t help as it doesn’t know the schema and if you can’t figure it out yourself I really think it’s time to go back to basics to fill the gaps in your knowledge without the crutch of ChatGPT.

The title was an over exaggeration on my part

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…

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…

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.

Got it, you don’t call out the change you want to see in the world. How brave.

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.

Wow ok chill.

Yeah, being called out and unnecessarily put to task is unpleasant, isn’t it?

The irony is spectacular.

Have a nice day.

Completely put to task, yep really got me there. I will never see the world in the same way again.

Also, I don’t think you understand what irony means.

You too.

Nice edit, this wasn’t the original message lol.

You were unnecessarily rude and you know it.

My original message was “Wow ok chill.”

You had an unnecessarily emotional reaction to that so I elaborated to clarify.

Where I’m from people are way ruder than anything I said here so perhaps I misjudged the room. However, calling it out seems to have had the desired response as since posting OP went and apologised for his anger.

I in turn apologise for my rudeness to them.

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.
Did you read it before the edits?!
I read it a few hours ago. Was it substantially longer before?
No, He’s just trying to excuse his own emotional reaction.

No not substantially, title was different and some words toned down.

I withdraw the word “essay” and replace it with “post”.

Not substantially, it had a different title and was toned down.

I withdraw the word essay and apologise for any rudeness.

Have a good one.

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?)

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

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

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.

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.

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.

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

My second pair of eyes was in an another country for business stuff so I had to solve it all by myself and because of the frustration, i wrote this post. Sorry about that
That’s when rubber duck debugging comes in handy.
Rubber duck debugging - Wikipedia

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.

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.

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 :-)

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.

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

Saturday Morning Breakfast Cereal - The Rubber Duck Method

Saturday Morning Breakfast Cereal - The Rubber Duck Method

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

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.

🤷

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:

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

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.

ChatGPT rightly assumed you wouldn’t use a reserved word in your schema
Perhaps, but we don’t know and therein lies the problem.

It pointed out the exact problem immediately and would have saved hours of effort.

But yeah, it didn’t know the name of the column and guessed at what it would be.

It made an incorrect inference, imagine how wrong it is on more complex questions.

Of course. I would not recommend using it.

More like giving hints or a rough frame to work with.

Umn. No. It told you it was making that inference since it didn’t know the table schema.

For example, if you have a column named “created_at” or “date” in your mainWorkSpace table, you can add it to your SELECT statement

Otherwise it was exactly right about the problem.

So wrong then.
No. In what way is “If you have a column named foo add it to your query” wrong?
I pasted my code multiple times and didn’t give me that answer. Maybe it’s because you only copied the query and not the code that i wrote.
I also posed the question why I don’t get a date in the output of course.
I was talking about this date which was used to display the date assigned by the user, but the column was not displaying with the date because I wasn’t asking sql for the date (if you’ve looked at the query), so yeah, a stupid mistake caused for a stupid angry post.
DateTime.Date Property (System)

Gets the date component of this instance.

You tried “everything” for over 2 hours but never tried the “*” selector?
User: I’ve tried everything Support: Have you tried <first step in documentation>?