• rottingleaf@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    5
    ·
    2 days ago

    Also when it comes to accessibility for the aspiring hobbyist coding is very accessible.

    No. The path is easy when you know it. Except you don’t unless you are lucky.

    There are a lot of false targets, a person 30 years ago willing to learn would have Basic as something normie-directed, C as something serious, x86 assembly language, with things like Pascal floating around and maybe C++.

    They’d read something about DOS and how an IBM PC with DOS works and understand it probably very quickly.

    Then they’d practice.

    Then there was Windows 95+, and still the complexity was about similar, except there also emerged Tcl/Tk, Visual Basic, those things.

    Now … you are a kid, you want to learn something, you might read about how digital electronics work, how a processor works, what interrupts are, see some words like syscalls and virtual memory and DMA, yadda-yadda. From some other side that there are operating systems, and there are compiled and interpreted languages, and there are levels of abstraction …

    How the hell do you cross the gap between these and actual understanding? Other than the blind way of going up level after level, starting with a bipolar transistor, which doesn’t seem easy at all.

    The hardship of finding the learning path shouldn’t be ignored. And the cost of all that complexity.

    About Arduino, too, - well, there at least you can write something in AVR assembly and almost transparently flash it to the board. Arduino and such things are good. I meant the things most people actually use and how.

    • barsoap@lemm.ee
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      2 days ago

      How the hell do you cross the gap between these and actual understanding? Other than the blind way of going up level after level, starting with a bipolar transistor, which doesn’t seem easy at all.

      You don’t pretend that Haskell has anything to do with electrical engineering and then you’re golden. You do not need to understand the one to understand the other. You do not need to understand quantum mechanics to understand a transistor, either – I mean, sure, if you intend to develop process nodes then you better understand quantum mechanics, but if you plan on soldering transistors together until you get an FM receiver? Who cares. Learn to read datasheets, that’s the actual skill you’ll need.

      You choose some random interest and learn it and don’t look higher up or deeper down the stack, you respect the abstraction boundaries, until and unless you actually have a good reason to cross them.

      • rottingleaf@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        6
        ·
        2 days ago

        Yes, then you have another problem - how do you choose what you want to do if you don’t yet understand the whole in any approximation.

        Again, about people who don’t know anything yet. There’s a barrier a person has to grind through with their teeth before they understand that they want to learn Haskell and what that is.

        • barsoap@lemm.ee
          link
          fedilink
          English
          arrow-up
          6
          ·
          edit-2
          2 days ago

          Yes, then you have another problem - how do you choose what you want to do if you don’t yet understand the whole in any approximation.

          How did you decide to write English using the Latin alphabet? You did not, I presume, study the whole ancestry of the alphabet back to Hieroglyphs to understand it in it’s entirety (did you know that ‘A’ is an upside-down ox head?), nor did you study alternative spellings, nor did you study linguistics to make sure that English, Modern English in particular, truly, is the best choice of language.

          You were able to ignore all that, why are you not able to ignore things elsewhere?

          And selective ignorance, btw, is a key skill to aquire as a coder. Encapsulation, abstraction, action at a distance being the root of all evil, all those are key principles to understand and skills to acquire. Why? Because you’re not as smart as you wish you were. Being good at ignoring things, being good at saying “if I build it like this, I can from now on ignore the details” is the only way to do anything of any complexity. I don’t care how my pants are constructed, about the lubrication the loom uses, I care whether they fit, are comfortable, durable.

          When figuring out what to pack for vacation, do you already tetris your shirts and pants? Nah, that comes later. Right now, worry about not forgetting your sunglasses, don’t worry, they’ll fit somehow.

          There’s a barrier a person has to grind through with their teeth before they understand that they want to learn Haskell and what that is.

          Nah. Just start somewhere. If you later on realise that your interests lie elsewhere, then switch, but don’t fret: If it was interesting enough to look at, how could it have been a waste of time.

          • rottingleaf@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            arrow-down
            3
            ·
            2 days ago

            Yes, I just happened to turn up in a world where it’s needed. There’s no other language used for absolutely everything.

            Sometimes you want to do a thing not yet knowing anything, and you need to find path towards it. “Starting somewhere” doesn’t work for everyone, especially, say, with executive dysfunction where what you are doing should have a clear connection with some goal, or be clearly a goal in itself, otherwise you’ll achieve nothing.

            I guess I’m arguing in favor of computing in general being again more friendly to autistic people, which, eh, is as good as fighting windmills.

            • barsoap@lemm.ee
              link
              fedilink
              English
              arrow-up
              1
              ·
              2 days ago

              Autistic coders are only slightly more rare that autistic rail fans. There’s no shortage of you guys in the field.

              what you are doing should have a clear connection with some goal, or be clearly a goal in itself, otherwise you’ll achieve nothing.

              “Understanding the whole stack” would, necessarily, be the second kind of goal. And you’ll never get there as the field is evolving under your feet.