I came to understand and appreciate exceptions better, once I learned how they were implemented in Common Lisp. The same goes for macros, multiple-values, dynamic binding, closures, multiple-dispatch, the REPL, and many other things.<p>Not all of them are available in C/C++, but in one form or another they could be done.<p>The biggest revelation for me was the most of the C++ patterns, are just weaknesses of what the language can express. This made me free of what was expected as norm in C++, and I came to appreciate just C more and more (being more simpler).