The experience that made me hate programming, but that's all on me
from MrOzwaldMan@lemmy.ml to programming@programming.dev on 11 Jun 10:09
https://lemmy.ml/post/16742521

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.

#programming

threaded - newest

Deckweiss@lemmy.world on 11 Jun 10:19 next collapse

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.

Redacted@lemmy.world on 11 Jun 10:20 next collapse

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.

theredknight@lemmy.world on 11 Jun 10:28 next collapse

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 on 11 Jun 12:08 collapse

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

Redacted@lemmy.world on 11 Jun 12:31 next collapse

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 on 12 Jun 04:13 collapse

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.

Ephera@lemmy.ml on 11 Jun 10:58 next collapse

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

Redacted@lemmy.world on 11 Jun 11:47 collapse

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

ArbiterXero@lemmy.world on 11 Jun 11:04 next collapse

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 on 11 Jun 11:45 next collapse

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 on 11 Jun 12:04 next collapse

The title was an over exaggeration on my part

ArbiterXero@lemmy.world on 11 Jun 12:45 next collapse

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 on 11 Jun 13:05 next collapse

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…

ArbiterXero@lemmy.world on 11 Jun 13:15 next collapse

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 on 11 Jun 13:30 collapse

Ah yes here you are successfully ignoring it.

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

ArbiterXero@lemmy.world on 11 Jun 18:06 collapse

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.

Redacted@lemmy.world on 11 Jun 18:48 collapse

Wow ok chill.

The title of this post was “I hate programming, why did I choose this field”.

I responded suggesting maybe OP isn’t suited to SQL in particular. There are plenty of other languages to learn that they might pick up quicker if they are struggling with SELECTs.

ArbiterXero@lemmy.world on 11 Jun 19:33 next collapse

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

The irony is spectacular.

Have a nice day.

Redacted@lemmy.world on 11 Jun 19:36 collapse

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.

ArbiterXero@lemmy.world on 12 Jun 04:53 collapse

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

You were unnecessarily rude and you know it.

Redacted@lemmy.world on 12 Jun 08:24 collapse

My original message was “Wow ok chill.” then 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.

BatmanAoD@programming.dev on 11 Jun 21:44 collapse

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 on 11 Jun 23:15 collapse

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.

BatmanAoD@programming.dev on 12 Jun 02:08 collapse

I read it a few hours ago. Was it substantially longer before?

ArbiterXero@lemmy.world on 12 Jun 04:54 next collapse

No, He’s just trying to excuse his own emotional reaction.

[deleted] on 12 Jun 08:47 next collapse

.

Redacted@lemmy.world on 12 Jun 09:00 collapse

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.

corsicanguppy@lemmy.ca on 12 Jun 04:12 collapse

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

SmartmanApps@programming.dev on 12 Jun 00:21 next collapse

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

Wooki@lemmy.world on 12 Jun 06:50 collapse

Whooosh

Gutek8134@lemmy.world on 11 Jun 14:28 collapse

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

MrOzwaldMan@lemmy.ml on 11 Jun 12:04 collapse

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 on 11 Jun 12:08 next collapse

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 on 11 Jun 13:07 collapse

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.ml on 11 Jun 13:21 collapse

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.

lemann@lemmy.dbzer0.com on 11 Jun 10:28 next collapse

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

MrOzwaldMan@lemmy.ml on 11 Jun 12:13 collapse

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

leftzero@lemmynsfw.com on 12 Jun 02:56 collapse

That’s when rubber duck debugging comes in handy.

Quicky@lemmy.world on 11 Jun 10:35 next collapse

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.

ShaunaTheDead@fedia.io on 11 Jun 10:39 next collapse

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 on 11 Jun 11:19 next collapse

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

MrOzwaldMan@lemmy.ml on 11 Jun 12:01 next collapse

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 on 11 Jun 13:52 collapse

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

morbidcactus@lemmy.ca on 11 Jun 15:12 collapse

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

Strider@lemmy.world on 11 Jun 10:39 next collapse

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 on 11 Jun 10:47 next collapse

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 on 11 Jun 10:52 next collapse

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.

4am@lemm.ee on 11 Jun 12:09 next collapse

ChatGPT rightly assumed you wouldn’t use a reserved word in your schema

Redacted@lemmy.world on 11 Jun 12:16 collapse

Perhaps, but we don’t know and therein lies the problem.

atzanteol@sh.itjust.works on 11 Jun 12:22 collapse

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.

Redacted@lemmy.world on 11 Jun 13:08 collapse

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

