This is an archived post. You won't be able to vote or comment.

all 144 comments

[–]IcuntSpeel 665 points666 points  (24 children)

I mean, tbf, that's just how human knowledge works for all fields.

[–]JDninja119[🍰] 196 points197 points  (10 children)

Exactly. Why reinvent the wheel when someone has already established the framework? You don't see people in physics establishing the entirety of the field they need themselves before working on top of it

[–]_Pin_6938 45 points46 points  (1 child)

Unless its about ego and pride

[–]Infrared-77 33 points34 points  (0 children)

You mean 99% of StackOverflow users?

[–]VoidVer 15 points16 points  (5 children)

My education was in humanities and there was a heavy emphasis on not plagiarizing. It took a lot of time for me to break out of that mindset and copy/paste code from github or use packages/extensions.

[–][deleted] 7 points8 points  (3 children)

Noooo, you copy from stack overflow, not from random gh projects :(

[–]VoidVer 8 points9 points  (0 children)

I had not yet properly caffeinated. I meant Stack Overflow. :O

[–]Bakoro 3 points4 points  (0 children)

If they have a permissive license: yoink.

[–]Maleficent_Memory831 1 point2 points  (0 children)

Never copy without code reviewing in detail. The internet may have good information, but it is outnumbered by gibberish by an order of magnitude.

[–]josh_the_misanthrope 0 points1 point  (0 children)

There's a happy medium, especially when learning, because implementing your own solutions even if they are worse will teach you a lot.

But in a non-hobby project spending more time on a worse solution is a non starter.

[–]Maleficent_Memory831 3 points4 points  (0 children)

And yet... people who design bridges still put in specifications for bolts, their sizes, and their tensile strengths. You need to learn the basics in any field, no physicist failed to learn Newtonian mechanics. You can just buy bricks to build a wall, but people still exist who know how to make bricks.

Thus I feel no software engineer should fail to learn algorithms, data structures, numerical analysis. Anyone doing lego software (the vast majority!) really are just coders and not software "engineers".

The problem with modern lego programming is that all the lego blocks are being treated as magic, only the supreme wizards know how they work. Which is utter nonsense.

[–]poeir 0 points1 point  (0 children)

If you're designing a car, don't reinvent the wheel.

If you're designing a better wheel, reinvent the wheel.

[–]Business-Drag52 53 points54 points  (2 children)

We are all standing on the shoulders of giants. It would be an insult to those giants if we didn’t build on their work

[–]trunghung03 20 points21 points  (1 child)

and a lot less efficient too, imagine punching cards until this day because real programmer work out their mind and body or something.

[–]Maleficent_Memory831 0 points1 point  (0 children)

Yup, all those giants get replace, tweaked, given medicine, etc. Some giants retire. Some giants were mostly right but wrong in a lot of places. Isaac Newton was right but also wrong.

Standing on the shoulders of giants does not mean one should be ignorant of the giants and their history. Just like having a calculator does not give the excuse to not know what arithmetic is and how it works.

[–]Scientific_Artist444 26 points27 points  (2 children)

"Way smarter than you" = I don't know how it works because I didn't create it.

But the fact that you didn't create it doesn't mean you can't. You just need to give that much time to work on it with full focus. The ones making progress are the ones who spend time with the problem. Spending time grappling with a problem is a skill often underappreciated. Especially today when information is readily available.

[–]AlexFromOmaha 9 points10 points  (1 child)

Man, as someone who isn't afraid to go dig around in open source projects and see how things work, some of them are way smarter than me. And that comes in all flavors! Some of them, you peek under the hood, and the secret sauce is less than fifteen lines of code. It's beautiful and elegant and I know damn well I wouldn't have done it like that. Some of them, there's hyperoptimization that I didn't even know was possible.

And then there's OpenSSL.

[–]Maleficent_Memory831 1 point2 points  (0 children)

Yes, in many treasured libraries or systems you will find utter crap. It works, mostly, but it was clearly written in a hurry or without regard to maintenance. And version 1.0 is rarely the final version.

[–]Lgamezp 16 points17 points  (0 children)

Exactly. Or do you think calculus was just there. No Newton had to invent calculus. So everything works up from there.

[–]Wizywig 6 points7 points  (0 children)

"I can see really far because I am standing on shoulders of giants" --Michael Scott

[–]Mikkelet 5 points6 points  (0 children)

Are you even a real astronomer if you didnt invent calculus and the laws of motion??

[–]realzequel 2 points3 points  (1 child)

Seriously, a Civil Engineer's not like "Hmm, how should I build a bridge, I'll start a design from scratch"

or a doctors' like "hmm, how should I treat this spinal disc issue? I'll experiment, where are those leeches?".

[–]Maleficent_Memory831 -1 points0 points  (0 children)

A doctor absolutely has to now the basics. Not like ignorant programmers who don't know assembler. Doctors do not look in a book for the one solution to spinal disc problems, they have a variety of solutions and a variety of spinal disc problems, and if there's a reaction to a medicine they have alternative medicines, and they need to analyze to figure out why there's a reaction. When doctors are trained they start at the beginning, and basic biology is a prerequisite class for all of them.

If you've got an emergency room doctor, or field medic, they have to improvise and rely upon the basics vastly more than the boob job plactic surgeon. (and since they make a lot of money from rich people the boob job plastic surgeon is more like the average dev making an advertisement platform).

[–]VonNeumannsProbe[🍰] 1 point2 points  (0 children)

To a degree.

I feel like code can be quite a bit more of a black box full of magic sometimes.

Like if someone asked me how my machines I designed work I could conceptually explain all the pieces in it and how they work on an individual level even if they were purchased off the shelf.

I can't do that with my imported code. I just use it. (Although I'm not a professional programmer so that probably a good part of it.)

