James_Parsons wrote:
LOL: Lego, Arduino. You don't learn much from a prebuilt microcontroller using Python or C. I'm tired of people in my school calling themselves "hackers" because they know how to use command prompts and Linux. That's more noobish than me. Also since I have been with vintage computing, I noticed companies that used to make processors and computers making crap
The higher level stuff has its purpose in life. Try as you might, you can't build everything from scratch. Even if you had that capability and all the necessary resources, you wouldn't live long enough to see any results. There's just too much that has to be done to get from start to finish.
That said, as the level goes up the opportunity for learning tends to go down. Since you mentioned Linux, BASH is a good example, in that it carefully insulates the user from the uncouthness of the kernel API (which if you look at the assembly language used to call a kernel function, especially on x86 hardware, is not pretty). With BASH, you don't need to know the details of what's going on, for example, when you search a file for a text pattern using
grep, sort the results with
sort and dump them to a printer with
lp, connecting everything with pipes. Or, the user may well know to type
ps -ef | sort -nk 4 | tee /tmp/ps_out | lp -d hp4240a -o nobanner to see which process is hogging the MPU, but may not have a clue how or where
ps got its data, or how
tee is able to tap into the pipeline. For most users, what happens when the data stream reaches
lp is a total mystery. Paper magically spews from the printer with the output of
ps on it, sorted by MPU usage per process.
This is why folks like Garth and me try to encourage working as close to the bare metal as you can. The only way to see what's going on under the hood is by opening it and getting your hands metaphorically dirty. That isn't possible if an Arduino or Raspberry PI is the thing running your "homebrew computer," since the "hood" is bolted shut. On the other hand, if you scratch-build using an MPU, RAM, ROM, glue logic, etc., you will develop a good understanding of what is going on under the hood, because you built the automobile (to belabor the analogy).
There is a place for microcontrollers. If the goal is to build functional hardware as quickly as possible, the Arduinos and PIs of the world are a good choice, since much of the nuts and bolts engineering is already done. If the goal is to learn, however, they are not a good choice, especially true with the PI. A desktop machine running Linux is a far better environment in which to learn to use Linux.