Strider@lemmy.world on 11 Jun 13:12 next collapse

Of course. I would not recommend using it.

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

atzanteol@sh.itjust.works on 11 Jun 14:55 collapse

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.

Redacted@lemmy.world on 11 Jun 14:58 collapse

It’s partially right but led OP down the wrong lines of thinking because it interpreted the prompt as a date field being missing rather than the field named date being missing.

Tbh I don’t blame it too much here as there is kind of a base level of understanding requred to use it successfully.

atzanteol@sh.itjust.works on 11 Jun 14:59 collapse

No. In what way is “If you have a column named foo add it to your query” wrong?

MrOzwaldMan@lemmy.ml on 11 Jun 12:14 collapse

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.

Strider@lemmy.world on 11 Jun 13:11 collapse

I also posed the question why I don’t get a date in the output of course.

MrOzwaldMan@lemmy.ml on 11 Jun 13:17 collapse

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.

tobogganablaze@lemmus.org on 11 Jun 10:53 next collapse

You tried “everything” for over 2 hours but never tried the “*” selector?

badcommandorfilename@lemmy.world on 11 Jun 11:24 collapse

User: I’ve tried everything

Support: Have you tried <first step in documentation>?

hperrin@lemmy.world on 11 Jun 11:06 next collapse

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.

MrOzwaldMan@lemmy.ml on 11 Jun 12:10 collapse

Thanks for sharing that, I’ve learned my lesson from you and the others in the comments

RagnarokOnline@programming.dev on 11 Jun 11:16 next collapse

Sucks bro. You’re in good company tho

itsathursday@lemmy.world on 11 Jun 11:53 next collapse

Every bug is an opportunity to learn. Learn about the language, the code base or about yourself. Today you learned about yourself.

MrOzwaldMan@lemmy.ml on 11 Jun 12:09 collapse

Agreed. Sorry for my post, it was written in frustration of the situation

itsathursday@lemmy.world on 11 Jun 13:25 collapse

I thought I was in programming_humor ngl. We’ve all been there friend

BrianTheeBiscuiteer@lemmy.world on 11 Jun 11:57 next collapse

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

xilliah@beehaw.org on 11 Jun 12:16 next collapse

I’m a coder and I like my job. It just has to fit with you. You have to be zen and like fiddling around with stuff. How did you even learn to write all of that if you hate it so much?

There’s a book called what color is your parachute you might like.

atzanteol@sh.itjust.works on 11 Jun 12:20 next collapse

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 on 11 Jun 12:27 next collapse

Thanks will keep in mind next time it happens

corsicanguppy@lemmy.ca on 11 Jun 23:58 next collapse

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.

0ops@lemm.ee on 12 Jun 04:09 collapse

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.

rostselmasch@lemmygrad.ml on 11 Jun 12:41 next collapse

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.ml on 11 Jun 13:14 collapse

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.

slazer2au@lemmy.world on 11 Jun 13:34 next collapse

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 on 11 Jun 13:35 next collapse

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

slazer2au@lemmy.world on 11 Jun 13:43 collapse

You can dress it up however you like.

Holiday duck
<img alt="" src="https://lebocal.academy/assets/images/blog/rubber%20duck%202.jpeg">

Professor Duck
<img alt="" src="https://miro.medium.com/max/1400/1*ksgGzaENFZJrmGRfwxJyyA.jpeg">

Tech support duck
<img alt="" src="https://cdn.willstocks.com/wp-content/uploads/2017/04/28102535/rubber-duck-development-debugging-problem-solving.jpg">

barsquid@lemmy.world on 11 Jun 16:44 collapse

Tech support duck looks like he’s checking out some delicious bread crumb photography on that palmtop.

pantyhosewimp@lemmynsfw.com on 11 Jun 16:26 next collapse

Long before the duck gained popularity – and I still can’t talk to a toy – I walk around and explain things to a phantom off in the corner of my mind, and I use bold hand gestures.

Solemarc@lemmy.world on 11 Jun 18:17 collapse

Bruh, I do this all the time! Can’t solve a problem? Get up and walk around the house while I explain the issue to imaginary people!

elias_griffin@lemmy.world on 11 Jun 20:35 collapse

So this is the second mention of a rubber duck. I’m trying to fiercely convince myself that talking to a toy on your desk was absolutely not a real thing for adults and that this is some satire I’m missing.

If it’s true, that’s beyond shameful for an adult. I would quit if I were next to that person’s office/cubicle so that they didn’t infect me.