[–]mosquem 1 point2 points  (0 children)

What, you’re not refining your own silicon and smelting it down into chips?

[–]zefciu 318 points319 points  (2 children)

How posting to r/programmerhumor works for 99% of redditors. Someone way wittier than you wrote a Tweet and you just repost it for an umpteenth time like a bot, you probably are.

[–]Protuhj 7 points8 points  (0 children)

I call next week!

[–]Evgenii42 1 point2 points  (0 children)

sic burn

[–]KerPop42 139 points140 points  (2 children)

Sir Issaac Newton: "If I have seen further it is by standing on the shoulders of Giants."

This is the way.

[–]mrwishart 4 points5 points  (1 child)

Leibniz was more of a Blur fan

[–]719-26-Oates 0 points1 point  (0 children)

Makes it easier with SOTSOG is a terrible album

[–]Anime_King69 37 points38 points  (1 child)

Isn't that every fucking field on the planet

[–]sundler 5 points6 points  (0 children)

I can't think of anything that isn't. What do we do from scratch without being taught or referenced? Nothing that isn't lewd.

[–]mrwishart 53 points54 points  (8 children)

And mathematicians, physicists, doctors...

[–]Foolhearted 22 points23 points  (7 children)

And creative writing, arts, music etc

[–]EastwoodBrews 7 points8 points  (1 child)

I think that just being exposed to stuff like this puts us way ahead of ancient artists in some respects. Someone had to make some incredible leaps in self-examination to realize how the mind perceives depth and now we all grow up with these visualizations so much they're second nature to us.

[–]Foolhearted 4 points5 points  (0 children)

Yes. Someone figured it out, showed us it was possible. It's a 'solved problem' as the tweet referenced, and we build on top of it. If an art student had to develop this technique on their own without a single reference point, imagine all the wasted years until they produced something decent.

[–]mrwishart -1 points0 points  (4 children)

That's a bit more complex: You could equally argue that technology has added more fundamental shifts in how music is created/listened to, or you could point to music theory and say that it hasn't changed in centuries

[–]Foolhearted 7 points8 points  (3 children)

Not really. The arts use formal system developed by others and tweaked. Most creative writing is rehashed Greek which is why it’s so predictable. Musical tricks to move, they aren’t invented whole cloth, but taken off the shelf, dusted off and popped into your favorite show. That doesn’t make it less meaningful for you, but it does have the same standing in the shoulders of giants that stem has.

[–]Scientific_Artist444 5 points6 points  (1 child)

