¿Cómo encontrar un mentor de programación? [cerrado]

46

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.

Dvole
fuente
1
también compre un buen libro de "principiantes" en el idioma elegido
Demian Kasier
2
Solo pasa el rato con estos usuarios . Ofrézcales una cerveza o dos. Lee sus publicaciones. Hazles preguntas.
WernerCD
1
Aquí hay una lista de nombres (y mapa) que firmaron el Manifiesto Software Craftsman: manifiestoto.softwarecraftsmanship.org
spong
1
Mi respuesta fue un poco tonta, pero recomiendo aprender JavaScript o Python mientras aprendes un lenguaje más estrictamente escrito. Hay dos ventajas para ambos paradigmas, dependiendo de lo que esté haciendo, pero en los lenguajes "flojos" puede probar cosas directamente en una consola y, en el caso de JS, atornillar el diseño de la página web y el comportamiento de la interfaz de usuario. de las herramientas de desarrollador de Chrome. Además, funciones que puede pasar en params; gente que caca, ni siquiera lo sabe y nunca lo hará (gracias, jeebus, porque he trabajado con esos tipos); son obscenamente poderosos
Erik Reppen
1
Dos años después, todo lo que necesitas es un poco de disclipine. ¿Estás listo para ello?
ott--

Respuestas:

31

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).

Head Geek
fuente
44
La pregunta era cómo encontrar un mentor, no si debería / no debería buscar uno.
marktani
44
La respuesta originalmente incluía una oferta para guiar a cualquiera que estuviera realmente interesado en C ++. Después de obtener ocho personas que afirmaban estar realmente interesadas, pero que no podían molestarse en mantener una conversación, eliminé esa oferta.
Head Geek
23

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.

Eric Wilson
fuente
14

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:

  • Inteligencia cercana, igual o mayor que la mía.
  • Interés en las cosas que tengo para ofrecer y disfruto enseñando.
  • Compatibilidad de la personalidad (es decir, nos llevamos bien, disfrutamos hablando entre nosotros).
  • Voluntad de ser valioso para el proyecto / comunidad en la que le estoy asesorando, por:

    • Escribir código
    • Escribir documentación
    • Hacer un trabajo de corte como emitir una clasificación de cola, limpiar comentarios, etc.
    • Ayudando a contribuyentes menos experimentados
  • Compatibilidad con mi flujo de trabajo habitual.
  • Capacidad de enseñar me cosas. Tener más experiencia que alguien no impide aprender de ellos. El mejor aprendiz tiene la habilidad de hacer las preguntas correctas, o un punto de vista nuevo, o alguna experiencia externa a mis áreas de conocimiento de la que puedo aprender.
HedgeMage
fuente
12

Ú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.

Jim C
fuente
1
Ok, podría parecer tonto, pero ¿cómo te unes a proyectos de código abierto? ¿Cuál es el mejor sitio web para visitar?
Sr. Ant
1
gnu.org/help o algunos repositorios de código fuente abierto (código de google, github ...). Busque un proyecto interesante sin personas para contribuir con la documentación y envíe un correo electrónico.
cbrandolino
2
Creo firmemente que no hay preguntas tontas. Si bien hay muchos sitios web de proyectos de código abierto, sourceForge sigue siendo uno de los más populares.
Jim C
1
@Ant: el mejor proyecto de código abierto para trabajar es un programa que usas comúnmente o que esperas usar.
Larry Coleman
77
-1: Unirse a un proyecto de sistema operativo es una buena respuesta, pero definitivamente no en esta etapa del aprendizaje (es decir, el día 1). Eso es sumergirse en el extremo profundo incluso antes de mojarse. Un aprendizaje estructurado a través de libros o una clase es una idea mucho mejor.
Steven Evers
6

¿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.

JB King
fuente
+1 de mi lado. Parece que trabajar con alguien es el camino a seguir.
Fanatic23
4

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.

Walter
fuente
3

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.

cbrandolino
fuente
¿Qué pasa en el área de la Bahía de California?
greatwolf 01 de
@Victor, realmente no lo sé, pero parece que hay algunos: google.de/…
cbrandolino
3

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:

  • Grupos de usuarios - Profesionales: gratuitos o baratos, abiertos a todos. Contras: Poco frecuente, no sistemático, puede no estar disponible en su comunidad.
  • Cooperativas - Pros: abierto, gratis / barato. Contras: menos común, ad-hoc, más probable para la web que C ++.
  • Título universitario / profesional - Profesionales: sistemático, de alta calidad, respetado, abre puertas, generalmente brinda acceso a al menos algunos profesores de alta calidad. Contras: Admisión competitiva, compromiso importante, alto, alto índice de deslave, por lo que es una forma costosa de averiguar si desea que el software sea su profesión, el programa de estudio puede ser flexible, pero puede requerir temas que no le gustan o no encontrar difícil
  • Clases de colegio comunitario o programas de grado. Pros: Barato, buen valor, más atención individual de los instructores, fácil de admitir. Contras: Menos prestigio que la universidad, pero un buen estudiante es un buen estudiante donde quiera que vaya.
  • Organizaciones profesionales - Profesionales: pueden ser buenas redes y educación continua. Contras: es posible que necesite un título o trabajo en el campo para calificar para la membresía. Las reuniones mensuales pueden ser temas ad-hoc sobre innovaciones en lugar de una cobertura sistemática de temas que permiten la carrera.
  • En el trabajo de colegas, personal superior o gerentes: Profesionales: frecuentes, específicos, apreciación / entusiasmo / seguimiento, desarrollarán su carrera como nada más puede hacerlo. Contras: puede salir mal si su mentor de trabajo entra en modo de juicio y ha estado dejando que todo se cuelgue, este tipo de mentor podría no estar disponible hasta que tenga un trabajo, lo que puede significar después de obtener un título debido a la competencia global.
  • Coworking - Profesionales: buenos recursos, excelentes personas, generalmente un cruce entre una comuna y una sala llena de futuros CEO. Contras: puede que no esté disponible donde vives, puede implicar un compromiso en efectivo para ayudar a pagar el alquiler en el espacio compartido, muchos en el espacio serán trabajadores independientes, por lo que debes respetar su tiempo y encontrar formas creativas de hacer que los beneficios sean recíprocos.
DesarrolladorDon
fuente
2

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!

Guiman
fuente
1

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.

Wonko el cuerdo
fuente
1

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.

Jim C
fuente
0

"¿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.

Erik Reppen
fuente
Ah, y comparta la solución, por supuesto, para que todos podamos cagar los trozos que no nos gustaron.
Erik Reppen
-2

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.

Ericson2314
fuente