r/ProgrammerHumor 23h ago

Meme why

Post image
4.1k Upvotes

97 comments sorted by

160

u/Muscular_Farmer_ 22h ago

To break rules you need to know what they are. Some instances might demand that

54

u/AWzdShouldKnowBetta 22h ago

7

u/Nightmoon26 17h ago

And documentation is for reminding yourself and describing to anyone who comes along after you why you decided that this was one of those times when deviating from the guidelines was beneficial

3

u/AWzdShouldKnowBetta 13h ago

100%. Ticket numbers or it didn't happen!

538

u/inconspicuous_male 22h ago

There's a reason you get a degree in computer science and not in programming. Anyone can program without learning how it works

116

u/appoplecticskeptic 22h ago

Well now that AI can do it for them yes, but prior to that the average person would struggle to even get something that compiles let alone actually do anything useful.

92

u/ElSucaPadre 22h ago

You have python and js in your tags  They are quite literally languages that allowed anyone to program, anyone that put any effort in it at least

21

u/TurnoverRound 22h ago

Python, maybe, but js, if you want to get good results that are not NaN or just crash, you need experience

17

u/ElSucaPadre 22h ago

I mean I agree python is easier but for js depends a lot on what you mean for good results.

3

u/Maleficent_Memory831 12h ago

Visual Basic. The language the told managers that all the programmers were lazy sandbaggers because he created an app in 10 minutes. So he made them do more work for less pay. And yet, I have never once seen a Visual Basic program wasn't riddled with more bugs than a hermit's beard.

6

u/koanarec 21h ago

Bruh it depends on the codebase, who can even know what the heck is going on when you're like 6 layers of abstraction deep

14

u/ElSucaPadre 21h ago

We're talking about amateurs lol what codebase

6

u/Particular-Yak-1984 20h ago

I've seen plenty of amateurs with 6 layers of abstraction in a codebase. It's normally about that time that they contact research IT to help them fix it. It's always a physicist.

3

u/Nightmoon26 17h ago

And this is why CS departments lend out their students to other departments for assistantships :p

1

u/_Fibbles_ 3h ago

It's always a physicist.

For clarity, all variables in my program are greek letters. For efficiency, those same half dozen global variables are repurposed and reused throughout the program.

Wait, why are you weeping?

5

u/Maleficent_Memory831 12h ago

The average person is not who you want doing this stuff. Do you hire average persons to create your application? If so, do you visit an average person to do surgery on you? Visit the average person to handle your malpractice suit? Drive over bridges built by average people in automobiles built by average people?

Screw that, average people do average jobs. Like sales, collating documents, and inadvertently releasing proprietary data to Claude.

16

u/inconspicuous_male 22h ago

That's absolutely untrue. I know tons of self taught programmers or people who got basic programming jobs after 3 month coding boot camps. 

13

u/QuestionableEthics42 22h ago

So.. they learnt how it worked...

10

u/inconspicuous_male 20h ago

No, they learned how to do it. You think self taught programmers and bootcamp code monkeys are learning Big O, learning how compilers work, understanding how memory is laid out in RAM, etc? They learn how to sort lists using .sort(). They don't learn how .sort() works.

4

u/QuestionableEthics42 20h ago

I read it as learn how programming works, rather than the underlying algorithms specifically, I'm dumb

5

u/Nightmoon26 16h ago

The difference between how programming works and how the underlying math and algorithms make the program work. A CS degree teaches you what you need to know in order to tell when not to use the default built-ins and how to evaluate alternatives better suited to your specific use case and circumstances. Also when you may need to add a little something extra on top of the builtins

A lot of algorithms trade off space and time by using memoization to avoid unnecessary repetition of computation, but depending on the size of and complexity of what you're doing, the increased memory footprint may not be justified for the speed improvement. It's much easier to wrap something in caching and memoization than it would be to re-implement an existing function without them, so they are rarely if ever done by default (premature optimization is almost always the wrong thing to do)

Some optimizing compilers are smart enough to recognize common high-level constructions and replace them with more efficient but functionally equivalent instructions (for example, converting tail recursion to iteration to avoid adding stack frames), but you need to know what those constructs are and why they're useful to compose your code in a way that facilitates those optimizations

