Learn to Program by Crafting Your Own Magic Spells