• pelya@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 hours ago

    You just launch Wireshark and watch packets going back and forth, and you understand it in like 10 minutes.

  • TootSweet@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    4 hours ago

    $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.

  • Jankatarch@lemmy.world
    link
    fedilink
    arrow-up
    10
    ·
    6 hours ago

    Imagine a series of tubes. Imagine they are connected in a manner such that it spells “study computer networking: a top-down approach.”

  • yermaw@sh.itjust.works
    link
    fedilink
    arrow-up
    23
    ·
    8 hours ago

    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.

    • UnderpantsWeevil@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      3 hours ago

      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.

      • vala@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        1
        ·
        2 hours ago

        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.

    • TubularTittyFrog@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      edit-2
      7 hours ago

      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.

      • yermaw@sh.itjust.works
        link
        fedilink
        arrow-up
        10
        ·
        7 hours ago

        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.

    • tetris11@feddit.uk
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      5 hours ago

      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

  • TubularTittyFrog@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    7 hours ago

    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.

  • JLock17@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    10 hours ago

    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.

    • TubularTittyFrog@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      7 hours ago

      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.

  • birdwing@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    3
    ·
    9 hours ago

    ngl this got me wondering what kinda jobs are fairly easy to enter (not too difficult or not too few availability), have good job prospects (salary, labour terms and conditions)… like how do i even learn how to do front/backend, etc., if i am bad at math?

    • da_cow (she/her)@feddit.org
      link
      fedilink
      arrow-up
      1
      ·
      5 hours ago

      The amount of math needed depends massively on your desired field. If you want to go into gamedevelopment you will probably work a lot with vectors. If you go into embedded systems the basic knowledge of hexadecimal and the binary system are crucial and you will probably also need the basics of electric engineering.

      I would guess, that webdevelopment or systems integration usually don’t involve that much math.

    • B0rax@feddit.org
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      8 hours ago

      You don’t need math at all.

      How to learn it? Think of a project you would like to tackle, and just start on your pc. Ask ChatGPT for a starting point

    • funkless_eck@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      8 hours ago

      I am not a professional but coding is more holding logic paths in your mind and translating large concepts into bite-sized steps.

      In my (extremely amateur) solo dev project this weekend - a card game, I needed a trap that’s invisible to opponents but visible to the player.

      So we create an (invisible) control node with an (optionally visible) animated node with a text label that inherits the visibility of the immediately parent.

      Then the top level node needs a “when I give you a place to be, animate appearing then animate moving to that place function” and it needs to respond to the card_played signal, and it needs to check the logic to see if that’s the time to trigger, and if so which functions it needs to activate (the board, the “umpire” node, the opponent hand) in which order, then call the dialogue system to display dialogue, then query the dialogue database for which message to show, in which language (currently only English) which in itself has a controller that forces the order of animations and turns on/off clicks to various functions while this function resolves…

      The only math involved is “how fast should the node move” and “if this trap blocks face cards, then block anything with a card value over 10” (jack queen king)

  • Zephyr@sh.itjust.works
    link
    fedilink
    arrow-up
    34
    ·
    15 hours ago

    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.

    • Gregers@lemmy.world
      link
      fedilink
      arrow-up
      12
      ·
      10 hours ago

      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

      • Zephyr@sh.itjust.works
        link
        fedilink
        arrow-up
        8
        ·
        10 hours ago

        At least TCP/IP, DNS, and similar things, yeah. Maybe not so much the intricate details of the wifi6 or Bluetooth protocols.

    • rumschlumpel@feddit.org
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      14 hours ago

      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?

      • Axolotl@feddit.it
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        6 hours ago

        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

      • Zephyr@sh.itjust.works
        link
        fedilink
        arrow-up
        6
        ·
        14 hours ago

        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.

  • ramble81@lemmy.zip
    link
    fedilink
    arrow-up
    101
    ·
    20 hours ago

    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.

    • thebestaquaman@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      3 hours ago

      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.

    • porous_grey_matter@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      7 hours ago

      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.

    • Echo Dot@feddit.uk
      link
      fedilink
      arrow-up
      20
      ·
      edit-2
      17 hours ago

      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.

      • anomnom@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 hours ago

        There’s a perfect way to do anything in frontend but only on the dev’s one computer. Everyone else will get garbage.

    • NigelFrobisher@aussie.zone
      link
      fedilink
      arrow-up
      46
      ·
      19 hours ago

      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.

    • Hoimo@ani.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      9 hours ago

      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?

      • ramble81@lemmy.zip
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        5 hours ago

        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”

    • Baggie@lemmy.zip
      link
      fedilink
      arrow-up
      9
      ·
      19 hours ago

      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.

  • bless@lemmy.ml
    link
    fedilink
    arrow-up
    17
    ·
    16 hours ago

    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

    • greyscale@lemmy.grey.ooo
      link
      fedilink
      English
      arrow-up
      15
      ·
      17 hours ago

      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.

      • TubularTittyFrog@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        7 hours ago

        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.

      • dan69@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        14 hours ago

        I’ve heard this before, not everything has to become a microservice rather it’s okay for some aspects to be a monolith.

        • greyscale@lemmy.grey.ooo
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          14 hours ago

          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.

  • wrinkledoo@sh.itjust.works
    link
    fedilink
    arrow-up
    15
    ·
    20 hours ago

    I see we learned nothing from the “just learn code” blowback and are trying to make the industry even more barren.