Heck yeah. And that goes for any education. Play is a natural state of being for all mammals, and humans are no different: https://en.wikipedia.org/wiki/Homo_Ludens As mammals, we will actively reject boring/tedious things, unless they are directly required to prolong our life (like eating/sleeping). We want to play. Forced work and tedium are the complete opposite of what our brains crave. Procrastination is something we all suffer from time to time. And that's quite simply our brains looking for something fun to do instead of the boring thing we're supposed to do. Any satisfaction in life can be had by trying to have the most fun you can doing the things you need to do. A job can be fun if you enjoy it, and it triggers your concept of play. Same for schooling and education. Think about your favourite teachers/tutors/lecturers/mentors in life - the ones you think of most fondly are always the ones that had some sort of "fun" aspect about them (and I'm not talking about them being a clown necessarily, but rather they ticked that box in your head that piqued your interest). If you want to engage kids, make their learning fun. The moment you make learning something that's just rote and boring, you'll make kids switch off. Programming has a high barrier to entry. And honestly, fighting over syntax is boring. In the early stages, you want to get people figuring out how to solve problems through logic - that's all programming is. Whatever way you can do that and keep interest levels high (often through rapid visual feedback), generally will work better. High level languages like C/C++/C#/Java are all great and have their place in the world. But when you're trying to teach a primary school or early high school kid programming, you'll bore most of them to death. Sure, they can be tonnes of fun for seasoned programmers who've gotten over the initial hurdles of early programming challenges, but for newbies they're more frequently a complete turn off. Other suggestions in this thread - games that teach complex problem solving skills - are great too. I can think of dozens of games that involve complex resource management or building tasks that require the same sorts of problem solving skills we require in programming. I think Minecraft in particular has done more for this generation of kids than anything else, when it comes to getting them interested in computers and basic problem solving (much like Lego did for my generation, which helped lots of kids realise that engineering was a possible future for them). And the same goes for anything learned. Maths, science, art, history - make it fun. My kids learn so much from the British TV series "Horrible Histories" which they love, but also tell me how boring their history subjects are at school. Exactly the same stuff taught in two different ways. One works, one fails. Keep it fun! I've tutored, taught and mentored plenty of folks in my time (I did tutoring in uni for some cash on the side, have mentored people professionally, and have young kids of my own who are great little nerds in their own right). I try to make sure everything we do is fun, and always have a laugh while teaching. As someone who himself is easily bored by banality, I appreciate exactly the same in my learning.