I think that nobody says "fluent in cabbie english", and nobody says "fluent in japornime japanese", and these are spoken languages- languages designed for redundancy. Languages designed to impart partial understanding as a kind of graceful degradation.
Programming languages aren't like that. They're designed to be specific and exact and to not degrade at all. Learning a programming language is about learning how to be specific- and becoming good at that language is about learning how to read and understand that specificity well.
There is no simple subset of C++ because there's no way, looking at a >> b
that you or any other C++ programmer is going to know what is going on. Unless you're comfortable with that fact, you're simply not going to be able to be very specific with C++, and as a result what you learn will be nearly useless.
Instead, learning to be specific is easiest in a language with what is called context free grammar. That means you can learn (within a few hours) what a >> b
actually means. Exactly. Specifically. Lots of languages have this property. C++ doesn't.