Background wise I'm similar background--I learned on Basic first (on a Commodore 128 and Apple IIgs), and then formal training in college was C++ for basic fundamentals, and then they migrated you into C ASAP, which is in and of itself important... Now....I don't use C in my day to job (one of the few that use both Java and C#), and would honestly hate having to work in C (or even C++), however I also have a LOT better understanding of what is going on under the hood (memory management and pointers (and the related topics like function pointers, pass by ref/pointer vs value)) versus if I were only taught in a high level language such as C# or Java. This is also becoming more and more clear since I'm mentoring a colleague who is also in a program that starts out in C#...Had a really horrendous time trying to explain to him what a delegate what since he had zero knowledge of a function pointer, nor did he know about the C# ref directive. Finally ended up telling him that he would be VERY wise to at least take an elective in how to code in C because of these knowledge gaps.....