In [A Scheme Story][scheme], the author talk about something I really like: the fact that introductory lessons in programming are often more about syntax then programming. In fact, even in interview, people tend to judge you more about how much syntax hurdles you know (« Do you know this language? » is so a common question) instead of how you will attack a problem, which is really what programming (and engineering, for that’s matter) is all about. Learning a new programming language is not hard, or if it is, change the language. But learning to use the techniques exposed in such language is another matter. I see too much procedural stuff written in OO language to not believe that someone know OO programmation just because it knows C++ or even Java.
I’m still not sure that learning scheme or any LISP language can really help, but for sure, forget about this « How to call an abstract virtual constructor in C++? » unless you want me to build a C++ compiler. Reference manuals are far better than my poor memory.