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 1 week ago
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 to make a radio? Who cares.
You choose some random interest and learn it and don’t look higher or deeper up the stack, you respect the abstraction boundaries, unless you actually have a good reason to cross them.
rottingleaf@lemmy.world 1 week 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 1 week ago
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.
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.
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 1 week 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.