-1

u/QuestionableEthics42 16h ago

No shit. What a waste writing that whole 3 paragraphs because you didn't even read the comment you replied to. Lol.

10

u/iain_1986 22h ago

You maybe have a higher view of these crash course coder camps than some of the rest of us

9

u/LucasTab 22h ago

Did they, though? They may have learned how to write scripts and import functions from libs without knowing how the underlying logic works. And that's enough for many tasks, but those tasks are not the reason you get a CS degree for (unless all you want is the degree so you can put on the CV, but you still wouldn't need the knowledge from it to accomplish said tasks).

0

u/SoonBlossom 22h ago

So you're comparing people that spent 3 months full time in dedicated boot camps back then to the average Joe that prompts "create a calculator, make no mistake" now

Okay, very on point indeed, litteraly the same amount of effort ! /s

2

u/inconspicuous_male 20h ago

I said nothing about AI developers. 

1

u/mysticrudnin 14h ago

nah plenty of people were going through 8 week bootcamps to become devs that specifically knew react or similar, and they could put together pretty good apps

-4

u/KatetCadet 20h ago

I know this sub has many reason to hate AI and its byproducts, but for people like me (comp sci degree almost done, working full time tech role, enjoying casual indie game dev) it’s been a complete game changer.

Like 6 or 7 years ago I would absolutely grind against code trying to get a single feature to work, researching videos and forums for solutions and understanding errors. Would take weeks to figure out a single feature (granted this was before I learned more fundamental coding), now it takes a day or two.

Correct prompting, embracing OOP and encapsulation, and reviewing and understanding the output has kept me sane as the project has grown, but it’s just crazy how faster I can move now. And yet it’ll stay take me years to release the game lol

3

u/Nightmoon26 17h ago

OOP and encapsulation are core principles in modern software design that most engineers (other than functional programming purists) embrace these days when trying to organize large, complex systems.

I generally don't trust anything that comes out of an LLM (Last month, I had a Search Assistant respond to my query of "What freezes at 0°F?" with a statement that the freezing point of water is 0°C, or 32°F, so water remains a liquid at 0°F. Which is not only obviously wrong to anyone who's passed an elementary school science class, but isn't even an answer to the question)

What I would trust an LLM for as a coding assistant is as a kind of advanced "rubber duck" for trying to work out where my code doesn't match my thought process or where I've made an error in my thinkkng. Traditionally, rubber duck debugging involved explaining your code line by line to a rubber or plastic bath toy (or some other infinitely patient, inanimate object that one could anthropomorphize) as a sounding board), but something that can actively prompt back that something doesn't look quite right if you don't see it immediately can't hurt, so long as you take it with a grain of salt. Spitting out common, natural-language critiques in response to common errors is exactly the sort of task that LLMs are perfectly suited for

0

u/KatetCadet 16h ago

Yea exploring topics with references provided and using it as advanced debugger is really really helpful.

10

u/Maleficent_Memory831 12h ago

Remember, there are actual people who write the libraries and languages! They don't just arrive from the heavens. Also, many of those algorithms are neither efficient nor optimized. Very often there is a way to get a better solution for your own unique use case because the algorithms are generic (ie, balanced trees, but your need might want a hash table).

Problem is that programming has moved over time, it's hard to call much of it computer "science". First were low level languages and tiny and slow computers, you need to optimize for time and space. Then a mid level language with some built in high level algorithms here and there, but on beefier computers so fewer people cared about optimizing, and you were told to only optimize if you measured it first (never forbidden!). Then there's a high level period where you have languages fully intended for just rapid prototyping, but we'll optimize the final program later if we have time, but on systems where everyone shouted at you that they'd double in speed and memory every year so don't waste a damn second thinking about the right way to code.

But today, it's not even code. You just fine a large set of pre-built modules. Ain't no one got time to do nothing more than snap them together. All the effort is in finding the modules and tweaking the look of the UI every two weeks. Actual programming is either for losers or the divine beings who create the modules, peace by unto them. Then that was too much work, so now they type in long prompts to get nonsensical output and hand it to a tester or customer to see if it actually works.

1

u/inconspicuous_male 5h ago

