The first time I put my hands on C2 I didn't know how to code except had some BASIC knowledge. At the same time I started learning C# and the Object concept was very abstract to me, but C2 helped me a lot in understanding this concept. Overall, I think C2 is good for understanding the concept of objects, variables, loops, conditions, arrays, even functions to some extent. I can't tell if it teaches good programming practices since I'm no good in any other real programming languages, but it certainly helps a lot.