There are people who are just learning to code, who got the advice, find a simple open source project and help.
There are people who have only done early stage classes for CS degrees that want to practice in real coding but haven't been exposed to real world development.
There are people who have been coding forever but never paid attention to that stuff because they were always part of a team and didn't worry about it.
One extreme example: we had a person wander into the local hacker space on python user's group night. She had an English degree and had never done anything nearly as technical as coding. She knew that her library science degree would entail some coding and database knowledge and wanted to get up to speed prior to needing it for coursework. She understood the concept of community work and abstract stuff about open source, but not really anything on a practical level. Within the day she was helping one of the member's pet project by copy editing the readme and some of the tech docs. I'm certain she had no idea what a readme was when she got up that morning. (not exactly a code contribution, but definitely a project contribution). Within a couple of months she was able to get her first code submission to a project.
Ignorance and ability are not as correlated as people like to think they are.