I've had good luck specializing in high-performance computing, particularly parallel programming and numerical / scientific computing, for which I mainly use C together with MPI libraries and / or CUDA (I'm picking up Python too as I go). From what I've seen, OOP is heavily emphasized in many curricula, and most recent graduates aren't very familiar (or at least, aren't altogether comfortable) with memory management concepts (pointer arithmetic, typecasting, stack versus heap space, etc). Parallel programming seems to still be rare as well, in fact I've interviewed several recent graduates for positions with my employer who had no experience with multi-threaded programming, let alone parallel, and were unfamiliar with concepts such as deadlock or priority inversion.
I'm in my mid 30's now, and honestly the skills that my employer most values are things I've learned on the job
after college, although they build upon the basics that I learned in school. I found a niche doing a sort of programming that is not as "big" or widely practiced, but is nonetheless quite valuable. Taking the road less traveled has often panned out for me. ^.^
Learning C is an excellent place to start. If you'd like to dip your toe into parallel programming without a steep learning curve, check out the
OpenMP library. Be sure to have a process monitor up and running when you test your code — it's fun to see all the cores loading up at once!