To anyone feeling like this, nobody understands fully how computers work. You find your niche and you do your bit.
I don’t think there’s anyone alive who understands it all.
nobody understands fully how computers work
I mean, tap the breaks a little bit, here. “Fully” is doing a lot of lifting.
I will concede most people don’t understand the concept of transistors, much less the electrical engineering that turns a series of transistors into a CPU. And I’ll spot you that - for any given computer - it would take multiple extended papers to explain every piece of functionality.
But - broadly speaking - if you a computer engineer, you understand how a computer is engineered. If you’re working in IT, you have enough of a functional knowledge that you can tell what each general component does.
And if you’re a full stack developer (rather than someone who just does business logic on the backend), you should have a generalized understanding of client versus server versus database and how these pieces fit together. You should also probably have some grasp of the network stack, if for no other reason than you occasionally need to troubleshoot it.
I think there are very few if any people who understand computers from the transistor all the way to front-end JavaScript frameworks. At least not deeply and not without major gaps.
I mean, plenty of people use higher end coding languages to customize the tools they use to make advanced chipsets.
And, I’m sorry, but JavaScript isn’t that hard to understand - intentionally so. It’s one of the first languages you can learn in grade school.
I doubt anyone could go end-to-end on hardware manufacturing. But that’s more an issue of parts miniaturization. People build working computer kernels in Minecraft using torches and switches.
I mean the basic principles are very simple.
It’s the scaling and the speed of it all that you can’t really understanding. Also all the hackneyed unoptimized solutions that hold it all together that we’re totally dependent on to this day.
The very basic principles of 1 and 0 and using them to make logic gates is easy enough to understand. Its somewhere between doing that and getting hundreds of millions of them in a space smaller than your fingernail to all work at exactly the right way to send a specific series of them to space and back in a way that cant be interpreted by anyone but the intended recipient and then translate that information to a picture of someones dick that the confusion starts up.
it’s all monads bro.
god bless Leibniz.
I think that people just can’t make the software --> hardware jump. Like they understand what machine code is, and what CPU registers are, but can’t understand how a CPU with baked in hardware instructions (i.e. a seemingly fully deterministic piece of hardware) can drive transistors to high or low voltages in a random way.
The key is to see all software as hardware, and to envision the CPU as many many light bulb switches, with some wired into each other, creating flip/flopping latches.
Once you get the idea of a flipflop, you can maybe then start to understand how all you really want from the switches is to output a switch configuration that encodes a value in some representation. The switches are all initialized in some state, but then drive a known flipflop path towards a desired value, and this happens millions of time a second, often in parallel with isolated switches, or with switches that are virtually segmented from each other, or switches that can chaotically interact with each other
You just launch Wireshark and watch packets going back and forth, and you understand it in like 10 minutes.
I know this is a joke, but most people don’t realize the diversity of the internet specializations where if you’re not in that specialization, you can’t do it
Imagine a series of tubes. Imagine they are connected in a manner such that it spells “study computer networking: a top-down approach.”
Imagine a series of tubes.
I just the other day got, an internet was sent by my staff at 10 o’clock in the morning on Friday and I just got it yesterday. Why? Because it got tangled up with all these things going on the internet commercially. […] They want to deliver vast amounts of information over the Internet. And again, the Internet is not something you just dump something on. It’s not a big truck. It’s a series of tubes. And if you don’t understand those tubes can be filled and if they are filled, when you put your message in, it gets in line and it’s going to be delayed by anyone that puts into that tube enormous amounts of material, enormous amounts of material.

Hiw did you get that? Put it back ontop of big ben!
The black box people entrust their secrets to? (TPM, encrypting disks, cloud, AI)
No, this, Jen, is the internet.
They are referencing an episode of The IT Crowd
How should i know that? I’m not american.
It’s a British show originally. Am USian, yet I’ve never seen the US version.
Neither am I. The show is British, but have you never watched a piece of foreign media?
I can’t tell you the number of devs I’ve met that know jack shit about infrastructure and networking. Even simple questions like understanding their subnet or how a load balancer works.
I’ve been developing for decades so obviously I know that the subnet is where the Lord Marshall went and returned with powers beyond mortal comprehension.
You keep what you kill.
You are not a real dev unless you can build your own CPU atom by atom
where is the lemmy community for those who self-host chip fabrication?
everyone else is a poseur.
That’s because they’re back end devs. There is one way to do things, you learn the one way to do the thing, you do it that way, you’re done.
The fun is in front end, there is 15 different ways of doing things, but you don’t like any of them, so you develop a 16th way, eventually you get bored of the 16th way so come up with a 17th way. Eventually you get sick of all of this and go back to SSGs as God intended.
The one correct way to do back-end is obviously to have lots of microservices all talking to a shared database so they can take each other down and also they’re never updated because you’d need about 10x the devs you have to maintain all of them. I know this because that’s everywhere I’ve worked for over a decade.
There’s a perfect way to do anything in frontend but only on the dev’s one computer. Everyone else will get garbage.
…well I don’t have to know that because AWS is like, serverless, dude.
It’s in the cloud
It’s a series of clouds.

