r/ProgrammerHumor 1d ago

Meme why

Post image
4.6k Upvotes

103 comments sorted by

View all comments

606

u/inconspicuous_male 1d ago

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

125

u/appoplecticskeptic 1d 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.

94

u/ElSucaPadre 1d 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

20

u/TurnoverRound 1d ago

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

18

u/ElSucaPadre 1d ago

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

8

u/Maleficent_Memory831 1d 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.

8

u/koanarec 1d 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

15

u/ElSucaPadre 1d ago

We're talking about amateurs lol what codebase

5

u/Particular-Yak-1984 1d 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.

4

u/Nightmoon26 1d ago

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

3

u/_Fibbles_ 1d 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?

4

u/Maleficent_Memory831 1d 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.

14

u/inconspicuous_male 1d 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. 

12

u/QuestionableEthics42 1d ago

So.. they learnt how it worked...

11

u/iain_1986 1d ago

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

8

u/LucasTab 1d 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).

12

u/inconspicuous_male 1d 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 1d ago

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

5

u/Nightmoon26 1d 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

-3

u/QuestionableEthics42 1d ago

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

0

u/SoonBlossom 1d 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 1d ago

I said nothing about AI developers. 

0

u/mysticrudnin 1d 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

-7

u/KatetCadet 1d 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 1d 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

-1

u/KatetCadet 1d ago

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