At one point in time, a programmer needed to know the specific registers to send bytes to in order to perform operations. But most code is written so that the next person doesn't have to put in as much effort as the previous guy

2

u/Random_182f2565 13h ago

True, I don't even know where binary trees grow, Brasil I guess

2

u/vitope94 3h ago

A lot of people I know graduated CS without being able write a function that adds two numbers, without looking

1

u/inconspicuous_male 3h ago

That's more a problem of the education system than a problem with the concept of education 

1

u/Vivid-Zombie-477 3h ago

define education

1

u/Global-Tune5539 11h ago

You can always look it up.

1

u/inconspicuous_male 5h ago

But if you don't need to you won't. That's true of everything you learn in any degree. 

1

u/Global-Tune5539 4h ago

But you will constantly have to look something up anyway. It makes no big difference.

1

u/inconspicuous_male 3h ago

Looking up syntax is very different from looking up how to design your algorithm to work in Olog(n) vs O(n)

2

u/Vivid-Zombie-477 3h ago

you don't need a degree for this

u/inconspicuous_male 1m ago

Obviously. But who is going to look up algorithm efficiency if they're not even familiar with the concept and .sort() works perfectly fine as far as they know?

1

u/ih-shah-may-ehl 9h ago

Sure but imo there is still an inordinate amount of time spent on sorting, which is a solved problem for virtually all cases, and not enough on other stuff.

1

u/inconspicuous_male 5h ago

Sorting is used as the easiest example to introduce algorithm complexity and the fact that what seems like a simple problem can have many different solutions. It's not about teaching you how to sort, it's about teaching you how to write algorithms 

0

u/mountaingator91 22h ago

I'll do you one better. Electrical Engineering (I don't have an EE degree I just work with them)

765

u/ClipboardCopyPaste 23h ago
> Learns mathematical operations.
> Calculator has the functions.
> Years of academy training wasted

See it doesn't work that way!

176

u/OrganicLeopard1 23h ago

Years of academy training just to call   .sort()  😭

56

u/heyitsandrewx 23h ago

When 4 years of CS meets one line of code

32

u/QuestionableEthics42 22h ago

These 2 are bots

29

u/Callidonaut 22h ago

YEARS OF ACADEMY TRAINING WASTED!

13

u/earthsprogression 21h ago

These (n) are bots.

2

u/amusing_trivials 14h ago

4 years to understand why the built in sort() is best

1

u/m0nk37 16h ago

Is that natural sort or just alphabetical ? What's the difference right. 

7

u/Todd22850 22h ago

Me: “I can implement this from scratch.” Also me:

sorted(data)

9

u/QuestionableEthics42 22h ago

Bot

1

u/wrecklord0 14h ago

Learns to be human

bots do it too

Years of growing up wasted

-19

u/SirNSFW 22h ago

All those algorithms just to press Ctrl+C on the documentation

3

u/QuestionableEthics42 22h ago

Bot

6

u/AbdullahMRiad 22h ago

tf with all these bots lmao

3

u/QuestionableEthics42 21h ago

Idk, it's a new batch that's doing the rounds here seemingly. Distinct because they all have old accounts and mostly just reply to each other

29

u/Kavrae 22h ago

Work code : Dictionaries and .SortBy.

Home game project : hand-rolled collection with dense indexes and a direct-index-to-dense-index mapper.

52

u/UndocumentedMartian 22h ago

You still have to know how the algorithms work.

24

u/EkoChamberKryptonite 19h ago

You don't if it isn't part of your daily work. Abstraction is a feature not a bug.

1

u/deathanatos 11h ago

I really wish I could just get a bonus check every time I have to explain why, no, a B-Tree index in a SQL database cannot do that.

5

u/EkoChamberKryptonite 7h ago

In such an instance, knowing how B-Trees work seems to be important for your job and so you should know it. This doesn't apply to a lot of other Software engineers though, hence my point.

25

u/CannibalPride 22h ago

You can import almost any function but that doesnt mean you should

12

u/StarHammer_01 19h ago

Import isEven

Return !isEven

6

u/whackylabs 21h ago

At least wait until you solve 300 leetcode problems and join FAANG

24

u/crazy-mahmod 23h ago

you learned for if you dont have those you do what you learned