Sure. I consider myself a fairly good dev. Not an amazing genius or anything but pretty competent in my area. Wouldn’t have a clue how a load balancer works beyond what’s in the name, I guess it balances loads. I can assume it does this by distributing requests to different servers because that just makes sense, but I don’t even really know that. Networking might as well be black magic as far as I’m concerned. I’m grateful we have a decent infra team who knows about all that. So I’m not surprised.
Not just your industry. Every industry is like this.
Those are the ones who can maintain eye contact, aren’t they?
Look I’m mostly in infrastructure and I don’t know much beyond core principles behind software development, I can’t really cast stones. But yeah they can be surprisingly ignorant sometimes.
That’s because an “IT engineer” is like an “engineer in chemistry”. You have so many sub-disciplines that a given engineer can’t be expected to know everything. Nobody is surprised if an organic chemist doesn’t know much about heat exchanger optimisation, or a chemical process engineer is confused by organic synthesis.
In the same way, I’ve met devops guys that know surprisingly (to me) little about the intricacies of hand writing multi-threaded high performance calculation code. In the other hand, they’re wizards at stuff like load balancing and optimising how we use sub-processes for I/O, CPU-bound or memory bound tasks. You would think the two are very similar, but even then it quickly becomes clear that people really become specialists in their field.
The subwhat?
It’s the water based version of skynet.
Yeah, but why is CIDR notation like that? You put a bigger number at the end and your subnet becomes smaller? Why would you want that?
When you translate it out it bits it’s the number of bits that are active in the net mask
0000 0000 0000 0000 0000 0000 0000 is a /0
1111 1111 1111 1111 1111 1111 0000 0000 is a /24
1111 1111 1111 1111 1111 1111 1100 0000 is a /26
And since it’s used for matching, it follows how many there are.
Edit: typed that quickly, but to expand it further, take a /24 subnet, that is 255.255.255.0, if you look above each group of 8-bits can cover 0-255, so you in essence by having 24 bits turned on that’s what you want for an exact match. You’re basically saying “the first three octets need to exactly match”
$130k after 2 years? 2 years after I started I was making like… $60k? That’s not even counting the 4.5 years I spent starting a startup and making nearly nothing.
That said, I don’t live in Silicon Valley or anything. Pretty low cost-of-living here. Probably a big part of the discrepancy. I didn’t reach $130k until like 20 years of experience in the industry.
Inflation is thing that make number bigger but no more money. Less, even.
The worst part is when you do finally understand the protocols and standards, you still have to follow different procedures depending on where you work.
You can have a totally secure network and will never fail.
But nobody will ever be able to do anything useful on it because it will break every useful connection and ban every useful protocol on which most of your programs run.
Swears in z-scalar
How the internet works would be more so an IT thing than a backend developer thing at least on a high level. Setting up a database doesn’t mean one knows networking well in the same way they probably don’t know cpu logic gate design well.
You don’t need to know all the details, but I think you should understand the basic network concepts way before starting your first job as a developer
At least TCP/IP, DNS, and similar things, yeah. Maybe not so much the intricate details of the wifi6 or Bluetooth protocols.
Arguably an engineering (hardware) or systems programming issue, too. How many IT people (even the highly competent ones) could design a router, wifi chip etc.? Or know in detail what’s going on in an internet exchange point?
True and how many of those guys are well versed in fiber optics at IXPs. Maybe with like 20 dudes you could get an extremely in-depth snapshot of how the internet works from transistors to transformers and everything in-between.
Some developers that know both networking and developing will make those chips, the avarage developer will know about TCP/IP, DNS and those basics, at max
You don’t what to know how the internet works.
It’s boring and it’s complex and it’s fragile and basically dependent on corporations and nations being nice to each other.
Much more exciting to agonize about your self hosted DNS server.
Once you understand how internet works, you will understand that it’s also pure bullshit
we’re all just faking it, hoping nobody looks under the hood
including your therapist.
I’m a principal engineer making a killing and often feel like

I’m a principle engineer, I’m broke as shit and I can see everyone else being incompetent (and outsourcing their brains to Claude) all day.
Gimmie one of these 130k jobs where I don’t need to know anything, I’m sick of BS infra and k8s and shitass applications made as zillions of fucked microservices written by people who already bounced.
Knowledge without networking: low pay
Networkung without knowledge: hi pay
The normies have swapped a meritocracy for a kakistocracy.
And kakistrocracy sounds like a coprostocracy to me (caca)
Also goes for socials.
I’m an unprincipled engineer, in that case.
I’ve got one of those.
The most important skill is being able to talk to people and communicate… and being able to document shit in a useful manner for other people.
the technology skills are largely irrelevant.
I’ve heard this before, not everything has to become a microservice rather it’s okay for some aspects to be a monolith.
It was a regrettable trend 10 years ago and when your team contracts from 60 to 6 its an unmaintainable shitfest. I’m trying to coax them into merging them into a monolith with multiple entrypoints/builds so I have one set of dependencies to deal with.
The Internet is not something that you just dump something on. It’s not a big truck. It’s a series of tubes. And if you don’t understand, those tubes can be filled and if they are filled, when you put your message in, it gets in line and it’s going to be delayed by anyone that puts into that tube enormous amounts of material, enormous amounts of material
Came looking for this. Was not disappointed.
The Internet is a series of tubes
It’s not something you just dump stuff on. It’s not a big truck!
tell that to the truckload of tape backups I just had e-wasted.
I see we learned nothing from the “just learn code” blowback and are trying to make the industry even more barren.
that’s the rub, it doesn’t















