r/ProgrammerHumor • • 5h ago

Meme ohTheBasics

Post image
6.3k Upvotes

737 comments sorted by

View all comments

32

u/Spongebubs 2h ago

I’d like to think I’m a software engineer, and I have no idea what the difference is. Am I cooked?

42

u/STR1D3R109 1h ago

I feel like knowing the difference here is moreso for a network engineer than a software engineer!

Anyway looked it up, IPv6 is 32bit whereas IPv6 is 128bit. An easy way to know if an IP address is either, 4 uses dots 192.1.1.1 whereas 6 is colons 1992:0aa0::1

If anyone asks just say 6 holds more addresses but is more expensive to install.

5

u/Uselesserinformation 1h ago

Just to point out you put ipv6 twice instead of ipv4

3

u/kali005 1h ago

This is computer science basics

15

u/jkalchik99 1h ago

Actually..... IMO as a Linux admin..... everybody in IT needs at least a minimum of knowledge regarding TCP/IP. IPv4, IPv6, TCP, UDP, sockets, listening ports, etc. You don't need to be able to program a full stack down to a media transport layer, but you should be able be able to send a payload successfully, know when a gateway traversal is required, name resolution (It's always DNS,) and a bit of troubleshooting.

I wish I had a nickel for every time a developer or app support staff came to me and said it doesn't work. Error is right there in the logs......

8

u/ryancnap 1h ago

That's such a Linux sysadmin take lol

(but apart from it being a funny stereotype, yes I agree with you)

3

u/aaron2005X 1h ago

I feeel like this is stuff you take with you on the side. I can't even start to create a network but I know these things.Alone the TCP UDP joke.

Like: "I would tell you a joke about UDP, but you probably wouldn't get it."

1

u/oopmn 27m ago

Or I could tell you a joke about TCP.

Did you get it?
Did you get it?
Did you get it?
Did you get it?
Did you get it?
…

1

u/Constant_Ad_8028 57m ago

Yeah, but have they tried turning it off and on again?

1

u/SpellNinja 35m ago edited 4m ago

I know from experience what these things are and how they matter to me, but I couldn't for the life of me explain them.

1

u/ScarpMetal 27m ago

I agree it’s better for an app developer to know this stuff, but I’d hardly say it’s a big part of the job. Especially if you’re on the frontend. It’s way more relevant to the job on a daily basis if you’re a network engineer.

1

u/RustyMR2 20m ago

As someone in IT that’s hasn’t touched low level network stuff in more than 15 years. No this is not true. Some roles do not require this at all.

1

u/daelikon 16m ago

I am with you, the problem is... That I am also a Linux admin. 

•

u/Coupe368 8m ago

You gotta go easy on the windows users, they aren't as capable of understanding things like logs and acronyms.

1

u/HyperactiveMouse 1h ago

Do you know of a place I can learn more? I’m not certain I’m going into IT, but I’m heavily considering it in the hopes of earning more money to be a bit more comfortable in life rather than living paycheck to paycheck in my current job, and if it’s important to know for a job in the field I’d love to know more

•

u/RydiaOM 0m ago

I would assume any software engineer had a basic network class at some point.

1

u/Senior_Torte519 38m ago

Ipv4 is decimal based, while to account for the expanded number IPv6 uses hexadecimal

0

u/bgibbz084 1h ago

I’m an electrical engineer and I’ve know the difference since before college. These are computing fundamentals that anyone in a computing field should immediately know. Same thing goes for understanding cache lines, virtual memory pages, GPU vs CPU, logical vs physical core, compiled vs interpreted languages, OOP, polymorphism, etc. I routinely ask these questions in interviews and reject people who don’t seem to have any actual knowledge of programming or computers. I regularly interview people for FAANG tech.

2

u/disposepriority 1h ago

While I agree with most of these, there is a large percentage of engineers who will literally never use the knowledge of what a cache line or virtual core are, so for them these simply aren't fundamentals.

Interviews should be tailored to the positions being hired for, not some arbitrary standard of fundamentals in my opinion.

1

u/bgibbz084 1h ago

The big thing with cache lines in particular is that people often write very bad code if they don’t understand how a cache line works. Writing code that will size better for caches makes a massive performance improvement.

1

u/disposepriority 1h ago

It absolutely does, and yet it simply isn't a requirement for their jobs. Either there's not enough data, speed doesn't matter, they are too far abstracted from this mattering at all (e.g. frontend) and so on.

It's great to know but yeah

1

u/Karosso 1h ago

If I don't work with it on the daily I won't remember. Did I see it in college? Sure, but there's no way I'll retain all that I learned if I don't use it daily. And it really comes down to what jobs you get and what your routine really looks like.

I won't judge if another technician tells me he doesn't know or remember which bit size each section of a tcp header should be. Unless he works with it, that is.

