I think centralization played a big role in this, at least for software. When messaging meant IRC, AIM, Yahoo, MSN, Xfire, Ventrilo, TeamSpeak, or any number of PHP forums, you had to be able to pick up new software quickly and conceptualized the thing it's doing separate from the application it's accomplished with. When they all needed to be installed from different places in different ways you conceptualize the file system and what an executable is to an extent. When every game needs a bit of debugging to get working and a bit of savvy to know when certain computer parts are incompatible, you need a bit of knowledge to do the thing you want to do.
That said, fewer people did it. I was in highschool when Facebook took off, and the number of people who went from never online to perpetually online skyrocketed.
I teach computer science, I know it isn't wholly generational, but I've watched the decline over the past decade for the basics. Highschool students were raised on Chromebooks and tablets/phones and a homogenous software scene. Concepts like files, installations, computer components, local storage, compression, settings, keyboard proficiency, toolbars, context menus - these are all barriers for incoming students.
The big difference, I think, is that way more people (nearly everyone) has some technical proficiency, whereas before it was considered a popular enough hobby but most people were completely inept, but most of students nowadays are not proficient with things past a cursory level. That said, the ones who are technically inclined are extremely technically inclined compared to my era, in larger numbers at least.
Higher minimum and maximum thresholds, but maybe lower on average.
I was once teaching a student introductory programming when I was in my undergrad.
The problem was to draw two circles on the screen of different colours and detect when the mouse is inside of one.
I said, "So our goal is simple: Let's draw a circle somewhere on the screen. Consider what you'd tell me as a human - I've got the pencil, and you want to tell me to draw a circle of a certain size somewhere on this paper. We have three functions. Calling a function will draw a shape. Each function draws a different shape. We have rect(), circle(), and line(). Which of these sounds like the one we want to use? Which would get me to draw the correct shape?"
".... Rect?" "Why?" "It draws a shape." "What shape would rect draw?" "I don't know." "Guess." "A circle?" "Why do you think that?" "We need to draw a circle." "If I said that rect draws a rectangle, which of the three functions would we want to use then, to draw our picture?" "Rect?"
I've now been teaching for many years, and those situations still come up a lot. When I put up a poll in class, with the answer still written on the board, about 25% of people in a 100+ student class will get it wrong - of people who were not only admitted to a competitive university program, but have passed multiple prerequisite courses to be here.
Not only is it unknown gaps in knowledge, there is just a thought process I haven't been able to crack through that some people really can't see what is immediately before them.