I've never taken a class in C. I've never taught a class in C. But my computational physics PhD thesis written in my late 20s rode on the back of two years of pure C programming. I didn't learn C++ until I was in my late 30s. I read Kernighan & Ritchie's classic text in the late 80s as a graduate student at UCSD. My first copy was a freshly published 2nd edition. My thesis code, which among other things enumerated the number of self-avoiding walks in a 3x3x3 cubic lattice, was written entirely in C and made aggressive use of code recursion with changing local variables while keeping track of the enumeration using global variables. I am adept at malloc() and free(), passing by value int x,f(int x); int y=f(x) and passing by reference int x, g(int *x); int z=g(&x), and using function pointers when necessary.