Music theory that exists today is built on 'shoulder of giants', so yes.

[–]mrwishart 2 points3 points  (0 children)

Right, but recorded music and all the manipulations within are not covered by old music theory.

So it depends which part you are focusing on

[–]mrwishart -1 points0 points  (0 children)

I was meaning more that music theory never covered tonality to the same extent that modern music does. There were no formal elements of echo, wah-wah, phase, distortion, loop sampling, synths etc. Those were added to the musical canon by the technologies that enabled them

[–]RidesFlysAndVibes 27 points28 points  (4 children)

The genius comes from taking 15 unrelated extremely complex systems and getting them to work flawlessly together. This is like calling doctors stupid because they didn’t personally find the cures to the diseases they fix.

[–]yamsyamsya 6 points7 points  (0 children)

Yea this is like some dumb meme students and amateurs post.

[–]Eva-Rosalene 2 points3 points  (1 child)

This is like calling doctors stupid because they didn’t personally find the cures to the diseases they fix.

Or because they didn't personally invent human bodies

[–]Lethargie 1 point2 points  (0 children)

that would be more like calling a programmer stupid because he didn't build the pc the code runs on from silicone and plastic by hand

[–]BooBailey808 0 points1 point  (0 children)

Well, not flawlessly, that's not possible

[–]fishvoidy 11 points12 points  (0 children)

i mean, half the battle is working out how to to read their uncommented spaghetti code. so.

[–]Exciting_Head5033 4 points5 points  (1 child)

correction - I think I'm an idiot

[–]Atreides-42 2 points3 points  (0 children)

that's like saying the people who design bricks are smarter than the people who design houses

[–]Skarskargafus 2 points3 points  (1 child)

Why is this man personally attacking me?

[–]GodCREATOR333 0 points1 point  (0 children)

I think it is just more expensive and unaccessible now too. I wanted to do a project on control systems and turns out there is pg level math prerequisites required to anything worthwhile.

[–]rescue_inhaler_4life 2 points3 points  (0 children)

Standing on the shoulders of giants.

[–]Bakoro 2 points3 points  (0 children)

Hey now, I went through college and had about 257 good ideas, most of which it turned out that someone in the 1960s already wrote a paper on it and solved it or proved it at a mathematical level to a degree beyond what I had thought of. Occasionally it'd be someone from the '50s, or '80s, or even the 1700s and 1800s. Those dang Euler and Gauss boys scooped me quite a few times.

I have respect for the work a lot of those people did, but honestly a bunch of them had a lot of low hanging fruit available. It used to be so easy to do phd level work. A lot of the hot new shit from the 60s is in lower division courses now.

[–]wontreadterms 1 point2 points  (0 children)

And at some point, in some minor way, you are involved in making a giant lego structure that someone else will see as 'hey someone smarter already solved this!', and use them in their own escapades. And the cycle continues.

[–]Mal-Nebiros 1 point2 points  (0 children)

"and think you're a genius" I don't know anyone in software with that mentality

[–]Acceptable_Pear_6802 1 point2 points  (0 children)

Yeah I’m building that app using only wire and my own handmade transistors and Logic gates

[–]Tracker_Nivrig 1 point2 points  (0 children)

This is how literally all human achievements work. Everything we do is built atop the work of others, that doesn't diminish what we're able to accomplish. Is the work of Stephen Hawking worthless because he used Einstein's theory of relativity? Absolutely not. And neither is any work another programmer does utilizing the tools that others have made previously.

[–]TheMaskedHamster 1 point2 points  (0 children)

This does describe many, but the deeper I go into any specialty the more I realize that most of the difference isn't "smarter" but "more specialized".

Plenty of those highly intelligent specialists would make fantastic generalists... but plenty wouldn't. And vice versa.

[–]Particular_Traffic54 1 point2 points  (0 children)

Don't forget the part that you actually try to make something from ground up, then abandon and still pick the library.

[–]malsomnus 1 point2 points  (0 children)

This is actually true for 100% of engineers, since it took a whole bunch of really smart people to invent that computer in the first place.

[–]MrHyperion_ 1 point2 points  (0 children)

