Empecé a trabajar hace un año y quiero unirme a un proyecto de código abierto por los mismos motivos que cualquier otra persona: ayudar a crear algo útil y desarrollar aún más mis habilidades.
Mi problema es que no sé cómo encontrar un proyecto en el que pueda encajar.
¿Cómo puedo encontrar un proyecto amigable para principiantes? ¿Qué atributos debo buscar? ¿Cuáles son las señales de advertencia de que un proyecto podría no ser el adecuado? ¿Existe alguna herramienta para ayudar a unir a las personas con proyectos de código abierto?
Hay una pregunta similar aquí , pero esa pregunta tiene que ver con el empleo y se limita a PHP / Drupal.
learning
open-source
junior-programmer
Estallidos
fuente
fuente
Respuestas:
Mi primera contribución de código abierto fue para una biblioteca que había usado previamente (y habría sufrido mucho sin ella) en un proyecto pago previo. Durante mi uso inicial había detectado un error en el código, así que creé un parche, me uní al proyecto y lo envié para su revisión.
Aproximadamente 8 meses después, cuando tenía algo de tiempo libre, decidí que devolvería (y trabajaría en mis habilidades de desarrollo) contribuyendo más al proyecto. Así que cloné el repositorio y comencé a familiarizarme con la base de código. Después de algunas semanas de enviar pequeñas correcciones de parches a la base de código y monitorear las solicitudes de funciones, recogí una solicitud de funciones para agregar un módulo bastante sustancial al proyecto.
Dado que generar muchas correcciones de parches individuales es bastante tedioso para cualquier desarrollo significativo, cloné el repositorio en una rama en git hub y comencé a eliminar el código. Unas semanas y varios miles de líneas de código más tarde, el líder del proyecto y yo trabajamos integrando y probando mis correcciones en la biblioteca de una manera que funcionó de manera consistente con el resto de la base de código.
Fue un proceso invaluable del que aprendí mucho:
Ese proyecto particular se basó en generar y decodificar paquetes de red en todos los niveles de protocolos de red. Tengo un interés personal en las redes de nivel inferior, por lo que fue genial tener conversaciones con otro desarrollador con intereses y conocimientos compartidos en el dominio.
Si solo quieres mojarte los pies: busca un proyecto que ya uses; clonar el repositorio; y empiece a ver si puede corregir algunos errores y / o agregar algunas pruebas unitarias. Parece intimidante mirar la base de código de otra persona con ojos nuevos, pero es una habilidad extremadamente valiosa para aprender. Envía algunos parches. Puede esperar que su código sea analizado de cerca al principio. No se preocupe, es una parte normal del proceso ganarse la confianza de los administradores del proyecto.
Después de establecer una base de mérito con los administradores del proyecto, comience a buscar más responsabilidades, como proponer nuevas características o solicitar que se le asigne la implementación de solicitudes de características.
Si no puede encontrar un proyecto ya existente en una de las principales redes de repositorio de código abierto (github, sourceforge, código de google) piense en una aplicación que realmente le gustaría usar que aún no existe y comience la suya.
Prepárese para ser humilde y espere que el trabajo sea rechazado a favor de nuevas revisiones. El mito de que cualquiera puede agregar código a un proyecto de código abierto es completamente falso. Siempre hay un guardián entre usted y el acceso push. Cuanto mejor sea su código, menos será analizado a largo plazo a medida que se gane la confianza de los administradores del proyecto. Si es tu proyecto, serás ese guardián.
Actualizar:
Simplemente lo pensé y me di cuenta de que no me molesté en mencionar a qué proyecto hace referencia gran parte de mi respuesta. Para aquellos que quieren saber, es SharpPcap . El desarrollador principal Chris Morgan es muy profesional y puntual. Él hace un gran trabajo gestionando el proyecto y me enseñó mucho sobre lo que se necesita para madurar un proyecto OSS.
Debido a limitaciones de tiempo personal, no he podido contribuir con código en más de un año, pero todavía trato de devolver al acecho en Stack Overflow y respondiendo preguntas sobre SharpPcap ocasionalmente.
fuente
Aquí te sugiero que hagas para encontrar tu pareja perfecta:
Si tiene un proyecto de código abierto que ya utiliza, conoce y le interesa, debería ser su primer candidato para intentarlo. De lo contrario, piense en lo que le gustaría hacer en general y busque un proyecto en esta área.
Cuando haya encontrado un proyecto potencial, no se apresure. Intenta usarlo tú mismo. ¿Es tan bueno en acción como parecía por descripción y comentarios? Si no, no es un completo show-stopper; tal vez sea una oportunidad para que saltes y realmente marques la diferencia. Después de todo, nadie necesita otro desarrollador para un producto perfecto. Pero le dará una idea importante de si desea ser parte de este proyecto, mientras adquiere experiencia de primera mano con las nuevas tecnologías en un área que le interesa.
Además, antes de comenzar a invertir demasiado tiempo en el proyecto y aprender sus entresijos, considere quedarse en las listas de correo del proyecto, foros e incluso en el sistema de seguimiento de errores durante un par de semanas. Si comenzará a contribuir al proyecto regularmente, pasará mucho tiempo allí.
Averigüe: ¿le gusta pasar el rato allí, o es un lastre para usted? ¿Siente que este proyecto tiene una comunidad buena y enérgica o está muriendo lentamente? ¿Las personas centrales parecen alentar y orientar a los recién llegados o usted estará solo?
Siga estos pasos para varios proyectos, potencialmente en diferentes áreas y es menos probable que experimente la decepción que se produce cuando se une a un equipo equivocado. Tal experiencia puede potencialmente desanimarlo de volver a hacerlo en el futuro.
Algunas reflexiones más:
Si el proyecto que realmente le interesa es uno de alto perfil con muchos desarrolladores y actividad a su alrededor, probablemente le resulte difícil establecer una reputación suficiente para obtener, por ejemplo, comprometer derechos o un papel interesante en la comunidad. En este caso, considere unirse a un proyecto derivado relacionado con menor visibilidad. Por ejemplo, en lugar de intentar comenzar a contribuir a jQuery, intente encontrar el complemento jQuery que se ajuste bien a usted. Más tarde puede considerar "subir".
Si le gusta un proyecto pero se siente intimidado por su tamaño, complejidad o requisitos de calidad de código, considere comenzar desde roles de soporte, como pruebas, mantenimiento de documentación o verificación de informe de errores. Si pregunta en la lista de correo del proyecto qué tipo de ayuda necesitan más en este momento, estarán más que felices de guiarlo allí. :)
De esta manera, aprenderá el proyecto y construirá su reputación allí mientras contribuye mucho más que si comenzara a enviar parches por debajo del estándar que serían rechazados varias veces hasta que estuvieran listos.
Lo último y lo más importante: si te quemas en un lugar, sigue adelante; no te rindas
Espero que ayude.
fuente
Recomiendo encarecidamente que encuentre un proyecto de código abierto que tenga su sincero interés y que lo use activamente .
La razón es simple: hace la diferencia entre una tarea y un pasatiempo.
Echa un vistazo a tu computadora. ¿Qué software has puesto que sea de código abierto? Una conjetura sería Chrome o Firefox, o quizás Open Office o un cliente de Instant Messenger. ¿Son perfectos o hay algo pequeño que te gustaría cambiar si pudieras?
Si es así, ahora es el momento de hacer algo al respecto.
fuente
Sugeriría encontrar (o comenzar) un proyecto tal como la gente ha estado haciendo durante años, comenzar a usar el software de código abierto para hacer cosas. Eso puede parecerle trivial, incluso quizás demasiado simplificado. Sin embargo, es realmente difícil describir la satisfacción de usar algo, encontrar un error, agarrar la fuente y solucionarlo. O, tal vez cambiándolo para que funcione de la manera que usted quiere que funcione.
Además, no solo hackeo por el simple hecho de involucrarse. El 95% de mis parches para el kernel de Linux nunca verán la luz del día, estoy seguro de que nadie los querría sino yo, y probablemente me vería obligado a someterme a una evaluación psiquiátrica si algún otro pirata informático competente los viera alguna vez. Pero todavía disfruto mi implementación,
piglatin_printk()
que comenzó como una mordaza del 1 de abril hace varios años :)Si bien sí, poner su código y su proceso de pensamiento frente a muchas otras personas competentes no tiene precio, también lo es aprender a comunicarse y colaborar. Un proyecto en solitario es una excelente manera de mostrarte lo que no debes hacer. Sugerencia, hay más que solo usar el software de control de versiones, listas de correo y un rastreador de errores.
Para empezar, sugiero a excavar alrededor Ohloh a encontrar el software que usted podría estar interesado en utilizar , en primer lugar. Descárgalo, construyelo, juega con él. Entonces ve a buscar otra cosa. Eventualmente, llegará a querer mejorar algo, o se dará cuenta de que tiene la necesidad de implementar algo completamente diferente de lo que encontró.
La otra cosa que ayuda es trabajar para una empresa abierta y amigable. Mi compañía usa Xen ampliamente, por lo que no tienen ningún problema para que encuentre errores interesantes y los repare, ya que de todos modos tendríamos que hacerlo. Tampoco les importa que los empleados participen en cosas como RFC y especificaciones preliminares, ya que finalmente utilizaremos el resultado.
fuente
OpenHatch fue creado específicamente para esto.
Citar:
Puede explorar proyectos por tipo, tecnología, nivel de habilidad requerido, etc. y encontrar lo que coincida con su nivel.
fuente
Una cosa que he notado repetidamente cuando se trata de personas que buscan comenzar con el desarrollo de código abierto es que se sienten abrumados por la gran complejidad y magnitud de los grandes proyectos. Enfrenté el mismo problema hace un par de años, y desde mi experiencia, es mejor no mirar los proyectos más grandes de inmediato.
Después de pasar algún tiempo mirando proyectos que me podrían gustar, me di cuenta de que todavía estaban fuera de mi alcance y luego comencé a trabajar en proyectos muy pequeños por mi cuenta. Me propongo publicar el código en Github, independientemente de si es realmente relevante o si otras personas comenzarán a usarlo. Eventualmente, la gente podría comenzar a interesarse en lo que haces. Incluso de lo contrario, ganará confianza y capacidad técnica para avanzar lentamente hacia proyectos más grandes y más populares.
fuente
Existe un nuevo sitio web específicamente para este llamado Código 52 que alienta a los nuevos desarrolladores a involucrarse en el código abierto al comenzar un nuevo proyecto OSS cada semana.
La idea es que parecerá mucho menos desalentador para las personas que nunca antes han estado involucradas en el código abierto y, con suerte, también se sentirán más inclinadas a involucrarse en otros proyectos de OSS.
fuente
Recomiendo leer: http://open-advice.org/ .
Su objetivo es ayudar a aquellos que crean y mantienen comunidades, y a aquellos que no confían en a cuál quieren unirse o cómo hacerlo.
De lo contrario, encuentre un proyecto que tenga una misión que resuene con usted, o bifurque y contribuya a uno que ya le sea útil.
Buena suerte.
fuente
Cuando comencé, busqué opciones en línea y resultó difícil encontrar algo en lo que pueda hundirse los dientes como principiante.
Es difícil contribuir a algunos proyectos no porque sean demasiado avanzados sino porque la comunidad no es acogedora. Por lo tanto, no se desanime cuando golpee una pared.
Durante la búsqueda, decidí armar una lista de 10 proyectos de código abierto que los principiantes pueden comenzar a apoyar sin procesos estresantes. Aquí está el enlace para usar:
Diez proyectos para principiantes para apoyar y aprender de
¡Espero que les sea útil y siempre puedan agregar más si encuentran geniales!
fuente
Sugiero comenzar un proyecto por su cuenta sobre un tema que le interese.
Se puede aprender mucho trabajando en un proyecto en general. No es necesario ver cómo alguien más codifica para aprender a codificar mejor. Y a veces verás qué no hacer, ya que las otras personas a menudo no tienen más experiencia que tú.
Por lo general, es útil ver el código de otros, pero encontrará el código de otras personas en su propio proyecto solo a través de las bibliotecas y los componentes que usa.
La experiencia te enseñará lo que es buena y mala práctica.
fuente
Soy propietario de un proyecto en Google Code, y estoy buscando colaboradores. (Sin embargo, no utilizaré mal esta respuesta para publicidad). Por lo tanto, mi opinión puede ser interesante para usted.
Primero tendrá que averiguar en qué está interesado. Luego, desarrolle cierta experiencia en algunos campos relacionados con sus intereses. Luego, encuentre un proyecto donde se exija y necesite su experiencia.
Cuanto más pequeño sea el proyecto, menos contribuyentes estarán allí, mayores serán las posibilidades de que se busquen contribuyentes y puede contactar a los autores / propietarios del proyecto directamente. Dígales a) cuál es su experiencia b) dónde ve que podría aplicarse en el proyecto c) qué cree que puede lograr.
Recuerde: solo conocer uno o dos lenguajes de programación convencionales no es experiencia.
fuente