With my first kid on the way in November, I can't help but start to plan. It's in my nature—the more I feel like I have a handle on the future, the happier I am in the present.
One of my first thoughts, when trying to plan this kid's life out by first picking their name, is that I would need to register their domain straightaway. I'm lucky to have a relatively uncommon last name, but I'd hate to bring a kid into this world who can't have the classic
firstnamelastname.com domain, no matter what it is they end up doing.
With my mind on domains and websites, I couldn't help but wonder about whether my kid would eventually be interested in programming and development. I started looking into how—and when—it's good to introduce a kids to those concepts.
Turns out I have quite a bit of time to straighten out my strategy.
Even then, I started thinking more critically about the educational tools available to kids—what's good, what's bad, and what might still exist by the time my kid is old enough to understand—and I got to thinking: Isn't a VPS just a little digital sandbox?
Or, even better: Why shouldn't every kid have a VPS to play around in?
Mine certainly will. Here's why.
What sandboxes are there already?
When most parents look to point their kids toward learning programming, it's in one of a few different fashions.
Science, STEM, and robotics clubs are abundant in many schools and communities, and offer youngsters the ability to problem-solve and actual build a physical object, whether it's a combat-ready robot or something a little more... practical.
The Raspberry PI is another recent and popular option, as it's an incredibly cheap way to give kids a space to practice both their hardware and software skills, and eventually turn the PIs into practical devices.
Docker containers / VMs are probably quite low on the popularity list, but even when installed on a local machine, would give youngsters a place to experiment without worrying about breaking anything. A kid might not know better than to fall for the
sudo rm -rf / trick (please don't yourself)—better they learn that key lesson in an enclosed container than through deleting all of your important files.
What's wrong with the existing options?
Wait—there's nothing wrong with any of them. They each have an important role in the educational ecosystem. A class or club is great when kids are just starting, whereas a Raspberry PI is better for more advanced students who want a bit more freedom to experiment.
The problem is that they're all missing that essential sandboxness—the ability, by a mix of work and creative thinking, to do anything you want. They're each hamstrung by specific limitations, whether that's imaginative or functional.
Is a VPS the perfect answer to those limitations? Definitely not—the lack of physical access is a big negative. You can't use a VPS to water your plants. But, I think a VPS grants more benefits than the others, without many of the negatives, which makes it an excellent and obvious choice.
What's to be gained
If we're talking about a degree of sandboxness that makes one educational tool better than others, here's where a VPS shines:
Experiment without fear: Younger people tend to welcome trying new things with the devices put in front of them, and a VPS offers all that freedom while keeping their experiments safe, so to speak. If something goes wrong, all they need to do is reinstall and start over.
Learn new techniques in their natural environment: It's now easier than ever to use real development tools in Windows, but if you're going to be using UNIX systems often enough, learning about the core utilities via a different system might lead one astray. From build tools to sophisticated Bash commands, a VPS using Ubuntu or CentOS offers a truly immersive experience.
GUIlessness can be good: These days, GUIs are taken for granted as the only way to use computers. I think there's value in teaching young people about the actual systems that make those interfaces work. If nothing else, it's an important reminder that pretty and useful things rely on complex systems and th experts who understand them.
Flexibility for miles: A VPS can do basically anything a UNIX system at home can. That means hosting a game server, a place to chat with friends, dozens of websites, places to try out new programs, and much more. Parents could structure what they try out, or simply let the kids have at it.
As mentioned before, a VPS isn't perfect. I can already see a few ways they falter under certain conditions:
- The learning curve is far steeper than an online course.
- There's no instructor to help guide learning (unless a parent can take that role).
- And, again, it doesn't teach you about hardware like a PI does, but it sure is faster.
One ideal setup
Ubuntu 16.04 gets the main OS role here, not because it's my favorite—I've really been liking CentOS lately—but rather because it's the most popular, which equates to the most discussion and support.
Docker seems ideal for this situation, as it allows you to create sandboxes within the initial VPS sandbox, and abstracts away some of the risk in trying some really experimental things. If a kid messes up, they (or you) can just
docker stop && docker rm and try again.
Nginx-proxy is important too, because that makes hosting multiple websites via Docker a cinch.
Here's the general structure:
- VPS running Ubuntu 16.04
This setup, which should take no more than an hour to configure, is, according to my estimation, one of the best educational tools a parent can buy.
All my planning is probably for nothing. Someday I'll tell my kid about the domain I bought for them, and they'll ask for a soccer ball instead. I'll give them a VPS and say, "Have at it," and they'll ask for some canvas and a stockpile of watercolors.
And, who knows what technology we'll be using in the years that will pass until my own kid is ready for learning about computers in a very real sense.
But, in the years to come—and for those who have kids at just the right age right now—I feel confident that there's few better tools than a VPS for learning those fundamentals. In conjunction with the other tools mentioned here, parents can set do some amazing work to set their kids up for a future that's only going to get more complex and depend more on these techniques and systems.
I can't wait to join the party. I hope my kid will think the same.