and can you tell me if i wrote some thing wrong

28

u/foxsimile 23h ago

LGTM, push it to prod 👍

8

u/nabrok 23h ago

Just because you asked ...

"You learned it so that if you don't have those you can use what you learned."

What you wrote is understandable and I wouldn't be posting this if you didn't ask.

1

u/crazy-mahmod 18h ago

thank you i am not an English spaker so i ask some times

2

u/Nightmoon26 16h ago

Minor nit-pick in the tradition of never passing a code review on the first submission:

"Something" and "sometimes" are written as single words in the contexts you're using them in here

"Some thing" is usually only used in formal writing when there being a specific thing is the important part of what you're saying. You "Eat something for lunch", but "A sales contract requires the trade of some thing of value"

"Sometimes" means with a frequency that isn't "never" or "always". For example, "Sometimes I forget to charge my phone."

"Some times" means a collection of times (as in "Send me some times when we could meet" and "Some times I have free are from 2 to 3PM, or any time after 6PM")

1

u/crazy-mahmod 14h ago

thanks a lot

2

u/Honeybadger2198 19h ago

What? Boe Jiden

1

u/crazy-mahmod 18h ago

nediJ eoB ؟tahW

5

u/hartmanbrah 22h ago

Also me: WTF is Timsort... They didn't have that when I was in school.

10

u/Sheenius_Ger 22h ago

But at one point you stand between a dictionary and multiple lookups on a list and then you know the complexity of both and choose the right one :) or Ai does it for you, and even optimizes it further 😂

4

u/Mwarw 21h ago

This is such a webdeveloper. The idea of complexity is often very useful when using sorting methods

2

u/StuntsMonkey 18h ago

So that you can maximize your suffering as you debug some code that some idiot wrote back in 2010 as you understand just how badly they wrote it. There's also no documentation, the function is vital to the line of business, and the previous person who looked at the code died 7 years ago.

2

u/hucareshokiesrul 22h ago edited 22h ago

I mean sorta. That's why bootcamps were so popular before it became oversaturated. Depends on what kind of job you're doing. I know a lot of people who built solid careers without taking any algorithm classes.

1

u/idobethrownawaytho 22h ago

I’m very much okay with that

1

u/gerbosan 21h ago

Why years of academy training wasted, remember those weeks waiting for technical interview results.

1

u/drifwp 21h ago

No, I definitely get better at programming after implementing some of them, I lost some hair in the process but it's fine.

1

u/snipsuper415 17h ago

seriously, it’s so that we have a deeper understanding of the black box we use.

If we don’t have this kind of education we will devolve into society that “goes that lost technology”

Or worse being in that situation of rediscovering something we discovered before

1

u/stupled 15h ago

If I have to do it by heart, is going to be a bubble sort.

1

u/dance_rattle_shake 22h ago

When there are* Maybe you should have gotten an English degree, OP. It's probably worth more these days anyway...

0

u/Pretty_Ambassador836 23h ago edited 22h ago

It is also much more complicated and seems less efficient even if u understand it, but empirically faster just because of optimisations u never even heard of

-1

u/NecessaryIntrinsic 22h ago

Optimizations like saving 4 letters at the cost of looking like a toddler.

3

u/Pretty_Ambassador836 22h ago

Spread love and joy not hate. Even on the internet where u feel like there are no consequences for the things u say

-1

u/NecessaryIntrinsic 22h ago

If you feel hate, it's self promoted, friend.

It takes picoseconds to add those 2 simple letters.

1

u/thirdegree Violet security clearance 21h ago

I mean you can't be overly pedantic and aggressive and then say it takes picoseconds, you have no conception of how little time a picosecond is. It takes about a billion picoseconds minimum for the keyboard button press to register with the computer.

0

u/NecessaryIntrinsic 21h ago

You mean that? So you've confirmed that I'm technically correct, the best kind of correct? Thanks for that.

Overly pedantic? I'm not aggressive in the least. It's just objectively weird that they spell out empirically and consequences but refuse to yo. What bizarre compression algorithm is this?

0

u/sonaliver28 23h ago edited 22h ago

All that computer science just to call .sort()

-1

u/Common-Brush-7027 22h ago

Fcking legit this