The Transition to Concurrency
Concurrency is going to be part of most developers’ lives in the future. C++ and languages like it are poorly suited for concurrency as it is today. Semaphores are common and well-known, but using them correctly is difficult. If you want to prepare for concurrency, you could start the transition by becoming familiar with immutability, persistent data structures and active objects.
I have written an article on the subject. It’s hosted at Gamasutra (free login required) here.