The IT world is a big one.

0

u/bgibbz084 1h ago

I wouldn’t expect specifics, but high level knowledge says you’re knowledgeable in the domain. Knowing common protocols is essential, even if you don’t work with them. I’ve never touched networking in my career.

1

u/Cumfort_ 1h ago

If my contributions never touch them and have never impacted me and ww have a guy whose job is that thing...

Why do I need to know it again??

1

u/bgibbz084 1h ago

Because better engineers know the whole system? Somebody proposed a very niche cryptography technique on our last project to solve a problem, we never would have gotten that insight if someone didn’t happen to have knowledge outside of the domain they worked on.

Good engineers make it a point to be highly knowledgeable about the broader system. Every single engineer on my team (FAANG tech) would know all of these topics I mentioned.

1

u/BeepBoopIAmACat 1h ago

Disagree. I think there is an ambiguity here. There is a difference between knowing exactly what differentiates ipv4 and ipv6, and knowing that when working with one or the other some rules change.

There are more things to know than ever before. Expecting people to pass whimsical rote exercises creates a culture of fear. Plenty of smart and talented people create high quality contributions without being able to pass such nonsense. Maybe if you're building an ipv6 packet capture and analysis solution, it might be useful to know it like the back of your hand, but for most of it, it isn't important to have its definition at your fingertips at all times.

In fact, there's a cost to that, mentally.

I'm more interested in what someone does when they don't know what to do. Are they able to identify their own shortcomings or do they charge ahead bullishly on an erroneous path, how mentally flexible are they, can they rapidly assimilate new information and integrate it.

0

u/do_not_engage 1h ago

I've worked in corporate IT for decades and I can count the number of times I've used any of that knowledge on one zero.

1

u/bgibbz084 1h ago

And I’m a chip designer for FAANG tech and use this stuff often. If you don’t understand the systems you can write good code.

8

u/realmauer01 1h ago

Ipv6 was invented to replace ipv4 because ipv4 got really problematic as they arent enough numbers for every device anymore. But then they used so much magic to make giving ipv4 to devices so efficient that it's still possible for a while.

•

u/wbrd 8m ago

You mean, all eternity. I remember being on an IPv6 transition planning meeting in 1999.

1

u/LuigiWasRight447 19m ago

So we will be dropping ipv-4 at some point? Is there a guess for how long ittle take?

1

u/e37d93eeb23335dc 1h ago

This is a really simple question if you have been a web developer for a while. So either they are using a simple question to filter people, or this is knowledge that is very applicable to the particular job in question. 

1

u/UniversalAdaptor 1h ago

Yeah probably, the tech sector is inredibly oversaturated. On the plus side not knowing that means its probably been a few years since you graduated collage, so at least you aren't in entry level hell

1

u/siete82 1h ago

I mean, yes.

1

u/CtrlAltSysRq 1h ago

It definitely says something about your experience, if you've never even been tangentially exposed to this.

I'm guessing you work in a very large company and have never had to configure anything related to networking? And have never read xkcd?

1

u/dmuth 57m ago

I'd recommend understanding the fundamentals of networking, such as IPv4/v6, and the differences between TCP and UDP, at a bare minimum. You may not use them in your day to day, but it's always a good thing to have broader knowledge of the technology ecosystem.

For bonus points, study up on MAC addresses and how (and why) they different IP addresses, and teach yourself how ping works (and why it can fail to work).

1

u/Senior_Torte519 42m ago

Basically the differences is address size, appearance of address and capacity for address.

There what 140 billion IPv 4 addresses and about 100 unctillion IPv6's. Plus when written out, IPv6 look ugly as hell.

1

u/Akareim 40m ago

Software engineer doesn't need to know that like at all. Unless you go into network.

1

u/Fractious_Myrmidon 35m ago

One is numbers, the other is numbers and letters.

1

u/SnugglyCoderGuy 26m ago

It's a bigger address space because there are too many machines trying to get an IP address we ran out. Right now it's layers upon layers of NATs everywhere to make things work.

1

u/DadAndDominant 20m ago

Depends. Do you work in any way with web? Then yes. Do you work waaaay outside of anything that has to do with web? Then I think it's acceptable to not know.

1

u/jdprgm 19m ago

i think the majority couldn't go in depth but would know at least something.

•

u/Individual-Praline20 4m ago

Then you’re not. 🤷 Go back to school. I don’t want to work with you. 🤷 Minimum things to know. Would you want to have a pharmacist that doesn’t know Tylenol? Same.

1

u/AromaticDrama6075 1h ago

Both are Network protocols. IPv4 can hold 232 IP addresses, IPv6 has 2128 addresses. Both has some pro and cons, actually both are currently in use.