I primarily contribute to projects I use myself (or sometimes, have used in the past). Most of the time I get started with a bug impacting me or a feature I want, and when I have some experience with the code base through that it's easier to contribute on other parts.