I was originally a BASIC and then FORTRAN programmer in my capacity as an aerospace engineer, but when I learned C, I got a real elegant insight into the workings of a computer program at a very basic level. Of course, this basic level comes at the cost of improperly dereferencing pointers and all the hell that that entails. I later moved on to learning C++, and I found that its design seemed to hem pretty close to the same level of elegance, in as much as the morass of object-oriented could be elegant. I would recommend to new students to learn C++, at least for the non-object-oriented parts of it (i.e., other than simple object member use) to be a complete programmer, and think that the teaching of assembly be discarded (at least as a requirement; certainly, it could still be an elective) in lieu of C++.
The cost of forsaking C
Ozan Onay
36841