In 2003 I was in my early teens and we built a website for our classmates, to have a place for our class trip photos, photos from our parties, to have a list of contact details like phone numbers and email addresses for all of us and to have discussions. I was just an ignorant geek guy who was "good with computers". Well, in the sense of Microsoft Office, Paint, clicking Next, Next, Finish to install stuff, configure firewalls, use Napster and crack games (by which I mean I knew where to copy crack.exe).
So we wanted a website. Previously I had already "made websites" by saving as HTML in Word, so let's go! But I figured we need to do better than Word, because Word's output was messy and often rendered broken in browsers, so I found an HTML tutorial and I managed to hand build a simple site, with the aid of shareware Windows software for creating button images with cheesy fonts and another one to generate thumbnails of images etc. We then wanted a discussion board, so I figured out how to install phpBB.
I had no knowledgeable geeks to guide me in real life but through these experiences I picked up real programming skills in my teens, JavaScript, CSS, HTML and PHP (and probably actively contributed to PHP's meme reputation as a tool of kids and dilettantes). A few years later I learned Python to mod games. I learned to put computers together and had a rough but cloudy idea of how it all worked. I liked it and went on to study CS, where I first learned C and C++ and Java and a proper theoretical foundation which I also liked because I liked math.
It was only in my mid twenties that I started to look into Linux. All my peers had been using Windows my whole life and I was a bit afraid of becoming a full on social outcast Linux nerd. But then in my twenties I lost my urge to conform so hard and overall came to like Linux. Overall I'm now quite comfortable with the command line, shell scripting and so on.
My point is, I was nothing special of a geek and had no geek peers in my teens but through necessity I picked up geek skills to make a website, to fix computers, to pirate stuff, to mod games etc., which led me down the path of pursuing CS as a career. I know I wouldn't have enjoyed it if it was presented to me as some gameified app to learn programming with some upbeat cheerful mentor. I loved it for the exploration, for the "nobody told you you could or should do this but can you make it work?".
Would I have become a CS person in today's climate where we would have just made a Facebook group to upload our class trip photos without learning any HTML? Perhaps, maybe through game modding. But do kids today have the same chances to mod games with all the DRM and always-online monitoring software? Would I have learned about TCP/IP if everything worked out of the box? Although I'd love to say I learned it all out of intellectual curiosity, in the moment I picked up these skills because I had something concrete in mind that I wanted to make, and learning these was the only way. If there was and easier way, I would have been lazy and in turn perhaps miss out on all the wonders of this field.
On the other hand there's just so much helpful material out there today, you can buy electronics hobby kits on the cheap, Raspberry Pi, all kinds of programming tutorial.
Any input from today's teens/early twenties how this works today? How and why do kids pick up tech skills nowadays that everything is so convenient and streamlined to consumption and locked down for inspection?