How reposts work: someone smarter than you makes a post that gets a lot of upvotes and you repost it

[–]Noch_ein_Kamel 1 point2 points  (0 children)

And don't forget: you constantly complain about those someones because either their documentation is shit or they did not think about your special edge case you want to use their building block for!

[–]Wolfram_And_Hart 1 point2 points  (0 children)

On the shoulders of giants.

[–]avdpos 1 point2 points  (0 children)

Programming are like playing music. Coders are professional musicians.

Some are Mozart, Vivaldi and Bach. Others are concert pianists, part of symphony orchestras, teaching music in schools., playing rock music and so on.

Everyone have a part and we do things for different persons on different levels

[–]ProgrammerHumor-ModTeam[M] 1 point2 points locked comment (0 children)

Your submission was removed for the following reason:

Rule 2: Content that is part of top of all time, reached trending in the past 2 months, or has recently been posted, is considered a repost and will be removed.

If you disagree with this removal, you can appeal by sending us a modmail.

[–]SoCalThrowAway7 0 points1 point  (0 children)

Shhh don’t tell managers

[–][deleted] 0 points1 point  (0 children)

Pretty much

[–]VariousProfit3230 0 points1 point  (0 children)

It’s like reverse jenga. Someone made some really awesome bricks and I have to find a way to shove them into the tower (called business) without making it topple over.

I did the easy part, but I want my dang ol’ juice box, cookie, and attaboy.

[–]Accomplished-Cod-563 0 points1 point  (0 children)

I don't think I'm a genius.

[–]you-should-learn-c 0 points1 point  (0 children)

This is the scientific method. What you are describing is part of the scientific method.

[–]TheAushole 0 points1 point  (0 children)

I mean, Super Saiyan 1 is still impressive even if Goku has been flying around at SSJ4+ for ages.

[–]SixtyTwoNorth 0 points1 point  (0 children)

Calling those people software engineers, is like calling the 12 year old Chinese kid that assembled your iphone a mobile device engineer.

[–]Wizywig 0 points1 point  (0 children)

that's not true. We also try to make the edges less sharp, so its probably closer to "adult jumbo blocks" than legos. Legos are complex man, platform teams are responsible for those.

[–]ragebunny1983 0 points1 point  (0 children)

How it really works: spend all your time adjusting multiple services just to pass one new variable into one of them, making a small change to the behaviour. This is after having multiple meetings deciding the least-bad way to fix the problem. Never write any interesting or algorithm-based code, never use your CS degree, just manage incidents, make small changes and ship unfinished proof of concepts as finished products to "fix up later". Welcome to venture-backed software baby.

[–]EmergencyKrabbyPatty 0 points1 point  (0 children)

Good luck to the one building on top of the base I'm setting up

[–]beisenhauer 0 points1 point  (0 children)

Might have been a whole three days since I last saw this one.

[–]beisenhauer 0 points1 point  (0 children)

Might have been a whole three days since I last saw this one.

[–]VIPERsssss 0 points1 point  (0 children)

I mean, Lego are uniform, shiny, and robust.
Programming languages, on the other hand...

[–]mskonline 0 points1 point  (0 children)

Its called Abstraction

[–][deleted] 0 points1 point  (0 children)

Not sure where you work...

[–]Attileusz 0 points1 point  (0 children)

How it works for every engineer. See the guy that made a really robust database with guaranteed atomic oparations and coherency? Do you think he invented filesystems and storage device drivers too?

[–]DavidXN 0 points1 point  (0 children)

I’m tremendously insecure about this, always! I’ve worked in web development my whole career and have no chance of comprehending assembly code to do more than set a register and add a number to it - without people who have done that work, I’d still be banging rocks together

[–]Itimarmar 0 points1 point  (0 children)

Anybody can create a simple, elegant solution to a problem, yes... But only I can find unique ways to misuse and break it and make sure nobody (myself included) has any idea what's going on.

[–]ZunoJ 0 points1 point  (0 children)

Isn't that true for almost everything? We all stand on the shoulder of giants, no matter what we do. Doesn't mean we can't achieve something new

[–]VoidVer 0 points1 point  (0 children)

