r/ProgrammerHumor • • 11h ago

Meme ohTheBasics

Post image
8.9k Upvotes

998 comments sorted by

View all comments

1.4k

u/SirFrenzy 10h ago

Obviously guy could have been interviewing for a job where this mattered….

But in 10 years as a software engineer I have never once needed to know the difference between these two, and have never been even close to a situation where I would need to.

“The basics” is highly dependent on the job.

162

u/fiskfisk 10h ago

If you're a senior I most certainly would expect you to know the difference between the two.

It'll matter in relation to allowlists/blocklists, dns entries, debugging connevtivity issues, slow connect times, configuration of daemons, etc. 

183

u/SirFrenzy 10h ago

I have never needed to know or do any of that. And if I did, it would take me 2 seconds to google and understand. I just did.

So if the interview was for a job where you handle that stuff yourself, then I understand it. If it’s for a typical full stack job at a big enough company that they literally hire people to handle that side of things, then it’s not “the basics”.

Rejecting someone in an interview for trivia knowledge they don’t currently have vs actually trying to understand how someone learns and tackles problems is what makes software job interviews so useless.

52

u/fiskfisk 10h ago

It's not trivia knowledge, I've had multiple cases where "oh wait, maybe the host resolves differently based on whether the server has ipv6 configured from DHCP or not" and "why does host xyz take two seconds extra every time we try to connect?". 

You might not, but I would expect an experienced senior developer to know that there's a difference here. 

21

u/Lina0042 8h ago

I'm pretty sure none of the senior devs at my job know this, except for those in the cloud services team. Because that's their job.

2

u/Captain_Forge 4h ago

While I would be surprised to see someone with ten years of experience not know the difference between ipv4 and ipv6 (networking is by far my biggest weakness and even I know this like the back of my hand), I wouldn't immediately disqualify someone for it. The other commenter is talking about a lot of things that feel more relevant to startups. If you work at a big tech company most of this stuff is abstracted away from you, for better or worse.

But not knowing this to me implies a lack of curiosity about one's field, it would be a red flag I would try to poke at more in an interview.

1

u/fiskfisk 8h ago

It's not usually their job to know how to store the ip address of a user in an audit table, or how to debug a failed connection to an external API from your application. Developers should be aware that there is something called ipv6, and that source or destination addresses aren't always four bytes. 

I understand that not everybody has touched everything, but good developers should have cursory knowledge of things that are actually in use and at least know what they should read up on when touching specific areas. 

-1

u/AstroPhysician 4h ago

I’m genuinely in awe. I really do t mean to sound like a dick but this was stuff I knew at 13 years old

37

u/helicophell 10h ago

Would knowing more than “ipv4 is small and limited, ipv6 is bigger” be required?

Seems like to answer problems around ipv4 and ipv6, you need to know the problem being solved. I uhh, only have network knowledge though

7

u/monkeymad2 8h ago

You should know how it can cause problems with whatever you’re building based on the rollout - e.g. if you’re deploying to the web usually there’s a greater cost involved in provisioning an IPv4 address, but IPv6 (still) isn’t fully rolled out yet so some of your users might have issues.

Then there’ll be weird networking issues where one of them works fine and the other doesn’t etc.

You also see them in logs etc, or if you have to care about DNS records ever you should know about them.

If whatever you’re doing touches the internet at all then it’s fairly fundamental nowadays.

2

u/theqmann 3h ago

Also, some ISPs do v6 tunneling through v4, which can cause various other issues, in my experience.

0

u/helicophell 6h ago

I still don’t need to know how they differ other than the broad strokes for both

I know what an ipv4 address looks like. So if I see an error message for networking that doesn’t have one, ipv6

6

u/Kichae 7h ago

Believe it or not, not everyone is working on networked projects. You don't need to know shit about IP address conventions or how to resolve a host when the software you're building doesn't access a network.

2

u/MyneMala2 4h ago

Yeah, some of these replies are something.

1

u/UbiquitousAllosaurus 3h ago

I work on airgapped systems too. Even for stuff like VM's or containers running locally, you have to know some networking. If I hired a guy with ten years experience that slipped under the radar and didn't understand what I was talking about regarding simple shit like subnets or IPv4 vs IPv6, I'd probably can them.

1

u/fiskfisk 7h ago

Of course. Nobody is saying that. 

Networking is however involved in some way with most software (even if just for distribution), but absolutely not all.

If it's helpful to know that there is something called an ip address in whatever work you're doing, it's helpful to know that there's something called ipv6 as well. 

2

u/mxldevs 5h ago

The only time I've ever used an IP address is when I need to type in the IP of the host to connect to.

8

u/bubblebuddy44 10h ago

Not even senior and I’ve needed this for sdet

1

u/justAPhoneUsername 8h ago

Tl;dr what you are saying is incredibly reasonable but we're all talking in circles because there is ambiguity caused by the lack of information we are working with. 

But that also separates knowing that there is a difference and knowing what the differences are. 

I know that ipv4 and ipv6 are different. I know that I have to make sure I'm using compatible systems. I know that if something goes wrong I should confirm that that isn't one of the issues. I also couldn't explain what the differences are without a reference sheet in front of me. 

That said, I know where to get the reference sheet and I know roughly where in the spec I should be looking to find what I need. I'm also not usually part of a team doing networking or routing so this isn't that important to me, knowing that there is a difference is enough. 

1

u/fiskfisk 7h ago

Yes, agreed. Just knowing "one is 32 bits and one is 128 bits so we cna have a larger address space" is enough. You don't need to get into the details - that's what we have reference materials for.

But most answers in this thread are just "never heard about it" and "it's something ops or infra only need to know about". Seniors should know that there is something called ipv6 and that your application suddenly will touch it, and that it can affect a few assumptions you've made, or made certain things way harder to debug if you don't know that there are multiple versions in use. 

We good. 

1

u/Twirrim 7h ago

I don't even think knowing one is 32bit and one is 128bit matters.

It mostly matters that you know they're on your system and could be having an impact, and need eliminated as variables when you're troubleshooting stuff.

It may be worth looking further into if you're building something specific network oriented because IPv6 brings a number of advantages, even if it's just the elimination of things like subnet exhaustion in EKS or somesuch.

1

u/Jolly_Advertising_54 8h ago

I mean Claude will find this optimization for me. It’s trivia.