Exceptions exist.
* Here's What Happens When an 18 Year Old Buys a Mainframe - YouTube || https://www.youtube.com/watch?v=45X4VP8CGtk
Exceptions exist.
* Here's What Happens When an 18 Year Old Buys a Mainframe - YouTube || https://www.youtube.com/watch?v=45X4VP8CGtk
The other is that most devices are increasingly more geared towards conmsumption and less towards experimentation and creation. On one hand, I used to do crazy things with assembler, regarding direct access to ports and interrupts, that no current OS would allow. On the other, the shift towards phones has greatly changed (and IMHO, reduced, mostly) what we do with our computers.
The good news is that the info is out there for the ones who do want to learn; we didn't have that privilege. Still, these are a minority, and in my experience, the average 18yo person preparing right now to start a degree in CS (or whichever career centered around programming) knows way less about computer than what we used to know at their age.
I started out learning how to program in Windows 95 to make games. I learned to use inline assembly to set the video mode, and then directly write to video memory at 0xA0000000.
You can't do that anymore on modern Windows even if you knew how. Today if you wanted to start game programming, you'd probably read a bunch of articles recommending Unity, which doesn't even easily support C++ FFS.
Doesn't it sound more important to have an IDE + fluid building so people don't have to care about the details?
This is the biggest difference between then and now. In the 70s and 80s computing was all about details, all the way down to the hardware, which most developers understood at the register level.
8-bit amateurs grew up with simple toy machines. They learned enough detail to allow a natural transition to professional development on mainframes and minis - far more detail and more complexity, more of an OS to deal with, but with a recognisably similar outline.
Now most development is more like LEGO - clip moving parts to other moving parts in a slightly precarious way and hope nothing breaks.
It's a completely different way of thinking about computing - kit and cookbook based, with less space for original creation and problem solving. This is partly because the details are hidden and can't be changed, but also because the ethic of experimentation and creativity based on deep domain knowledge driven by curiosity isn't the same.
The whole point of the many abstractions between the user and the hardware is so they don’t have to care about the details.
Yes, the abstractions mean people can do more without caring, which in turn means more people can use them, but it comes at a cost too.
It doesn’t come for free and ultimately other things might be more important.
You can call it a business decision, but that basically means the tech people are doing the work and making our execs rich without actually creating anything that's more beneficial to humanity compared to the computer systems of 10 or 20 years ago.
Think back to the computers of the early 1980's. It was quite easy for someone to pick up BASIC and create simple programs. Their understanding of programming will be basic and their understanding of the machine will reflect that. That is quite similar to today.
Someone who whetted their appetite will move on to more advanced concepts. With early computers, that typically meant learning about the hardware or learning about algorithms. You either had to squeeze more performance out of your software or you needed to extend your reach beyond the language (and libraries). Today's programmer is, more likely than not, going to dive more deeply into libraries or learn more about their programming language. Yes, there will be exceptions based upon the domain that interests them or what they wish to gain from their learning.
Let's say that they decide to dive deeper into how the computer works. In the case of an early personal computer, the task was relatively easy. From a programmer's perspective, almost everything can be viewed sequentially and shuffling data across a bus. If they were more interested in electronics, it was relatively easy to see what was going on by looking at a circuit diagram or the board itself coupled with reading (admittedly more difficult to obtain) datasheets. With that knowledge, it was possible to modify the existing hardware and practical to build new hardware.
The notion that we are abstracting our understanding further and further from the workings of the machine while letting that limited understanding decide how what we can do with it isn't exactly a new one. My first real encounter with that idea was from one of the pioneers of digital computers, who described the machine as fundamentally physical and analog. In other words, making the physical world digital is in some sense and abstraction in its own right.
Granted, the article's author had relatively little to say on the fronts of programming and electronics design. It was more of a critique about younger people using software with very little understanding of its features or how it works, the sort of thing that can get you into trouble when things are not working as expected. While I disagree that this problem is specific to this generation, it is a solid reminder that the stereotype that younger people are better with technology is just plain wrong.