It's great that so many perspectives come up for this topic. Based on the previous posts (including your writings too) in your opinion do you think that C2 can be a good base for someone who want to learn professional programming? Or it might be better if I ask that way: Do you think that for someone, who learned programming logic with C2 in a formal way, alongside a teacher, is it possible to step to the next level, the professional level, learning only by themselves?
Short answer - yes. But...
Again, C2 will teach you a programming thinking, not a programming itself. No matter if you start with C2 or pure coding you have to learn the second thing anyway. I am quite experienced coder but it took me months to get fluent in C2 even though I had years of experience as a coder. Every new technology you jump into takes time to learn no matter how much you know already. Even jumping from one language to another requires you to learn new syntax, conventions, tools etc. Obviously the more you know already the less time it takes to learn new thing since many of them are similar and have one base - the logic (programming thinking). So when you master C2 it will take you months or years to master coding anyway.
Regarding learning with or without a teacher. If possible then I highly recommend to learn with a teacher. If you have someone experiened next to you who can directly answer any question then you learn 100 times faster and you're not getting bad habbits which newbiews always do. So if one have teacher while learning C2 it will take probably few months to master C2 instead of many months. Then if he continue learning by starting coding and this part is without a teacher then he will struggle - that's a sure thing. It's another "technology". Same base, but new thing anyway.
Easier comparison would be to ask Would someone who mastered C2 with a teacher be able to learn making games in Unity by himself?. Yes he will be able (nothing is impossible here), but obviously he will have to learn a lot of new things. New editor/interface, C# language, Unity conventions etc.
I am not sure why do you ask? If you want to start teaching people C2 proffessionally then I vote for it. I wrote my first program in 1992 (something around that) so really long time ago, and there was no such tools like C2, so we had no choice that time. And many people just gave up on the way learning pure coding which is not easy at the beginning at all. But if we had such a great tool back in the '90s I'm sure we all would go for it at start cause it's just way more pleasent for newbie to jump into IT. Anyway teachers are always a good choice. You save a lot of time when you learn with a teacher. Just be a good one!
And one more thing to mention. By learning programming it is not the most important to learn syntax, conventions, functions etc. Those things you can easily find in the documentations and you will get familiar with them in time. The most important thing in order to be a good programmer is to learn how to write a good code. A good code is basically a code that when your project gets very big, then you still know where is what and when a new programmer join a team he doesn't want to commit a suicide by working with your code.
So what is it all about:
- Understanding conventions (global, and particular for currently used technology) and sticking to it
- Making a DRY (Do not Repeat Yourself) code
- Making an organized, ecapsulated code (!) as much as possible
- Making often refactoring instead of "flat" prototype extending
- Making semantic code instead of writing tons of long comments which will get deprecated with new release anyway
- etc....
There are a lot of things which are VERY important in programming but not directly related to a specific technology and YES, you can learn most of them with C2 as well.