He revealed the secrets !

ElCanut@jlai.lu to Technology@beehaw.org – 411 points –
53

Framing libraries as cheat sheets is hilarious

It's kinda fun to think of programming as magic.
And "libraries" as grimoires/tomes .

It's surprising how far you can go with the analogy.

My best comment ever in Reddit was describing Lord of the Rings as programming.

Some time ago:

  • Me: "Programming is fun, but user interfaces are a PITA"
  • CS student: "What!? The algorithms I'm given to solve are really complicated!"
  • After a year on a job: "I hate testing user interfaces..."

Some other day:

  • Me: "Programming is mostly copy&paste"
  • Engineering student: "What!? We have to come up with a new solution for every problem!"
  • After a year on a job: "I don't program anymore, just copy&paste..."

Told ya.

Programming is mostly copy&paste

I don't know what y'all are working on but these comments always scare me ...

No matter what you work on, programming is one of:

  • Check the documentation for a library, copy&paste the interface call, fill in the blanks.
  • Pick the best algorithm for the case at hand, copy&paste, change a few variable names.
  • Get out your snippets archive, copy&paste the one you need.
  • Write some boilerplate, copy&paste over and over, then fill in the blanks.
  • Look up how someone else solved your problem, replicate it in a way that doesn't look like copy&paste.
  • Once in a blue moon, come up against an actually novel problem, spend some days figuring out the best way to solve it... then copy&paste the solution back into the project.

Doesn't matter what you're working on, in the end it's mostly copy&paste ๐Ÿ˜‚

I work on compilers (we can't/don't even have access to the C++ standard library in my case)... Most of the time, Google can't help me โšฐ๏ธ๐Ÿ˜…

It was definitely a bit more copy and paste when I was working on web applications... But even then, most of the code I was writing was fairly novel / more application and database architecture problems than trying tying libraries together.

What are databases, other than glorified MS Access (ยน)? ๐Ÿ˜œ

But seriously, if you're working on compilers, then your "target users" are way different than the average thing: you have actual problems to solve, and can stick to the CLI.

Most copy&paste begins the closer to a GUI you get. Modern web interfaces, have also become a string of libraries and frameworks.

(ยน: once upon a time... I tried to explain to a client, why there was no way on Earth to make their in-house MS Access solution compatible with personal data protection requirements for medical data, like 100% access control and logging. I failed... then some years later saw a story about the same problem on Coding Horror; still wonder if it was the same guy who got some other poor soul to try and go through with it, or if it was a more widespread problem at the time when personal data protection laws got enacted)

"She". The gag of SwiftOnSecurity is it's Taylor Swift, posting infosec. Tho these days she mostly trolls like this.

Is it actually Taylor Swift?

Of course, do you think people just go on the internet and tell lies?

That's why I asked. Wasn't sure if it was a joke about the name, or if it's someone pretending to be Taylor Swift, or the real deal (which I never heard of because I don't follow Taylor Swift - or because it's not real.)

Me: Spends 4 hours making a pause menu... "I wish this was true... This man has not met the hell of a 50 state, 100 elif statement..."

Amateur Coders code: " We don't do this because its easy, we do this because we thought it would be easy"

It's like if farmers were just letting plants do all the work, instead of manually assembling the potatoes themselves

1 more...

It's like the joke about the invoice charging 0.10$ for a screw and 100$ for knowing which screw to replace.

Coding is easy. Software engineering not so much.

The biggest scam about programmers is they barely program

He's got a point, though, the further you go, the less time you spend inputting code. Although some people prefer to continue going head first and then remaking everything.

That is a lot of fun to do, most times. Also I need to provide for my family and the guys who pay my salary want their stupid features implemented like yesterday.

I half agree about fun, think it depends on how often clients want some weird shit done yesterday, it becomes a nightmare if it happens too often :(

like with many jobs you're learning to only do the work that matters, and oftentimes when you can avoid doing work that actually improves the product.

There's a reason why construction workers aren't making their own planks and nails, that would be horribly time consuming, inefficient, and they'd probably make shitty planks.

Not trying to become an expert in everything was the most important decision I made so far, I think

Over the past month I feel like all I've been doing is writing tech design documents for systems I don't actually know anything about because I haven't had the opportunity to go in and do anything with them.

Fortunately I've finally managed to reach the point where everyone agrees that we should just start implementing the basics and see how that goes rather than try to plan it all out ahead of time since we're surely going to have to throw out the later plans once we see what we're actually dealing with.

The job of a programmer is to reintroduce a bug that was fixed in the last patch.

Merge needs some stomp, yeah, mine stomp yours.

edit: note, this is a good thing, cause then we both have unlimited supply of tickets.

Why don't they program using spreadsheets? Are they stupid?

Spoken like a true normie ๐Ÿ‘

Anti Commercial-AI license

Can ya please go back to the Drop-Down thingy for your license? It's already annoying on its own, but it gets even more so when Voyager adds the Link-Preview

Dropdown doesn't work for at least 2 clients. This is the best I can do.

If it really does bother you, block me ๐Ÿคท

Anti Commercial-AI license

You know what's funny, the two clients that don't support your dropdown/spoiler for anti-commercial licences were commercial closed-source Lemmy clients.

I say sod them and go back to your dropdown.

why would someone go out of their way to use closed source lemmy clients?

please don't, it literally fills half the screen for me

Hey, how do you get the creative Commons attribution to automatically appear under your comments?

Unfortuately, it's manual :) Keyboard shortcut to put the text into the clipboard and then paste it into the comment.

::: spoiler If you're on linux using X11

#!/usr/bin/env nix-shell
#!nix-shell -i bash --packages xautomation xclip

sleep 0.2
printf '[Anti Commercial-AI license](https://creativecommons.org/licenses/by-nc-sa/4.0/)' | xclip -selection clipboard
#(echo '::: spoiler Anti Commercial AI thingy
#[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
#
#Inserted with a keystroke running this script on linux with X11
#```bash'
#cat "$0"
#echo '```
#:::') | xclip -selection clipboard
xte "keydown Control_L" "key V" "keyup Control_L"

:::

Anti Commercial-AI license

Obviously your way works fine, but I think a browser extension could make it 100% automatic.

Sometimes it feels like most of my job nowadays is deleting code now.

To me, there is no greater high than seeing big negative numbers on a commit. Deleting stuff is the most satisfying experience in programming. A commit with +10, -142 is mint.

Be careful with that one. I'm not sure about your experience level, but a mistake newer (and some more experienced) programmers often make is taking DRY too far.

It's easy to "dry" something up to the point where it's spaghetti that's overly clever about how it reduces lines of code resulting in some crazy inheritance hierarchy even you (the author) are afraid to change a few years down the road.

There are of course other times when someone just copy and pasted e.g. sort logic all over the code base ... but that sort of thing is relatively rare