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.
I think I'm going to try to use Vagrant. And VMs really slow down the system, which is why I was thinking of getting a new OS. Dual booting is also not a great way of handling stuff. This is the first I've heard of Vagrant, so, I'll try that!
I also run Vagrant VM's for various things on Windows 7. The key for speed isn't the OS, 8GB RAM and a SSD for your main drive is awesome. The PC I built last fall is super fast, the little Windows start up screen doesn't finish painting before login prompt.
Creating a custom vagrant box is key since you get to put whatever you want on it and not have to rely on someone else's Vagrant base box. Then you can create VM's for different purposes like trying out a new framework or language or upgrades. You also can match it exactly to whatever VPS image you would use for production.
I'm asking this question because this is the first time I'm reading about Ubuntu in a bad light. And all I can gather from the websites I've seen is that it tracks the user's search history and sends it to Canonical.