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

    Cause when it stops being glamorous magic, it starts becoming optimized and normal, like painting fences.

    The portrait kind of painter working like the fence kind is not a good thing. It’s not even a thing at all, it’s an illusion.

    Also when it comes to accessibility for the aspiring hobbyist coding is very accessible. If you have nothing to start with, sure, more expensive than knitting, but probably not more expensive than acquiring a merino wool habit, and if you already have any kind of computer, any, as well as an internet connection, it’s literally free. The tools, the knowledge, everything. Willingness to learn not included.

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

      I learned python and bash over about 6 months.

      I’m not a phenomenal coder yet but it’s definitely doable. I didn’t take a class or read any books I just tried to code shit until eventually the anger and frustration lead to a moment where it kind of clicked and I was just like, writing line after line after line of code.

      It was so weird. When I woke up that morning I felt like I’d never learn and then I could just kind of do it.

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

        Have you already heard of our Lord and Saviour, the Wizard, and the scripture known as The Wizard Book? By the end of it you will be able to write a compiler, be a smith who can forge their own tongs.

        (The software to use with the book is nowadays called racket, use #lang sicp to enable the right dialect)

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

          I have not. I’m about to start learning rust so this could be useful. Thanks!

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

            The Rust book is also good at teaching coding, but it would be more of a jump into cold water. It’s still more about teaching coders about Rust, only teaching coding incidentally to pick up people coming from a variety of languages, instead of getting into the core of computation itself.

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

              I mean, I literally learned python and bash by just kind of going for it, so this sounds good.

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

        So, how’s your understanding of the whole system your python and bash scripts run on, after that?

        • trungulox@lemm.ee
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 day ago

          Don’t know why you’re getting downvoted. Seems a really relevant question for anyone looking to learn a low level programming language. I’d say it’s fairly in depth but I don’t know what I don’t know. I get, at a high level, how memory addresses work, understand what ram does, I get the concept of hyperthreading and have written a couple of python scripts that have used it for so applications…

          I’ve fucked around with a lot of hex tables.

          I took formal logic in uni and while I sucked st it I did learn a lot about the fundamental logic underlying it all

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