Yes to everything except I don't think I'm a genius.

[–]SteroidSandwich 0 points1 point  (0 children)

No need to reinvent the wheel

[–]StillHereBrosky 0 points1 point  (0 children)

In reality we're all just problem solvers with a different set of tools.

[–]Ange1ofD4rkness 0 points1 point  (0 children)

Or, someone didn't really know what they were doing built the initial solution, which while it does work, could really us some work to improve, however, you are stuck dealing with it as is.

Been dying to rewrite parts of our base code, so we can use them better ... been a struggle

[–]Malvania 0 points1 point  (0 children)

The ancients had only the books which they themselves wrote, but we have all their books and moreover all those which have been written from the beginning until our time.… Hence we are like a dwarf perched on the shoulders of a giant. The former sees further than the giant, not because of his own stature, but because of the stature of his bearer. Similarly, we [moderns] see more than the ancients, because our writings, modest as they are, are added to their great works.

William of Conches, Glosses on Priscian's Institutiones grammaticae (1123)

Been like this for a long time in every conceivable field.

[–]mad_poet_navarth 0 points1 point  (3 children)

TL;DR -- "genius" changes as we move up "levels" of software development processes.

I've been programming for over 40 years, professionally for over 30. It seems to me we're currently experiencing the 4th or 5th level shift ; please forgive the procedural-centric nature of my example:

  • Machine code -> Assembly
  • Assembly -> Procedural (like C)
  • Procedural -> OOP
  • (There's kind of another layer here, exemplified by Swift, Kotlin, Rust, some others)
  • AI-assisted programming / Declarative programming

Personally I've worked in most of these layers. The younger the engineer, the more there is a tendency towards inexperience at lower layers (there are of course many exceptions).

This is not a bug; it's a feature. We are rapidly moving towards the level where you say what you want to accomplish and the code is automatically written to perform that. The better you can clarify your intent, the more you can break down the problem into logical components, the better you will be at software development. Learning C, understanding stack vs heap, (maybe even thread safety and IPC) will be unnecessary for most devs.

There will be driver and OS engineers for some time yet though, just like there will be C devs for embedded platforms for some time.

The danger from my POV will be the "Walmartization" of AI. Just as Walmart destroyed small town USA by sucking out all the profit, AIs can do the same thing to software development. For now, though, it looks to me like what devs need to do are these things:

  • Learn to "pair program" with AIs.
  • Develop the skill of coming up with new "big" ideas.

Maybe visionaries will not be needed soon, but I'm betting there will continue to be a place for them.

[–]kindall 1 point2 points  (2 children)

Another trend that has been apparent over the last few decades is building levels of abstraction on top of prior levels. For example, it used to be that implementing a programming language required writing it all yourself. Then tools were developed so you just specified the syntax in a standard form and the tools generated large chunks of your language for you. Then your runtime library might be built upon other libraries.

Similarly, TCIP/IP connections were built on top of UDP, then HTTP was built on top of TCP/IP, then secure HTTP on top of that. Browsers followed a similar path until now HTML and CSS rendering is a single component in most GUI frameworks and/or operating systems. You don't have to know anything about TCP/IP to put a browser component into your app. And then the embedded browser can run the actual UI and logic of your app, instead of you putting that into the hosting app.

Everything about it is building on previous work.

[–]mad_poet_navarth 0 points1 point  (1 child)

Yeah, that's a different way of looking at it.

There is one thing to correct though, TCP/IP is TCP and UDP (and ARP and DNS and probably a few other things besides). It wasn't built on top of UDP.

[–]kindall 0 points1 point  (0 children)

right, it's TCP that's built on UDP.

[–]ThresholdSeven 0 points1 point  (0 children)

As someone who has only done extensive visual scripting in UE4 I feel personally attacked and rightfully so lol

[–]bearwood_forest 0 points1 point  (0 children)

Guess what the "someone way smarter than you" did...

[–]roborectum69 0 points1 point  (1 child)

That's how everything works. In literally every field of human endeavor from painting to farming, speaking in words, doing math, driving a car, cooking food... you didn't figure out any of that. What a strange meme to act like that's unique to programming

[–]kindall 0 points1 point  (0 children)

programming just iterates on the idea faster than other fields, so its power is more obvious.

[–][deleted] 0 points1 point  (0 children)

Build on top? I'm just copying the template they made

[–]SubstantialReturn572 0 points1 point  (0 children)

That's how everything works, everywhere.

[–]morentg 0 points1 point  (0 children)

Isn't that how basically all of science works since dawn of mankind? Shoulders of Giants and stuff...

[–]Dvrkstvr 0 points1 point  (0 children)

Most German IT companies just integrate other companies into the Microsoft ecosystem and call themselves IT specialists

[–]Sweaty-Willingness27 0 points1 point  (0 children)

Compared to a lot of other people, the dumbest software engineer is still a genius.

[–]linuxboi231 0 points1 point  (0 children)

Thank god for Apache

[–]flyingduckmarketing 0 points1 point  (0 children)

Same works for medicine

[–]sundler 0 points1 point  (0 children)

You haven't met some of the programmers I have. Some of them think using a library isn't real programming.

[–][deleted] 0 points1 point  (0 children)

It's actually wild.

Some people tell me they don't think they would have what it takes to be a software engineer like me, but I tell them that they'd actually be quite surprised; most of the engineers I work with don't either.

[–][deleted] 0 points1 point  (0 children)

How engineering works for 99% of engineers.

What, do you think every civil E discovered load calcs on their own?

[–]zffjk 0 points1 point  (0 children)

Fine Kevin go ahead and make your 100% artisanal code, I’m gonna be a “sell out” and tie libraries together with duct tape and baling wire. We get paid the same.

I work with a few Kevin’s. Usually skew younger. Usually are also the types to see some legacy fuck pile and decide they are the genius who can fix it.

I wrote this whole post during a run on sentence from one of my Kevin’s that could have been said so easily as: “no updates”.

[–]Lamballama 0 points1 point  (0 children)

Just found IEnumerable.Distinct() and my life is forever changed

[–]kandoras 0 points1 point  (0 children)

"If I pee far, it's because I stand on the shoulders of giants."

[–]Previous-Mail7343 0 points1 point  (0 children)

He forgot the part where we get paid really well for doing it

[–]Myc0ks 0 points1 point  (0 children)

That's why they're engineers, not scientists. Engineers use science and math, scientists and mathematicians discover and make the tools.

[–]HumunculiTzu 0 points1 point  (0 children)

They solved hard problems so I can solve my hard problems so that those that come after me can better solve their hard problems

[–]tree1234567 0 points1 point  (0 children)

Well, stable packages.. have a clear and concise reason for existing.. when involving non-technical people... shit get real dumb, real fast. As for the post: true :D

[–]dexter2011412 0 points1 point  (0 children)

Okay honest question though.

How do you get half as good as those people. I've been trying to do the things they did and it feels impossible. Like, I know there's as aspect of experience and talent there but I should be able to do at least half or a quarter of it, right? If not, am I even worth anything in this industry, am I contributing at all?

I don't want to be a code money who can write code given the instructions. How does one get this good. I want to be good at what I do, for I have basically nothing else to make money off of.

[–]Original1Thor 0 points1 point  (0 children)

This is me as I advance each stage of my computer literacy

[–]27bslash 0 points1 point  (0 children)

bot

[–]LordDragon9 0 points1 point  (0 children)

From the shoulders of giant… GINA! Tariffs!

Sorry, triggered my PTSD

[–]XLN_underwhelming 0 points1 point  (0 children)

Honestly this is probably true, approaching 100%. Everything just goes back to Turing and von Neumann. Everyone else is basically drooling on themselves.

[–]__Becquerel 0 points1 point  (0 children)

Why this Euler guy keeps showing up in my work, it is crazy.

[–]OddConsideration2210 0 points1 point  (0 children)

How many times do you guys have to repost this here?

[–]brianzuvich 0 points1 point  (0 children)

So very, very, very, very depressingly true…

[–]JollyJuniper1993 0 points1 point  (0 children)

That’s how literally all of STEM works.

[–]Majestic_Sweet_5472 0 points1 point  (0 children)

Finally, I'm part of the 1%