| I've always advised against being introduced to programming through game development. As much as game development is appealing and fun, the process is complicated and requires advanced knowledge of some fairly complicated algorithms even for fairly trivial games. Also you can find yourself spending hours shuffling sprites and designing levels which is time spent not learning programming. Also engines like Unity provide a false sense of security when infact you have no idea what's going on behind the scene and when something goes wrong you don't know where to begin and end up discouraged. Start slow, build your foundation, learn your bits and bytes, data structures and sorting algorithms first then venture out. |
In my experience, the challenge for beginners is that they lose interest and make no progress at all, not that they take some suboptimal path.
It's like picking up a guitar. You can come up with the Perfect Five-Year Roadmap and preach about how someone should first learn music theory and proper form before taking a crack at it. But for most people, that's dull and they'd never learn guitar if they had to do that before jumping in and just trying.
I think beginners should optimize for doing anything at all, and nothing should be advised against as a suboptimal route. The optimal route is the one that compels them, even if it amounts to faking it til they make it with a game framework and devoting 75% of their time to things completely unrelated to programming.
Sorting algorithms? Bits and bytes? Seriously? I started dozing off during that sentence and I've been programming in some form for at least 10 years. That's not how you're going to woo most people into programming.