I think it's better the other way around. Thats what I did anyway. Sure if you can jump right into C and have no problems then everything will indeed be easier down the road, but I think it's better to start with something easy, where it is easy to get results. (python, java, php i think all qualify). This will keep the person interested. If someone jumps right into C, it can get intimidating and the best a beginner can do is output to the console, which isn't very interesting. It is very easy to wrtie a simple GUI in java or python, or some cool scripts in PHP. Learning is much more fun and rewarding if you can produce results (like simple apps with GUI or apps you can use) right away. Once they are able to program with the layer of abstraction those languages offer, and are familiar with programming concepts, it will be easier to go down to C, then ASM. As they move down they will better understand how everything works and how much they've been taking for granted using those other languages hehe. Thats my opinion anyway, everyone learns differently. I started with Java and PHP, then C++/C then ASM (well, MIPS assembly).