I strongly agree with MaxGabriel. I find it difficult to make meaningful contributions to projects which I don't use or have some familiarity with. I am significantly more motivated to make contributions to projects which I have invested my time in.
My advice is to start small. Look into making documentation updates and fixing bugs you find in projects you currently use. Expand your open source toolset as you build more and repeat the process.
I see a lot of good general advice, but not too many specific examples. Here's a very specific one...
If you want to do C and get an introduction to a bit of arm assembly, you may want to contribute a new model build to CHDK, the Canon Hack Developer Kit. There are always new models out that need support, like the Canon PowerShot Elph(US)/Ixus(EU) 160.