Unirse a un proyecto de código abierto es sin duda una forma de comenzar. Sin embargo, he estado usando software de código abierto durante años y, francamente, la calidad en casi todos estos proyectos generalmente está en el baño. Si aprende sus habilidades de programación y diseño por completo de ellos, es probable que adquiera algunos muy pobres junto con los buenos, sin forma de notar la diferencia entre ellos.
¿Para qué quieres aprender a programar ? La respuesta a eso determinará qué debe buscar y dónde. Aquí hay algunas respuestas comunes, y mi opinión profesional sobre cómo perseguirlas (tenga en cuenta que es solo una opinión, aunque en mi humilde opinión, precisa):
Solo para decir que sabes cómo hacerlo.
Entonces realmente no necesita un mentor, y C ++ es un mal lugar para comenzar. Me encanta C ++, es mi primera opción para la programación general, pero en cambio juego con otro lenguaje. Sugeriría Python; tiene una curva de aprendizaje mucho más suave que C ++, y a diferencia de algunos lenguajes (no se mencionan los nombres, hoy no usé mi ropa interior de asbesto) todavía aprenderá algunas habilidades útiles en caso de que quiera profundizar más en ello. Muchos de los conceptos pueden traducirse directamente a C ++ si decide continuar en esa ruta.
Solo para probarlo y ver si te gusta.
Un proyecto de código abierto podría ser lo suficientemente bueno para eso. Elija un programa que le guste, pero con el que haya encontrado algunos problemas o irritaciones, y ofrezca su ayuda a quien lo esté ejecutando. La mayoría de los proyectos de código abierto están abiertos a contribuciones, por lo general, es por eso que son de código abierto en primer lugar.
Sin embargo, en ese caso, no intente C ++ como su primer lenguaje de programación. No es difícil dominar los conceptos básicos, pero C ++ es lo suficientemente bajo como para que pueda obtener algunos errores graves y muy difíciles de encontrar en sus programas. A menos que ya sepa que ama la programación, o que sea tan terco como el buey proverbial, o que ya haya encontrado un mentor que pueda orientarlo en la dirección correcta, eso matará cualquier interés incipiente que pueda tener en el campo. Vea la respuesta anterior sobre Python, es más adecuado para eso.
Porque tienes una idea para un programa específico que quieres escribir.
(No creo que el OP esté en esta categoría, lo estoy poniendo para lectores posteriores).
¿Tiene alguna idea del tiempo requerido para dominar el diseño y la implementación del programa? Como pista, se mide en años. Es posible que pueda obtener un diseño medio decente después de solo unos meses de estudio, si es inteligente y extremadamente afortunado, pero cualquier persona con poca experiencia que tenga que trabajar en ello (incluido usted, más adelante) lo hará Ojalá nunca hubieras nacido. Hablo por experiencia. :-) A menos que la idea sea tan súper secreta que nadie más pueda saberlo hasta que esté hecho, no te molestes. Contrata a un programador experimentado para que lo haga por ti, o si no puedes pagar uno pero todavía quieres el programa lo suficiente, ofrece asociarte con uno: tú manejas el lado comercial y deja que él maneje la parte de programación. La mayoría de los buenos desarrolladores preferirían estar programando, por lo que ese tipo de oferta puede valerles la pena.
Porque ya sabes que te fascina la programación y quieres aprender más.
Entonces estás exactamente en el camino correcto. :-) Ya sea solo como un pasatiempo o es algo que podría convertir en una carrera más adelante, si tiene el tipo de personalidad que lo encuentra infinitamente fascinante, lo mejor que puede hacer es sumergirse en él. C ++ es un lenguaje tan bueno como cualquier otro, en ese caso, y un mentor definitivamente ayudará (y con más que solo desarrollar sus habilidades; puede sentirse solo sin amigos que comparten su pasión).