I agree. I feel like the first language someone should get exposed to in programming is C. Then teach them the object oriented concepts in a few different OO languages including Python and C#/Java, but build the foundations in C. When you do network programming in Python or C#, you basically just create prebuilt objects and call prebuilt functions that do all of the work. In C, when you do network programming, you have to take into consideration things like lost packets, late acks and how you will handle them, etc. Programming in C gives you a lot more appreciation for the aspects of programming in higher level languages that are made easy through various libraries and APIs.
Then you can make them learn assembly when they start grumbling about having to program in C ;)