New programmers often find it hard to contribute to open source because at a glance most projects might seem to difficult. In reality, there are contributions programmers of every level can make and I believe we are missing an easy way to bridge that gap.
I am currently working on a project to centralize the current open source resources to one location that is searchable by a variety of factors, including level of complexity. In the mean time here are a few ways to get started with contributing to open source projects.
One problem a lot of developers face is poor documentation for a particular library, or resource. This is inherent in such a technical field, because most technical writers aren't the best at making detailed explanations easy to interpret. When you find yourself with this issue, there is opportunity to contribute. Once you have a good understanding of that resource you can update the documentation so the next person can understand it easier. This is an easy way to make small contributions that actually make other developers lives easier.
Immersing yourself in the developer community in your area will always create opportunities to contribute. Some ways to do this are attending local developer meet-ups, conferences, or engage in the virtual resources such as an IRC channel, forum, or other communication platform. You can develop a reputation which may grant you other opportunities you previously wouldn't have had.