I participated in 3 programming contests in high school and 2 in college. I was never the person that came up with the great solution and I really felt like an inadequate programmer because these challenges used to make my brain hurt. Anyways, in college when they were putting together the team my professor approached me and asked if I would participate. When I told him I didn't feel like I was good enough at coding…
Every year I try to recruit students. The most common reply is along the lines of "I'm not good enough". To which I reply "You compete to learn, you'll get better!". Doesn't work though, the best strategy is to have an authority figure (e.g. professor) ask students to compete.
edit: This collection of resources I put together may be of interest to some. https://github.com/BrockCSC/acm-icpc/wiki