Decidí aprender programación. He estado leyendo SO durante unos días, y creo que comenzaré con C ++, mientras leo algunos artículos. Conozco un poco los bucles, las matrices, la lógica del programa y los objetos, y necesito que alguien me revise y me ayude con las pequeñas preguntas que recibo cuando hago mis primeros proyectos.
Así que aquí está la pregunta: ¿dónde encuentro a ese tipo? No tengo amigos que programen y todo.
EDITAR: 2 años después, todavía estoy buscando un mentor. No codifiqué activamente, solo comencé 3 meses nuevamente. Trabajo en programación Objective-C e iOS y programación de juegos con Cocos2d. Si quieres convertirte en mi mentor, mándame un comentario o comentario.
Respuestas:
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).
fuente
Para encontrar un mentor, no busques un mentor. Intenta mejorarte de maneras específicas. Si trabaja lo suficiente para mejorar, ambos descubrirán que entra en contacto con personas de ideas afines y que tienen algo en común con esas personas.
Los grupos de usuarios son el lugar más probable para encontrar un mentor, pero nadie quiere ayudar a alguien que está allí pensando "Estoy buscando un mentor". Pero si está allí pensando: "Me encantaría que alguien pudiera ayudarme a aprender a escribir buenas pruebas unitarias de JavaScript", o "Me encantaría emparejarme con alguien y probar un kata en Clojure", tarde o temprano. encontrarás a alguien que comparte tus intereses y está un poco más adelante.
fuente
Los tipos de personas que son buenos mentores generalmente tienen una docena de jóvenes que piden su tiempo en cualquier momento. Por lo tanto, "encontrar" al mentor adecuado es solo el comienzo, también debe hacer que la tutoría sea más atractiva / gratificante que la tutoría de otra persona.
Entonces, el primer paso es unirse a las comunidades donde es probable que se encuentre con buenos mentores.
El segundo paso es convertirse en un aprendiz que valga la pena. Algunas cosas que personalmente busco en un aprendiz son:
Voluntad de ser valioso para el proyecto / comunidad en la que le estoy asesorando, por:
fuente
Únase a un proyecto de código abierto. No necesariamente tiene que programar para ellos tampoco. A la mayoría de los proyectos les encantaría que alguien ayudara con la documentación. Puedes mirar el código y hacer preguntas. Cuando te sientas cómodo, puedes comenzar a escribir código para ellos.
fuente
¿Qué esperas de un mentor? Las sugerencias de un proyecto de código abierto o un grupo de usuarios locales están diseñadas para ser más acerca de la creación de redes y encontrar a alguien que esté unos pasos más allá de lo que desea ser para que puedan ayudarlo a guiarlo de alguna manera. Piense en ello como intentar aprender a cocinar de Jamie Oliver o Gordon Ramsay, puede ser bastante entretenido y útil al final del día.
Dependiendo de sus expectativas, puede ser fácil o increíblemente difícil encontrar un mentor. Si está esperando a alguien que pueda leer su mente y darle paso a paso los secretos para ser increíble en un año o menos, entonces eso puede no ser realista. Al mismo tiempo, si desea encontrar a alguien que pueda hacer algunas cosas mejor que usted, es posible que no sea tan difícil. Así que primero averigua cuáles son tus expectativas.
Segundo, ahora que sabes lo que quieres, debes encontrarlo. Esto puede ser bastante difícil, ya que no es que haya muchos lugares dedicados a mostrar a los desarrolladores que usan sus habilidades como si tuviéramos las artes en Canadá y los EE. UU., Por eso me dieron la sugerencia que imagino. MentorNetsería un ejemplo de un programa que puede funcionar aunque no lo haya probado, lo investigué hace un tiempo y no pensé que fuera para mí y para lo que quería. Otro pensamiento aquí es qué tan bien saben tus amigos y familiares de lo que quieres aquí. Es posible que conozcan a alguien o algún lugar que pueda ayudarlo si lo solicita. Si bien esta no es una respuesta exhaustiva, lo que pides es un poco vago y, con suerte, puedes agregar más a esto y luego haré un seguimiento una vez que brindes más detalles de lo que quieres y cómo lo quieres. no es Burger King, pero podríamos tratar de hacerlo de esa manera.
Los expertos en componentes del lado del servidor C ++ pueden ser bastante difíciles de encontrar. ¿Hay alguna institución postsecundaria cercana? Esos pueden tener a alguien que tenga esas habilidades que pueden estar cambiando a otra cosa como una posible idea. Buena suerte en encontrar ese mentor.
fuente
Los proyectos de código abierto son excelentes para obtener comentarios sobre el código específico que ha agregado y sobre formas potencialmente nuevas de hacer las cosas, pero como descubrió, eso probablemente no equivaldrá a una relación de mentor.
Sugeriría lo que ya ha mencionado y que son grupos de usuarios. Los grupos de usuarios generalmente se reúnen con bastante frecuencia para que pueda tener tiempo real con mentores potenciales. Este tiempo de cara puede permitir un flujo de comunicación más rápido y fácil. ¿Garantizará que todos estén en el mismo dominio? No, pero tienes que empezar por algún lado. Si encuentra a alguien que tiene mucha experiencia, aún puede ayudarlo con su dominio, solo en función de otras experiencias que hayan tenido.
fuente
Puede consultar su grupo de usuarios de Linux local ( aquí encontrará una lista), por lo general, la mayoría de los participantes son programadores, o al menos hackers de Perl. Además, si les dices que estás allí para encontrar un mentor de programación, te amarán.
Una publicación en craigslist podría valer la pena, pero no apostaría por eso.
Además, si tiene su sede en Alemania, hay un par de lugares que puedo sugerir en particular.
fuente
Dado que está registrado en Stack Exchange, ya tiene muchos mentores informales disponibles. Puede hacer preguntas fácilmente o muchas personas motivadas para ayudar pueden revisar su código.
Más localmente, si desea tutoría o enseñanza cara a cara, las mejores opciones incluyen:
fuente
Creo que los foros serían la mejor manera de encontrar personas con experiencia en el tema. Creo que deberías comenzar por ahí.
¡Vea algunos sitios de C ++ en Google o tal vez nuestro querido amigo stackoverflow, donde hay muchos ninjas de C ++ listos para responder sus preguntas!
fuente
Aprender a programar es una causa noble y ambiciosa (creo que todos en este sitio estarán de acuerdo). Sin embargo, es difícil comenzar desde cero y aprender, incluso con un mentor. Creo que encontrará que tomar al menos algunas clases introductorias para darle una base será la mejor manera de hacerlo.
Un mentor es una gran idea, y no estaría aquí más de 15 años después como programador sin el tipo que aguantó mis preguntas en mi primer trabajo "real", pero en realidad, una sola persona no podrá para darle el tiempo y la orientación que necesitará para convertirse en un programador exitoso. Él o ella probablemente tendrán un trabajo de tiempo completo (o carga de curso) ellos mismos. Eso no quiere decir que no deba encontrar un mentor (o mentores), solo que necesitará algo más también.
Sitios como este y tutoriales en línea, libros y todo lo demás son piezas del rompecabezas. La educación compone las piezas fronterizas.
Esto no tiene la intención de desanimarte; Por el contrario, creo que establecer expectativas realistas le dará una mejor oportunidad de éxito.
fuente
Si trabaja en una empresa, puede buscar un mentor allí.
En cuanto a un proyecto de código abierto, dudo que encuentre un mentor para un proyecto que cree, pero podría encontrar uno en un proyecto que ellos crearon.
No olvide que el mentor también necesita obtener algo de este acuerdo. Están gastando su valioso tiempo ayudándote. Esté preparado para hacer un trabajo para ellos a cambio.
fuente
"¿Cómo encuentro un prodigee de programación? Es todo lo que quiero. Solo quiero construir un enorme ejército de robots para dominar el mundo. Soy inteligente y escribí la IA. Tengo el dinero, la influencia, las instalaciones. Simplemente no puedo molestarme en lidiar con esa asquerosa tontería de .NET o JVM ... Hmm ... ¿Cómo ... cómo? ¡Maldita sea! "
Normalmente no explicaría esto, pero estamos en Stack. A algunas personas les gusta literal. Usted encuentra uno (un mentor), por ser útil. Puede ser útil resolviendo los problemas que los niños con la experiencia (o, tal vez, el cerebro o el dinero) no quieren resolver.
Resuelve esos problemas saltamontes.
O no lo hagas. Es la era de la información. DIY mi amigo. Mire a comunidades como Stack para decirle cuándo está siendo estúpido o sabio sobre algo relacionado con el código o algo que no obtenemos tan fácilmente como las maquinaciones de ese inversionista que está listo para fastidiarlo y algo más.
Y comparte lo que sabes. Participa un poco en el colectivo una vez que hayas encontrado tu ritmo. Esto no es herrería en la década de 1700. Tus padres no tenían que conocer a nadie (aunque ciertamente todos aprecian cuando no acaparas el conocimiento de tu oficio y lo compartes con el gremio).
Simplemente decides que estás interesado y te vas. Bastante poderoso cuando se hunde. Toma un tiempo (lo sé) pero confía en mí (aunque solo sea en este punto aparentemente absurdo, me llevó más de diez años darme cuenta de que sí, yo era un maldito programador), todo eso lo que realmente importa es que tengas el nivel base de talento y que realmente estés interesado. Si no lo está, ¡amablemente! @ # $ De descuento y encuentre algo que le interese.
Porque la programación / scripting / codificación es una elección horrible de lo contrario. Pero no quiero dejar eso en un punto negativo y desagradable. Si estás interesado, no te preocupes por lo bueno que eres. Hacer preguntas. Exige respuestas. Aguanta el total de bolsas de gas / ducha de largo aliento como yo. Llegarás allí si quieres.
¿Te gustan los rompecabezas? ¿Te gusta resolver problemas arbitrarios al azar? ¿Te gustan las películas de gladiadores? Inequívocamente en los dos primeros puntos, ¿sí? No busques un mentor. Aprenda un idioma realmente bien, aprenda uno o dos que no sean demasiado similares a su primer idioma hasta el punto de nivel de habilidad inicial, lea algunos libros y tenga algunas opiniones. Disfruta de desafiarlos y alterarlos ocasionalmente, aunque solo sea para ver si no estabas totalmente equivocado. Te sorprendería la frecuencia con la que tus instintos no eran tan malos. Pídale a la gente que salga y lo abofetee por hacerle la pregunta equivocada, y es posible que sepa que es mejor que la mayoría de los que están a la altura de esa ocasión. Pero sobre todo, es un problema a resolver. Resuélvelo.
fuente
Para un mentor, vaya freenode (irc). Lo juro, puedes obtener la mayor parte de un título de CS de ese lugar, útil en cualquier nivel de habilidad. Ahí es donde aprendí mucho. No debería importar si la persona está en ese canal una vez o 24/7, es en tiempo real y eso es lo que cuenta.
Y, como la mayoría de los demás dijeron, no hagas C ++. En su lugar, comience con un lenguaje de recolección de basura estáticamente tipado y no pase a la administración de memoria manual hasta que sepa lo suficiente como para vencer al recolector de basura. Puedes escribir algo muy rápido Haskell u OCaml si lo intentas.
fuente