In fact, if this was a real thing, don’t even tell me. I don’t want to live with that kinda shame for my species.

slazer2au@lemmy.world on 11 Jun 20:58 collapse

I feel as though you are missing a key part. Some people are verbal debuggers, we speak what we wrote to understand it better. Now in an office environment what is more acceptable, talking to yourself or talking to a toy on the desk?

en.m.wikipedia.org/wiki/Rubber_duck_debugging

I have done this where you read the problem in your internal monologue but nothing new sparks, yet when you speak what is going on it activates different parts of your brain for the debugging process.

Potatos_are_not_friends@lemmy.world on 11 Jun 14:54 next collapse

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.

MrOzwaldMan@lemmy.ml on 11 Jun 15:05 next collapse

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.

vrek@programming.dev on 11 Jun 15:52 next collapse

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 on 12 Jun 02:52 collapse

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

Now, that’s just evil. 😨

leftzero@lemmynsfw.com on 12 Jun 02:47 collapse

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…

zero_spelled_with_an_ecks@programming.dev on 11 Jun 16:11 next collapse

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

barsquid@lemmy.world on 11 Jun 16:42 collapse

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.

corsicanguppy@lemmy.ca on 11 Jun 23:59 collapse

When you walk, the risk is you’re still confirming and not asking those questions. The duck is awesome.

SatouKazuma@programming.dev on 11 Jun 20:05 next collapse

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 on 11 Jun 20:42 collapse

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

SatouKazuma@programming.dev on 11 Jun 21:11 collapse

Sure, but they use ersatz methods that are so incredibly obscure and removed from the standard library that expecting one to know them is beyond foolhardy.

treadful@lemmy.zip on 11 Jun 21:19 collapse

No clue what that means. I was thinking more along the lines of how there’s 3+ techniques for async functions. Or that there’s a handful of syntax implementations, versions, and supersets of the language. Or that there are many interpreters all with different standard libraries and quirks.

It’s an annoyingly flexible language.

SatouKazuma@programming.dev on 11 Jun 22:55 collapse

It just feels like anarchy to me. Why is anything the way it is in JS? Maybe I’m learning it wrong, but starting from zero, I now feel like I understand less than nothing.

Tum@lemmy.world on 12 Jun 09:08 collapse

Mostly its this way because the language has evolved over time and relies heavily on several similar but competing interpretations of how things should be done. Similar thing happened to PHP, back in the web1 days.

SatouKazuma@programming.dev on 12 Jun 12:34 collapse

That makes sense. Every time I try to learn it, or am asked to do something in it only to reply “I can’t”, I feel so fucking stupid. How am I supposed to move up to senior SWE if I can’t do JS?

FizzyOrange@programming.dev on 11 Jun 20:09 next collapse

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 on 11 Jun 21:41 next collapse

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

QuazarOmega@lemy.lol on 11 Jun 23:13 collapse

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

DinosaurSr@lemmy.world on 12 Jun 00:55 collapse

How would static typing help here?

leftzero@lemmynsfw.com on 12 Jun 03:20 collapse

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.

RandomVideos@programming.dev on 11 Jun 21:15 next collapse

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

corsicanguppy@lemmy.ca on 11 Jun 23:54 collapse

I suspect there’s a long tragedy about this, the likes that would give The Odyssey pause.

jadedwench@lemmy.world on 11 Jun 22:08 next collapse

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.

corsicanguppy@lemmy.ca on 11 Jun 23:15 collapse

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 on 12 Jun 00:37 next collapse

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.

jadedwench@lemmy.world on 12 Jun 02:23 collapse

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.

jadedwench@lemmy.world on 12 Jun 02:29 collapse

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

lolcatnip@reddthat.com on 11 Jun 22:30 next collapse

Programming: not even once!

driving_crooner@lemmy.eco.br on 12 Jun 04:02 next collapse

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

chatgpt.com/…/80918db9-5284-4a9b-b971-dde78b00497…

spartanatreyu@programming.dev on 12 Jun 05:42 next collapse

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.

MrOzwaldMan@lemmy.ml on 12 Jun 15:59 next collapse

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

tastysnacks@programming.dev on 13 Jun 05:13 collapse

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.

ulkesh@beehaw.org on 12 Jun 04:38 collapse

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

tastysnacks@programming.dev on 13 Jun 05:08 collapse

The trick is to get project managers to automatically pad you time.

ulkesh@beehaw.org on 13 Jun 13:28 collapse

Yeah in my 25 years of experience, none of them have ever done that.