He decidido participar en concursos solo después de haber resuelto las preguntas de nivel medio en CodeChef y los problemas clásicos en SPOJ. ¿Es correcta mi decisión?

Esto depende de lo que espere obtener de la programación competitiva. Si su objetivo es hacerlo bien en concursos de programación como ICPC, entonces es muy importante participar en concursos regularmente.
Lo que sugeriría es que comience con la resolución de problemas aleatorios en SPOJ y el largo concurso en codechef, ya que siempre tiene algunos problemas fáciles que puede hacer un principiante. A medida que gane más experiencia, la cantidad de problemas que puede resolver de 10 debería aumentar.

No necesita esperar demasiado para concursos cortos también. Comience tan pronto como sienta que ha ganado algo de velocidad para resolver los problemas fáciles y que también puede resolver algunos problemas de nivel medio. Creo que si eres capaz de resolver 2/5 problemas en la mayoría de los concursos, entonces deberías participar.
También te sugiero que participes en concursos cortos de Codeforces, ya que tienen una buena combinación de todos los niveles de problemas y cubren más temas.