Why I Moved a Game-Dev Kid From C# to Python

Michael Murr··8 min read

Last updated: July 2026

Moving a game-dev kid from C# to Python is sometimes the right call, even when the kid loves making games. Cameron was building games in Unity, which uses C#, and the language was fighting him hard enough that I started questioning the whole course. I worried Python would bore him, because we do not build games there. He thrived instead, and learned faster than he ever had.

This is not a "C# is bad" article. C# is a fine language and Unity is a serious tool. The point is narrower and, I think, more useful for parents: language fit matters more than the cool factor, and a kid stuck on a hard language can quietly lose confidence while looking like they are "doing game dev." Here is exactly what happened with Cameron, what I worried about, and what I learned.

Key Takeaways

  • A kid who loves games is not automatically well served by a game-focused language; fit matters more than the cool factor.
  • Cameron struggled badly with C# in Unity, so I moved him to Python, where we build no games at all, and he thrived.
  • The counterintuitive part: dropping games made him faster, because gentler syntax let him focus on thinking instead of fighting the language.
  • A kid stuck on a hard language can lose confidence while still appearing busy and productive.
  • This is not anti-C# or anti-Unity; it is about matching the language to where the child is right now.

Table of Contents

The Setup: Cameron, Unity, and C#

Cameron came to me wanting to make games. That is a great reason to learn coding, and I build lessons around what a kid cares about whenever I can. So we went where the games were: Unity, the popular game engine, which is scripted in C#.

For a while it was exciting. He could move a character around, drop in a few objects, feel like a developer. But underneath the fun, the C# was hard on him. The language asks a lot up front: types declared everywhere, classes and methods before you have really written a program, curly braces and semicolons that punish a small slip with a wall of red errors.

Cameron is a capable kid. This was not a talent problem. It was that he was spending most of his energy wrestling the language, and almost none of it on the actual thinking, the logic, that I wanted him to be building. He looked busy. He was making games. But progress had slowed to a crawl, and I could see his confidence starting to dip.

It got bad enough that I reconsidered the whole course structure, which I do not do lightly.

What I Was Worried About

My worry was simple and, I thought, reasonable. Cameron came to me for games. In my Python track, we do not build games. We build logic: small programs, problem-solving, real foundations. If I moved him from "making games in Unity" to "writing Python that draws no characters and shoots no lasers," would he just lose interest entirely?

That is a real risk with any kid whose motivation is tied to a specific outcome. Take away the thing they came for, and sometimes you take away the reason they show up. I genuinely was not sure it would work.

I decided the foundation problem was the bigger risk. A kid fighting his tools every session, losing confidence, was on a worse path than a kid temporarily off his favorite topic. So we switched.

Same Idea, Two Languages

To show why the switch helped, here is the same simple idea (count to five) written in both languages. This is not a knock on C#, it is just a fair look at how much a beginner has to manage in each.

In C#, a small program already carries a lot of structure:

using System;

class Program {
    static void Main() {
        for (int i = 1; i <= 5; i++) {
            Console.WriteLine(i);
        }
    }
}

The same thing in Python:

for i in range(1, 6):
    print(i)

Look at how much a beginner has to understand in the first version before they can even count: a using statement, a class, a static method, the type of every variable, braces, semicolons. None of that is wrong. It is just a heavier cognitive load for a kid who is still forming the core idea of a loop. Python lets that same kid focus on the one new thing, the loop itself.

Python is also free and open-source, with everything you need at python.org, so there is nothing extra to buy to make the switch.

Why He Thrived Without Games

Here is the part that surprised me. Cameron did not just survive the move to Python. He took off.

With the language no longer fighting him, his energy went where I had wanted it all along: into thinking. He started solving problems faster, making fewer frustrated mistakes, and, importantly, understanding what he wrote. He could explain his own code, which he often could not do with his C# game scripts. He learned fast, faster than at any point in the game-dev phase.

The lesson I took from Cameron, after 20 years of teaching, is that the "cool factor" of a project can hide a foundation problem. Games are motivating, and motivation is gold. But if the language is so demanding that the kid never gets to practice the actual thinking, the motivation is propping up a stalled engine. Get the foundations solid in a gentler language first, and the games become far easier to come back to later, on top of real understanding.

One parent, Tahir, described in a review how good teaching takes a kid "from 0 to the top." With Cameron, that climb only started once the language stopped fighting him. Fit first, flash second.

To be clear about the path: this does not mean games are a bad starting point for every kid. I cover that fuller question in Should Kids Learn Game Development First?. It means that when a specific tool is fighting a specific kid, fit wins.

How to Tell If Your Kid Is on the Wrong Language

You will not always get a clean signal, but here are the patterns I watch for.

SignWhat it might look likeWhat it often means
Most time spent on errorsLong stretches fixing syntax, not buildingThe language load is too heavy for now
Can't explain own code"It works but I don't know why"They are copying, not understanding
Confidence droppingMore "I'm bad at this," less showing offFrustration is outrunning progress
Busy but not progressingLots of activity, same skill for weeksThe cool factor is masking a stall

If you see two or three of these together, it is worth asking whether the language, not the child, is the problem. Sometimes the right move is a gentler language for a while, the same way I moved Cameron. None of it means your child is not cut out for coding. It usually means the tool and the kid are mismatched right now.


Frequently Asked Questions

Is Python or C# better for a kid who wants to make games? For making games, C# (with Unity) is the more direct path. But for a kid who is struggling, Python is often the better place to build foundations first, because its gentler syntax lets them focus on thinking instead of fighting the language. Many kids do best learning to code in Python, then returning to game development later on top of solid understanding.

Why move a kid away from the thing they came for? Because a kid fighting a hard language can lose confidence while still looking busy. When Cameron was spending all his energy on C# errors instead of logic, his progress and his confidence both stalled. Moving him to Python rebuilt the foundation, and that foundation is what eventually makes the harder, game-focused work possible.

Is C# a bad language for kids? No. C# is a capable, widely used language, and Unity is a serious professional tool. The issue is not quality, it is cognitive load. C# asks a beginner to manage types, classes, and strict syntax before they have mastered basic logic, which can overwhelm a young learner who is not ready for that yet.

Won't switching to Python bore a game-loving kid? That was exactly my worry with Cameron, and it did not happen. Once the language stopped fighting him, he learned faster and enjoyed the wins that come with actually understanding his code. A motivated kid often stays motivated when they finally feel competent, even on projects that are not games.

How do I know if my child is on the wrong language? Watch for these together: most lesson time spent fixing errors, an inability to explain their own code, dropping confidence, and lots of activity with little skill growth. Two or three of those at once suggest the language load is too heavy, and a gentler language for a while may help more than pushing through.


The Bottom Line

I moved Cameron from C# to Python expecting to lose his interest, and instead I watched him learn faster than ever, because the gentler language let him spend his energy on thinking rather than fighting syntax. Language fit and solid foundations matter more than the cool factor of any single tool, and a kid stuck on a hard language can lose confidence while still appearing productive.

Worried your child is fighting their tools instead of actually learning? Book a free Discovery Call and we will assess where they are and find the language and pace that fit them right now.

Enjoyed this article?

Your child can learn this and more with a dedicated 1-on-1 tutor.

Book a Free Discovery Call