At the beginning of the summer my son Ronan, age 12, and I built him his first high-powered gaming PC. Me being a dad and all, I did so happily, but with one proviso — he'd have to dedicate time every day to learning a programming language. He was slightly sceptical of this, having taken a few less-than-interesting intro to programming classes in the past. Prepared for this, I recommended that we enroll him in Youth Digital's comprehensive Java course called Minecraft Server Desgin 1. This got his full attention, as he had dreams of creating his own custom servers and gameplay modes to host Minecraft sessions with his friends.

We signed him up and dove in. Our immediate impression was that site and course are smartly designed and easy to navigate. All material is introduced through clear, well-produced, often funny videos that didn't talk down him, but instead did a great job of walking him through new concepts, then pausing while he took pop quizzes and did hands-on coding exercises.  

The course includes a year of server hosting, 24-hour tech support (that was fast and helpful the few times he's needed it), and perhaps best of all, a browser-based integrated development environment (IDE) for editing the game, player, and team Java files. Within this Codenvy IDE (Windows and OSX only), you can launch the updated server with one button, which makes it fast to test code and correlate newly learned concepts with the "real world" Minecraft results.

He chose one of the four pre-built maps, learned to modify the default server file description text, whitelisted a few friend, and launched his Minecraft server within the first hour of instruction. Compared to a typical "Hello World" exercise, I think Ronan was thrilled that the programming was taught so he got results relevant to his interests.

By the time he'd been through six lessons, Ronan had learned and was putting into practice fundamental programming concepts such as arrays, conditional statements, and while loops. He was using these to create lists of items that randomly appear in chests, and to place command blocks in his map that power up player health stood upon — providing their health is below a certain threshold. Somehow, this is much more enticing to him than learning to code arrays of grocery lists as some other courses do…

Ronan did become impatient at times with the pace of the videos, wanting to get into the meat of a lesson. He would sometimes skip ahead in the videos, or start to code as soon as he got the gist of the lesson, before instructed. In his own (blunt) words:

"The videos were good at explaining the points they needed to make. But they spent too much time bantering around. A lot of the video is usually skippable."

I asked Ronan to say a few words about the course in general:

"I learned a lot of Java from this course, such as how to use methods which came into play a lot. I also learned how to make an array because I needed different items to be placed in chests. Another thing I learned is how to use an If-Then statement. An example would be, if playerIsStandingOnBlock, then givePlayer(Item.stone_sword)."

"I am now able to do all kinds of awesome things. I have an idea for a new server where there is a player-supported economy and town. Players could farm crops, set redstone monster traps with the click of a button, become shopkeepers, barter goods, and become rich!"

"With my newfound Java skills I might be able to actually create it. I know how to assign values, set timers, spawn monsters, and all kinds of other things. Now that I've taken this course, I can make an awesome server! I would definitely recommend taking this course if you are new to Java and like Minecraft."

The cost is $249.99 for roughly 30 hours of instruction/hands-on exercises, a year of server hosting for up to 5 players, and a year of 24-hour tech support. For the quality level of the instruction and the ease of setup/development/hosting the price seems fair, although you can often find discount coupons online if you search a bit.

Youth Digital Server Design 1